pax_global_header00006660000000000000000000000064136350156430014520gustar00rootroot0000000000000052 comment=0fb04a00c7e896070933354199edb657451d68e0 kbackup-19.12.3/000077500000000000000000000000001363501564300133155ustar00rootroot00000000000000kbackup-19.12.3/.gitignore000066400000000000000000000003401363501564300153020ustar00rootroot00000000000000# Ignore the following files *~ *.[oa] *.diff *.kate-swp *.kdev4 .kdev_include_paths *.kdevelop.pcs *.moc *.moc.cpp *.orig *.user .*.swp .swp.* Doxyfile Makefile avail random_seed /build*/ CMakeLists.txt.user* *.unc-backup* kbackup-19.12.3/.krazy000066400000000000000000000000341363501564300144530ustar00rootroot00000000000000SKIP src/MainWidgetBase.ui kbackup-19.12.3/AUTHORS000066400000000000000000000000361363501564300143640ustar00rootroot00000000000000Martin Koller kbackup-19.12.3/CMakeLists.txt000066400000000000000000000025051363501564300160570ustar00rootroot00000000000000cmake_minimum_required(VERSION 3.5 FATAL_ERROR) # KDE Application Version, managed by release script set(KDE_APPLICATIONS_VERSION_MAJOR "19") set(KDE_APPLICATIONS_VERSION_MINOR "12") set(KDE_APPLICATIONS_VERSION_MICRO "3") set(KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATIONS_VERSION_MINOR}.${KDE_APPLICATIONS_VERSION_MICRO}") project(kbackup) set(QT_MIN_VERSION "5.11.0") set(KF5_MIN_VERSION "5.45.0") find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) add_definitions(-DTRANSLATION_DOMAIN="kbackup" -DKBACKUP_VERSION="${KDE_APPLICATIONS_VERSION}") include(KDEInstallDirs) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) include(ECMInstallIcons) include(FeatureSummary) find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Widgets ) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Notifications I18n KIO DocTools XmlGui IconThemes Archive WidgetsAddons ) if (EXISTS "${CMAKE_SOURCE_DIR}/.git") add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000) endif() add_definitions(-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT) add_subdirectory(src) add_subdirectory(doc) ki18n_install(po) kdoctools_install(po) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) kbackup-19.12.3/COPYING000066400000000000000000000431151363501564300143540ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. kbackup-19.12.3/ChangeLog000066400000000000000000000076021363501564300150740ustar00rootroot0000000000000031.12.2017 (1.0.1) - small fixes to compile on older KF5 versions - fix double creation of SysTray icon 02.01.2017 (1.0) - Ported to KF5 - configurable shortcuts - context menu in tree allowing direct opening/deletion of files and dirs - allow to show/hide hidden files 22.07.2012 (0.8) - Add dirpath wildcard filters to skip complete directories 05.03.2011 (0.7.1) - Fix KDE3 -> KDE4 port by no longer using no longer existing KProcess signal. - Show better error message in case of non-local target in non-interactive mode 14.6.2010 (0.7) - Add Incremental Backup functionality - Add wildcard filter to ignore files for backup matching a filename pattern 15.5.2010 (0.6.4) - When an error occurs while reading a file (e.g. corrupted filesystem), cancel backup 25.09.2009 (0.6.3) - When running in non interactive mode (e.g. cron), do not use KIO but only direct file access as KIO needs a KDE session and $DISPLAY This now makes the slice-reduction on the local target dir work. 05.09.2009 (0.6.2) - Fix handling of disk-full situation (and a crash with it) 01.07.2009 (0.6.1) - Avoid backup of the backup file - make it compile with KDE Version < 4.2 24.05.2009 (0.6) - Port to cmake and KDE4/Qt4, which also removes the 4GB limit per file - sort hidden files/dirs before normal ones - show dimmed icon for hidden files (like konqueror) - don't allow to expand symlinked dirs as the content is not archived but only the link - Add "Save As..." menu and store name of loaded profile, so that a save directly writes to that - Add --autobg commandline which starts kbackup without a GUI e.g. for cron, at, ... - Add --verbose commandline option which allows to see all files when using --autobg - When the upload fails for a slice, offer a way to select a temporarily different target - if target-dir does not exist, create it (mkdir -p) - # of kept backups on target dir (per profile) - show list of created archive slices in finish-dialog 19.01.2008 (0.5.4) - correctly limit slice size: - limited by the target directory (when we store directly into a local dir) - limited by the "tmp" dir when we create a tmp file for later upload via KIO - limited by Qt3 (4GB on 32bit) - limited by user defined maxSliceMBs - sort directories first in treeview - correctly sort by size and timestamp in treeview - check if a file that is archived into the backup is not the backup itself 6.10.2007 (0.5.3) - Add russian handbook (thanks to Alexey Kouznetsov) - show symbolic links with an overlayed "link" icon - fix handling of files larger than 2GB - avoid crash when writing special files (below /proc) which have fileSize == 0 16.8.2007 - Added spanish translation (thanks to Gerardo Bueno) 17.June 2007 (0.5.2) - start with the HOME folder opened - add a profile option to avoid media change dialog - add a profile option to avoid compressing files at all 21.Dec. 2006 - Whenever a directory is only partly included, show it with blue color - Show a dialog when the backup has finished - automatically save/restore window size - add "auto" commandline option to automatically start a backup and quit kbackup when done. - added predefined slice sizes (for CDs, DVDs) in profile settings dialog - added portuguese translation thanks to Carlos Gonçalves 1.Oct 2006 (0.5.1) - added "recent files" action - add profile setting to define a maximum slice size - store recent directory for file dialog 24.Sept 2006 (0.5) - added systray functionality - added profile setting to define file-prefix - fixed Umlaut encoding for directories 16.Sept 2006 (0.4.2): - added russian GUI translation (thanks to Alexey Kouznetsov) - added italian GUI translation (thanks to Andrea Sciucca) 3.Sept 2006 (0.4.1): - added german handbook - added french GUI translation (thanks to Régis FLORET) - added missing "unlimited" translation string - added the RPM .spec file - added missing .mo translation files into RPM 31.Aug 2006: - first release as 0.4 kbackup-19.12.3/README000066400000000000000000000006171363501564300142010ustar00rootroot00000000000000** KBackup ** A Backup program with an easy to use User Interface based on the KDE Frameworks version 5. It uses the cmake build tool. Simply install it with cd kbackup- mkdir kbackup-build cd kbackup-build cmake .. make make install (as root) and run it. It also includes a comprehensive documentation. Have fun! P.S.: I welcome feedback Martin Koller, kollix@aon.at 14.May 2009 kbackup-19.12.3/TODO000066400000000000000000000010461363501564300140060ustar00rootroot00000000000000- check "simulate" patch: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602837 - in incremental backup, do not create a directory hierarchy when no file at all was modified inside it (e.g. store the dir entries in a stack until we find the first file which has to be stored, then create all dirs in the stack. If no file found, clean the stack and do not create any dir in the archive) - implement a way for restoring backups - backup as "cp -R" without creating a .tar file - option to compress the complete tar file _after_ finish-slice kbackup-19.12.3/doc/000077500000000000000000000000001363501564300140625ustar00rootroot00000000000000kbackup-19.12.3/doc/CMakeLists.txt000066400000000000000000000000251363501564300166170ustar00rootroot00000000000000add_subdirectory(en) kbackup-19.12.3/doc/en/000077500000000000000000000000001363501564300144645ustar00rootroot00000000000000kbackup-19.12.3/doc/en/CMakeLists.txt000066400000000000000000000001431363501564300172220ustar00rootroot00000000000000kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kbackup) kbackup-19.12.3/doc/en/index.docbook000066400000000000000000000450611363501564300171430ustar00rootroot00000000000000 KBackup"> ]> The &kbackup; Handbook Martin Koller kollix@aon.at 2006 - 2017 Martin Koller &FDLNotice; 2018-01-05 Applications 18.04 &kbackup; is an application which lets you back up your data in a simple, user friendly way. KDE system KBackup backup storage archive zip gzip bzip2 xz Introduction &kbackup; is a program that lets you back up any folders or files, whereby it uses an easy to use folder tree to select the things to back up. It lets you save your settings in so-called profile files, where a profile is a simple text file containing definitions for folders and files to be included or excluded from the backup process. Also, it lets you define where the backup shall be saved to. The target can be either a local folder (⪚ a locally mounted device like a ZIP drive, USB stick, &etc;) but it can also be any remote &URL; (⪚ smb://remote/some_path) to back up your data to some central server, &etc; The program can also run an automated backup without using a graphical user interface. One can simply create a profile and use these settings to tell &kbackup; what to do when running in non-interactive mode, ⪚ by starting it from a cron job. The program was designed to be very simple in its use so that it can be used by non-computer experts. The storage format is the well known TAR format, whereby the data can still be stored in compressed format (xz, bzip2 or gzip). The current implementation features only the backup step. To restore data back into your system, you currently have to use, ⪚, &dolphin; to open the TAR backup files and drag/drop the files back to your file system. This is also an advantage of the usage of the well known and well supported TAR file format. If the files are compressed, you can uncompress all files from the current folder recursively down with the following command: find . -name \*bz2 -print0 | xargs -0 bunzip2 Alternatively you can use &ark; to extract a full backup or just a few files from a backup. Using &kbackup; All you need to do is to select which folders you want to store. This is done by selecting all the folders in the tree view on the left side of the main window. If you select a folder, &kbackup; will automatically store all files and subfolders below it. If you want to exclude parts of a selected folder, simply deselect that files/folders inside the still selected folder. In general, this means: A selected folder will store everything in it and below it, except the deselected parts in it. This also means, whenever you reuse a profile (see below) later on and new files have been added to a folder already selected for backup, all the new files will also be stored. Here's a screenshot of &kbackup; Screenshot of the Main Window Using profiles To keep a selection for later use, simply save it into a &kbackup; profile file. Use the File menu and select Save Profile. To reload a selection into &kbackup;, use the File Load Profile... menu item. &kbackup; saves in a profile the selections for all included folders/files, excluded folders/files, the target folder/&URL;, defined archive prefix, the defined maximum slice file size, &etc; If you want to ease the usage of backing up every day the same set of files, simply store your settings into a &kbackup; profile (a .kbp file) and pass that file on the command line. ⪚: kbackup myData.kbp Hint: you can also create a shortcut on your desktop to a .kbp file as the file type is registered to start &kbackup; on double click. Archive slices As a medium has normally limited capacity (⪚ 100MB ZIP disc), &kbackup; will create several archive slices. Each archive slice will get its own name, which looks like this: backup_2006.08.26-13.04.44_1.tar The name contains the creation date and time (which will be the same for all slices of one backup) and a trailing slice sequence number (_1 in this example). In the menu File Profile Settings..., you can define a different archive prefix than the default backup. In the Profile Settings dialog, you can also define a maximum archive slice size, which limits the slice size even if there would be more space left on the target device. This helps to create archive slices which can then be later burned on a &CD;/&DVD;, &etc; If you explicitly limit the size of an archive slice, the available size will be marked with (*) in the main window. But even if you define a slice to be of unlimited size, there are other constraints which limit the size of a slice: limited by the target folder (when stored directly into a local folder) limited by the /tmp folder when we create a tmp file for later upload to a remote &URL; In the Profile Settings, you can also define a maximum number of full backups being kept in the target folder, and therefore automatically deleting all older backups there. ⪚ if you set it to 3, &kbackup; will keep the last 3 backups and delete all older ones. Incremental Backup With an incremental backup not all files will be saved every time the backup runs, but only the files which have changed since the last backup. This has the great advantage that the incremental backup will usually include much fewer files than a full backup and therefore will be finished in a much shorter time. This works as follows: In the profile, you define an interval (in days) for the full backup. ⪚ when you define 5 days, then &kbackup; will do a full backup of all files every 5 days. Whenever you start &kbackup; before the interval expires with this profile - regardless how often you run a backup - only the files which have changed since the last backup will be saved. &kbackup; stores the time stamp of the last backup into the profile and knows therefore what to do when running the next time. The archive slice files created during an incremental backup will contain the text _inc, ⪚: backup_2010.06.14-18.50.26_1_inc.tar Full backup slice files will not include _inc in the name, ⪚: backup_2010.06.13-20.58.14_1.tar When one wants to restore files from an incremental backup, it's important to look for the most recent version of a file to be restored in all _inc files and finally also the last full backup slice file. This exactly is also the disadvantage of the incremental backup (but no advantage without disadvantage ;-) ) If you want to do a full backup earlier than the defined incremental cycle time defined in a profile, you can do so by checking the Force Full Backup option in the user interface. When &kbackup; is started via the command line, this can be achieved by using the option A forced full backup will restart the backup cycle, &ie; &kbackup; counts the days to the next full backup from the time of the last full backup. Archive Compression &kbackup; will compress the files stored if you activate this in the profile settings. Depending on the availability on your system it chooses xz, bzip2 or gzip compression. &kbackup; will compress every single file and store all files with an added file extension (.xz, .bzip2 or .gz) into the then not-compressed .tar archive. When you have selected to create the backup on some local filesystem (⪚ your extra disc, ZIP drive, &etc;) - which means you did not enter a remote target &URL; - &kbackup; might split the whole backup into several archive slices due to media capacity limitations. ⪚: backup_2006.08.26-13.04.44_1.tar backup_2006.08.26-13.04.44_2.tar Automating Backup If you want to automate the process of the backup, &kbackup; offers different command line options to help with this: When you run &kbackup; with this option and a given .kbp profile, it will start, load the given profile, run the backup and terminate when done. All this is done with a visible &kbackup; user interface. When you run &kbackup; with this option and a given .kbp profile, it will run the same process as with but without showing any graphical user interface. Therefore the suffix bg which stands for background - everything is done in the background so this is the right option to be used when you do your backups, ⪚, started by a cron job. When using the output from &kbackup; - showing the progress of the backup - is written to stderr. By default, the output includes just a few important messages and a summary at the end. If you pass in addition, then you will also see each file name currently being backed up. Command Reference The main &kbackup; window The File Menu File Open Recent Shows a submenu with the recently used profiles for easy selection. File New Profile Clears the selection and the target input field, to be able to define a new profile. File Load Profile... Loads a profile. File Save Profile Saves all settings into the currently loaded profile. File Save Profile As... Saves all settings into a profile with a new name. File Profile Settings... In the settings, you can define whether the archive-slice files start with the default name backup or with an alternative name. Also you can limit the archive slice size. See chapter Archive Slices. These settings are also stored into the profile. &Ctrl;Q File Quit Quits &kbackup;. The Settings Menu Settings Dock in System Tray When this option is activated, an icon is shown in the system tray, which reflects the current status of a backup operation. An animation is shown when a backup is in progress, else you see a static icon. If this option is selected, the closing of the main window will not terminate &kbackup;. The application must be explicitly terminated by selecting the Quit action. Via the context menu of the &kbackup; system tray icon you can start and cancel a backup operation - which is the same as you can do in the main window. The tooltip on this icon also gives progress information (Number of saved files, size of the backup and the last saved file). Settings Enable All Messages Activating this entry clears all internally stored Do not ask again flags for the dialogs shown in &kbackup;. Settings Show Hidden Files Enable or disable the display of hidden files (preceded by a dot character) in the tree view. Use this option if you want to exclude some hidden files from the backup. If you want to exclude all hidden files, use a filename filter in the profile settings. The Help Menu &kbackup; has the common &kde; Help menu item, for more information read the section about the Help Menu of the &kde; Fundamentals. Developer's Guide to &kbackup; &kbackup; can be extended by using a shell script (or any other executable) which will be started at three different points during the backup process. The idea behind it is to allow to mount, unmount, eject media in a system specific way, or do other things with the produced archive files. The script to execute must be given with the command line option. Here is a sample script: sliceScript.sh #!/bin/sh mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) if [ "$mountPoint" != "" ] then mount /media/zip rm -f /media/zip/backup_2*.tar* fi ;; "slice_closed" ) ;; "slice_finished" ) if [ "$mountPoint" != "" ] then umount /media/zip eject /media/zip fi ;; esac The script is always invoked with four command line arguments: invocation mode archive (slice) file name target directory/&URL; mountpoint of the target directory if it's a local directory, else an empty string There are three possible invocation modes: slice_init called before a new archive slice is being created on disc slice_closed called after an archive slice has been created, but before it has been put into the target directory This can be used if you want to copy the archive slice to some additional place, ⪚ the archive is sent to the main server (via a target &URL;), but you want to keep the last backup also onto the local disc. slice_finished called after an archive slice has been successfully transferred into the target directory Credits and License &kbackup; Program copyright © 2006 - 2009 Martin Koller kollix@aon.at Documentation Copyright © 2006 - 2009 Martin Koller &underFDL; &underGPL; &documentation.index; kbackup-19.12.3/doc/en/mainwindow.png000066400000000000000000002011161363501564300173470ustar00rootroot00000000000000PNG  IHDRc\^IDATx @Q>.o)d@0cf EPi)KOcXvzG%sVkt7i{waaffff.s+(_ο0Nz'WSd%E~b_ i9Af嚈gW_}ige)YVeU1VXD/<+?7E/1uHtJ^o"3! u[eoidYRL\//lss^5gѹ-:$:%]7dB?:"V{mn;;;EtN}@^oDD;&B}&dOM]4½*mwi*˞^ÍbwEĹk7N:wsM 'bT^=?İ^hQzoT &1;Žn1wC]㾑;u7=DL\q]ޟ3dzڞ3{ cM %(!nFq[޴=㮑w{Gn:!{҉5BP^־5]^oj{p[`ڷWD@7O)nI"]3i{6A1X/$!TR/Ѣ5΂>/;C$cNr sǩg<`S2'9.Ʒ2ed-o"6;;c;}oMD^TDɔ @{rmoO׿uPCc3f}c_}է`t1b.< -=wO|O/_1e?C]#wҭc?7Eѿ,#!c'qb.{ܪx'ƃ;?/_HYmaX>ff\f2a 38)8i a9XfÒ7wdM:9ʉgs֗s8)8Fh&9 `{x/kcAAA<.)ǵOs9y꺞3cƟ=7ƣ[1VEzհK_'j_eG˅e _AAAH\z.-mopSզy^_cL| &E)!jHڂ   &s!:{([sy`S.2&?16x2F#&̊o;WQ+hj9u󏈗;Be[+  f/bj ϙO4zUVsc15 g1M^#ETٚ0mf0ѧp۸}7rxk  {02AF%ws.Xf]}Rgsr~{Y:1AʘvüEhd?r  h>fkN-F)ŕ"c #vկqM/_~/Ձ R/\As,zDMAemQ8ƜQXcP2yמ1q\{%gRmq3a$+P*v|veG^+ p.CzZ ߇Vg9^2% 6-ia1h9gw%@N^ѐֽX2 B̞< uu!b]j*.{t c:'ϕ]sfl|2eLg%c`$ˬd NW.mn8ErF6;8x,v6 8y/k 4]jH؜8zϼXۅX~'ΊĹJܹw;nnCTB>7%{\M,]odlEũ&3=hGZҘ:\Pqd|<߼jLa^aT1G~-8gv~P^?WߢP=QȞ$b5936. dR4~lcN,E U˱=hGڧzWbIxNϐWfYƬZ @ڴcʫPI͸aƼ!fE ';ϙgY!^9]\gDƢ+m($afds+@|zjreʳ칔1:\PqD|!޹w;)C!hňsC_cȵ{zt%dcNJa x˘@VƴW~`3-F2=2v axj8o>ҳt#Mj݄zW3kV# Pw(mB[9YŋVC>QX;`^}<)Kc ۔8ץXwO/s91:)c v*H=1~?^JA̅K)FT3'_}Aռz0lSwKǿQ4J> #k=AMfT[+M˯1&Dq׾#|2FcGA9O!{mN[n9ygZmIt46xhp纔eՓ4>M`î1)82!Ms$1 xgs{y9yTgK52ll"L zf'<)XSYNc`;0g'z\k MYc pAzԯy>H~̴Ĥf'c;Tc.]{σ5ݬr3"b݋E+תcr MW֪d SB%Br6<kbK0+?ּ'N3/0gYB$&sX~~[۳8k[#c4_)c`D1܆C P2|;Rq2\.ތ86v徇kx~Y߲% 6|µ~N)^_~wcSyѰ[X╔1;$Rx֌JfWY<׋W56;V2\XL2R=Q.-Ĥ(A3>e(k=52mO#s2Vms!*6w#Q-JŅ\Zg`aDAؑ?| ]=F {ȐI3a$mv.Ux9>qΔTIΖנ TەUΊ5Xk8A)A i&S _{[DGgHd|:g]M;J%c')c՚SĘƼ5Xk8AM oA|ùOS{D؇fgnU H̚HElI#[uJHυg21ޫj_v °P $@ItN1%@ÌkVtt.۽<1wlj.bP j11&X=1H010PmVb @4&cb7PGAb [b yJO1c,cmcJc|GefffffffaffffXfF K#zgܳ]4DDVIY]L[Z|Ucm͐ !B͟?F>.O1E;$"*wVR*GNise풜' Mz^]S'q IzRA~; Y!B98I{G[m߽_.])U5R[W/iY{ɟxWk~rm!B!1'wld3C k6ʬyѓ(kurdZEڦ{Pa*/,Dv sHKAN?{$gÖt:DL) kbaQ{9oAWw~odνX*fX@p=yF]۴m,[NB!2e fi?eˌOGO_ {Ex^1{GbiljV-bcȌYf@ư%ejG?eTUרyBRз?JGgF2qg ^Lo%*c J£btI&$Pưḻg|7B!B/{ PƐ jX[PYnTylkz"%c=ptF 7ͻRRZ'e 1ql-cȆ\/z elk[30&B!2ߙ4Sg!K;D c#B!YL޳'cde" ̊°@$nv{gw#R{z,<U(b 1<1@MLMv *d1%RQ? *B15ƦgSN+4-&gR"cm]XDcblb,F /> ~>kBdg?c3qBcXqmVWk۶kmj;mLЈ9 M2Ůň\ |- 5ל\@MeU%P%RiDie&#Qēߟ11BXT&mXJ+/`l+ri5Bc|UdcۃݾKb0=t7NOH0g1ømfpxTT7sMXGbb]X(TW/7t/};;i DwBw B` d1UŮ8q!t{:tH >n(bu`/DFDl..slobZG21j.jN11Bؼ!i_;HymoX۶m6elcxk]ηtg ٩SNS>NdIzu$U'HLUW\(;ˠC'/~|}_y=ފi-<εrz`MYk5o!^1l-i;di%WZWZ#-`OCG 9v<2nTٳ/0I9G1Ѷ|ZK=W^/ 0B["f%s\1kjm;ua;~t1v_1w׃a^~a9vZY7wgV|EjvKu;hJX0EG /܅K%“yc[ Ʋ1>׺ XǙSس4=;iiiw?.ٷNˉPAɬN$I(H -'B$_^]$/|^>r# N c S vB[w8оqviվ3@† ZwN{̹ 2F?gYR ƀCR3ҩ[/Y|Ȓ iӱܽwߴJ4 tɲ|:4mQwC[SKa/&;0@8.!Ybw!sui5e8KWؔ;2B.@ >N:  +& I ̶+8k~e ΰݡ#%7&.AN6Aj^RSwSbL^X`/ ze/IsQI'Ƞ_Ø1--- cOBZO6aiU)X/eQ&Hȵ@;E~xcI}Ȏz)a ^|GȽlP4EM;e,a գ)ڴu2iبqr6u8Wu@GϜZ'vR~,nJWױ}uhigM#bdNtБ&m1|v9X`,= R]0aOq#C }$&IR-a&I)xn= ƨKItz05'0p cƞ4ei{k\7,4B\ Źe>oʧvD>,Z'{1fl_oр2_`ΰ,a ~c5m>v n:kEk^+W}S{p9tU"c삑*lFH.£gco8/QTGBYUb&|W&a”^&DAJU5vfwe#)V3}G0v#]Z1Y F]\|N۶WCڶ/sxUe2Sq\|H}̀{\^Q`^GᚒKcy:<_USs, 4]x*?X?511 cZB[rdT=it~6C ~eXMm .cV`LۀaN:c@SN1)3om> ,^0E>=/) H5GY.ph\ crbÇl= MKKXĤBȧ3d?M!l4󃇏6vq&ۙvi} w^(aL ڵ^1Bo߹kGGO}go0Fʬ2.]@n̹AF[cnO$m֬0vcpG  ~y6ٴy\xsXꑚ_D\g(K*@fanV̐k7{aP&uRgդۼ0oʓzex8\Gs ~\n#oD\cփf"L0Vwãx?4L=^f\`u 061bԑ/)0aLћ c?tIm/c% e-2?}Z'(cluǀF6Q0qϽhѸN)gc ABE\˶8EF]{;Kz*)-y2\؛y >43@Fc@(aG7hػXɒ( km۶m۶m۶m۶msҹyܹ'(+![@6qT:oAF3aO1c1V\%Ø-c"HO7k/H|`)9†BJVxR`jzejD` dͪ80;60kDP=[%ҤQw%n92<8+™3y*#m￁={LYŊ -[*.iRсQOTzc̉aECe~Gk<2\c z8a~]~pcwʿ!'N;tX6 #(*|a} ]>q|[Tm B9r(xa)7.ÇkJ}Qɓ%޾ ;N (};E sv@KKܻ'x:(7׫DwaSwУ~fw?QCke18KykR^ 7TG}=1Ll 햵^/c5SaىSg;`0cd>#alt 5_~%eNR_O =tٳ? 9o3|Ό "}-Oгev ؚ5vXE,^l B[B ={Zscm[1Fd˗[ovcl)caq\W9 cw%Rv,QSG!~|Ea=m `t0FIX!P ^D%LhxF},YTqS0ϋ!56߽|/կofynD9c0Ɩ.^p1co_PN4EZHK RŊ)t"mĊ!x2) Č g 1[2h#i=/HڣFNt۸qc=o46͸/i,Gb1?{Xa|b}e۶]mo>矶*9)yU<=ظO-1y}~s2UAp &_ߪUb 0C1V~>1WѾ;RR⸆9qQّs8^qe}Oϥkv:$銱!#%Ęώc^؉'ArRPSKKĂ+]?f:VU];C;bw+} 0b 01OcŘ p)ٲg b @uSĘ1`*b 1F'1ZC#̓[A'lcjikOcf!6mݦZl߼u&7jTKk;'162:f=f| wsb1F 1Fc1@c1@c@cԩS*,uWщ's&@c*ĴeMLL8-A_  c1fG,r^vxx8y{kEoc16e;::2 {AiӦ0b c1Vn16``pHy+R C#1!mXf.1) &I}mJ<#%GtvI-Y"UT OazCCI'ϲw0rH] Z03338f:{%FG??K*vz*ə3"]FL",[I&O0o Pa/sˇP\l޺#XcU : M x1y I܅Ƽ$y3 +U2b `l:Iܲ%M M\"#GD>4"cwWZȏ~$RDDRS'Ba,Obҥ{agRhIyydǮ= cL1OBCGi;jw x0˜~0vMX1~5)EZ(560arria/&11c 7dƍ#H7ٴo [<͜=O]?&9v\׮/ Ukʞ}[%Oz~<|V -Pe˜ ^9jU>zlL J`bR|ev&b[hmFk){K`޽SJĩ3v Ќ> {O=*/@3ox0{Lc QŪ1 xtه{ |+-TLV^SxT-Y1: 4lؼUkM[`sozyy'PH);4 ;yҩkOR1' ^<-}aDn֍7K3ֲeD0f9cOfeǧs(!9cIIzNa)gal2ob&KyX&b5(߸}012a1~T zƘ1` R#~ ڎɒe+{%g²{~ԙs 2XͥƸwZM[}k=uй;`2it)WxIDc,;c> \gΝ7xPڱk!ޓ7o`ܻPSLJͥwA:~.\L8Koծ3'O'5$;A*WNG8}b0֭W_f E`&Q^ϣv: 򐟃1:qzV@cy|0_x9 ,\A̋1]eb4ɒPBJ#7Mjc<``"}e J"Kj.%\w(1أT{xb$!cXY.elu* F[ؽߊ%cO^nǮ=vȘu'` cXʘR+ה 3?P,+ q2V2&2#d1?ŗXmľM1zojշ۱']wl֠I Q4R S/ZjUmנqs?Zjz֬U;[O>Ӷ_SϺ_7_~hIIq6/zm>mE@X YmDJm{R|/1E',jǸgkXlޖn߿I|$5!eL-ddLmf].q,TT/wX-=ȹTFZլmشEiz=A!1@Ɛ1d,4Q cߨ&p2a)qV'BiY_VaS;{BȘRo})*6e,'c26l c ci{xz{8aYdQcmيZVM4_}=5YF2vXCuB)H_:`2zH[ ǨB~Q>(Q7rcHJ3LN~oܼem;vV:yc~ݸ*U]f. !S0Iv؛7oj`jHnI XS.A`ܤAgHyZZv!cSG?@*+ˣpٹu>~'?|Tr2]NHY @REY~+?zuj55 VՍ?IcA὏q^R7lfUkeo-M+4Mq2};}’c[vr22F&- 'bMZm1R;{+r殛C_N0OuթFc*׊',2V'cç/w4JrW d w ^"c{m8.]ƇiyiZz6Q}Q{Beiعp)5R}敱k&fل!c!cLm_>nji7CAXhKoWmY^!YX+իɘPlP)xnk^TK17Ɠ1 \U{J5lՔ+^ c2I6i'c:\4nBloֱ}UqVf}Gtk3b2&z ͧC4CK-y{ 0k߬~,$ d e,l]_ZSG(deg+ ݔrB!vY;tHsiKIMq_CƐV^ؼ ق4;x֡26r2DݖgBv5XRrr .u?HXWƐ1d,~LQml'_#[2VT]Pk#%ݿ_~e CƄzWK)S<"2۫숡T>e C1@C1@Ɛ1d 1d C1@u222FƐ1d 2 c!cTLd |*(R/ZOC<۲mu+hUkl1Dڊk-]D)2@e̷0ŚBC dwڭZ]e >k-^[?bYYYZ.UxaױW^nݾc+v?@;~Ҽu@ƅ%cPYPBȘ!cm2z*+ˑue {UU>|d>|_7OTYO6z"EƖ\Sel wbISg cAD Cdl?Zck޺UUt'Oc'Nzm+Wc]{)3fd,uԵUZuW'!شe;RvksoԼeI \?hz޻wAװ5hܓ]ڰclYֱKy"gk۱5n}3E~Ȱ(W믿TP XFFh6nΘm=4I" ju4u~޽}>mfԾmڲ]*EVՉ^o|DNZݏ۽>FYVn}֝{d,cJMOVUf='cJ޻[? ޓOi_?`Ϟ?LɚBDz Ҳ?]}1թ+.NIz~%o{'ZiɄiKO$4;wu苌IBtgkOhL*aV߂.^mޒ?dLm%iϞ=zdL*uW2:m>/2v%UcIIYduGu&;;[ON~h/_jYFd -c݇!c~/v4`Uv4~>ܘ1Et?g"_ق˘Zڎ<ض 7i?dlȷ#+dbj\qk_1S'v!'[b6yL׾I˶J3vؼho}يՒ:I4 ʺ"g;aZm7oBE}?^*%5UȘ$뻐U&Nns/ԧjz˯ d ؁C1CƈdA">I؃w$fXls=:93@_ټKV@_%W:SEF߸ɘ$ʘIGdLx$+w%jYh Ik<%N.#J+\IB2V@Іco޺ɒ)ͲvL#ػ [aSPkФ.1b~X;W霪I- Ua2g` *b{W/1{*+d, |m!c~1E$bm (JB󊗭\R1I׬ QFtݼm}cƶ%9z K*)=NQko2E 1E1 S -oݾR@$ZkqK}Ս3^2d`x(5qR&%BH嗱R\VE)bZ:>}Vy4 +&2߹ EIȘo94)))E1zzzZTB1}3;gX^F}Yݾs=LI&gbۦfN4L뛶n=Wޤ1D>sNC/ 7ħȘr%X§)<|%?=cRFwhdɋi,տ>ߧC6ח>֯߸ˣT -T.شe;Ӹ3Mq-o=--b5/ cJ}捎L3W}ah[ `ɦ&3I*uXߧ$̥Kj_Nedloel/2Eiv8,2r:+6Șؾs5n*ר?vMj,C2 c",c1d4Ũ1s|+N4跣|Ϟ4Zd1@b@Ɛ1& mzi8۱kOȗRsJs2 c@E{11dD4t֋T߿^ ɘ5=ܻ4RUɕΨ5ݳq⃌2!c9ZeL$'?eMQ?"a.GRSvL#;rd *1C/M䧶HΝ`?^hYeXrB=}O+ ![wi'ݿ!cB_4ۑv{G-h=:ɗ^CeX!+;.]I W(5UYKGQǏ1dL~cq )./:EO?E6ɑUDоOd ?*"\J9,2jE?N c1d12F c!c!c!'22X2F c!cE?!c22X2F c!cE?!cu;*;^El|eAXd 1d"Dl} krr(d (D쓷 Ej*`O;{լЭjΜ;cοbϾֻ`d CB.\%!cۧU|kٶBVl1]uu[f[P"2Ԟ=^&.Nw%ZmI؉֤e[JMk!֮\~u5owf'9ٺ~*8uun_GZ{ 97u^[ 8t8hlQӨY}'`'O g_UuX~nbW(%N>V*_Ve:u#N c1d  S?˥^eA@Ӎ” vﭧ%&ce{{A eegۭ;ww-Q'Vzm۳ezF -=#ò^ -={5qtoIY6en{/= iaJ0>"r1|8[xW|Z}z}OuMkܼ!e;VF]7iɶs^|2{'c'}/^تIBƐ_ʘ1d@aR22\,qs8uO]N]{Z: uX -)IOb՗1]L jk1ɤ0h ?O6miӱxOX4ias,vn޶5o.#1=龭X6"2{ztpK Et蜮rc-;p=H~c̛nu\V}U>~O9G"g0݅.=H>f˶ֹ[dLH!c!Yp_eY1֬U;pWנqsKzͻ|^=y޽{Wnu%2~vv.(CJY;jzSom.6}\=օW)Œ1,%_7nxD7pʌ|v}1VZʔVd*~4W?JأplQMу(B{n^,c:5९BƐ_ ݾs׷|XynҲ ;kܼ'g*)Nʷ=HNFHƶJRhI$QɏI1ɚa+Fi7}OX#c&OsuwnySn:v}@"2o=򕍛8ŝ7!ygyإnVoRb#Xlλ(o?*c:1&gΙ0LI:cT=I-C$:NI+ V>il~jԵ 2!cAKM}lUkֳ_~L؆M[|e7]W1oP^o|)=P>š7EO75FAKEυ#c;1B:uQKHS MQѣI#cmW[=RDe!lv籒A}ͅxE|i=]jbkseAGƜ4#JU%BF4vM.CƐ'KSĽD>zw=o"^NΞk߯}2e=TRht/czѓOE|&1>[$*dMɈاNࡌw瞽y˔qC-W~hhLpR5ˉc'Lv˓g4V,?82&4UM 9(2PM2<1Gi˘ٳJgPع菉w2G-qГ2'M[+]Pi&_nEiȘO175%cXO6322sΏH/J|^Z֫:t im46KS?j\ټK蜮~NXcƻq!PdP:/C=ɠ;f]7Xƽ=~BrH#ھH2}jk{DƐ1䉩KUƔ}i"ݐ_4-Z\o24} (߂˘Pn"$m#.n6/ dX1=;`-֘h"O1hHdASF^?\YMf1B<7`1ѻ46MkzvfzՌO۠ʄOP4Ih&#SgS}'(A R:skZ)i]OSk+)cK׊|YU?(0iYQJd ?^\m%S^';!;r 7oxO~D'P=YB!7{# c)c+hܲkW$CK|H{=X#1d 1dXlsEB"vaJ82FB.GĐ1d 1d2 c c!c2222F c c c!c2222F c@Ɛd ǟ~+MCN1s/1!cP\1dnGVeNjO9Q.##R4LhYed ?'v;3,61@1d咈}궁@Hm]6]rRRR=LIKD!cȘo94)))>ػ 6w_in9TfffffffffanJ{#utGvn6c̜1wqgZǨ @ #f] O>y8eg͕)gInn^WZ77H6n1F.Irk[gHDl#7qۮ]?Ԍg sΰc$+;:s^iҲ9/*7Q>\bcGY):WUUM.]KY TkYvNcÇ1>Y$vIii&Ilrm133~vN 1FcݸyKE˝{R3¥z1xĘ?:rL ,Cc $ %۹c#ŶstFK[lG}پ|嚄Fř{"1F1Cd'3gϛXؤ3d^5tk-a7,ZBbb ?"1?uD5җWw[!mlŘ7PhcZyvwY33d-Gtb wc4c<+yFͬ_$&On9k[rڴxf1]# ()-JHdc 0c㱀GeeyN񓧶HY /sneq ^}ʆM[6c'NR\R̘>dJ1)u_',Acٲ[5tiN|uŘbb: 4;ay15oЗ>}\+*on,r11b1]CDz7`{tx+ c誅:+Ǫ-TiyϘƗy,"=c^cL1,9v܌׸yk Ddr>rރۼ>5'N1rkQbLC,=3S**+@ !ucc3E⪾[@?1F1^yG?\>{a\c71x.[ 1c# ~F# 1F11b S1c#1q˅KF@1b 8E~U߫~;O1qB UTHiYѫ Yj]^Q뇎#"c 1c5l22dȈH)ӥ5wԪ"Q Md9vBJJKe ӨC^xHVy M[t?bcI̘ΊM?S(UcNĘΌ־/_fwNX^Fsnoݱk1f['Macim#eee>][OǏ1[ ]nɰQcm̜3Zu:Y13+K:%tck:XѦabc<׺\.G=+/EĘ.p튺IS%:~iԬhf.\l#b4]e^cLNoc[#KrC=' ƈ1b 7nU 1F11K2|G#Ie˶cʓ ƈ1#D8R/$B,^*iR^^.?Q11b1M1mv6DJ]KWJdm$ [cG$v&-ژ?}divkB6]쳎=vBnof"99bLkٶk@vw?11bb.6y7cC$)((4֮۫V:YSR$99V_{QQQingq41F<135r4B\.bLc[c7;w}1/Q&1'ɼmǛjoEX͙:AhoظSd;A/[{1@c1gy7:zX'N6K/'u-=@nݾkX|rPZjܣO}x(w.3Zߌ1c},sGbc<hڪ[zn+}vcΚŘΒ-\vmx+Y3u 3^r ƈ1b.H&32܊;{pT=m"?j7pc^n_[Q ]>2~U?bLʢπfjzݍtHFKb#vԭ 0aOV,ߍ>'gŖX-tcJkokMr츙uJW~K 1Fc6E=g+7<}6࿗#/Li$l\.ݮqtuDQgtԙR'(\%K@cW^QO,O4ޤeX/Ai23KRw Q.\ %@ ƈ1p-V ƈ111bb bc<1x1b!Ɯ1@cc c ƈ1#@c 1@bc<;|3ڎk\.\׺}gz~T#51{6+׬Lt[={RZ$M߱k=~u|ҸE -}פc| XIGRަcΜ ]{H͚+e9}I4qozm۶m۶m5Z{/'TWtuͪn\#~)WT\lV^k7naklپ3lغd;URܸISy?hQzmwPJ]];޸EljSr{Wn˾JHJ2z5Wf9S\Rbm[*5m0g"QtgnO׮٦u*U7099ѴW00=~tXl** >T1ck7l}cG1`Nfа[f ~De[Tj-ӱkO)Go(m 2$~"2FSASw$hgמ}Q^XN ؅1dRbD~z&%}ĩ3lۄSQp{|+n/͠O2}u"q.)9Ԫ5Xѵ@5>1ڵbM.Ys!:le-g#qU#[O2KrF ZWaLaL}mqqqTeNT cDY0/^Ҟ[r6j,@DJ:pv##Sxuj^3:ɞ9w>+HJnĜ=65m֜9AŶFj˜اTX\|>jVBUӰiK}n{ָܽ繎.^^alf`Nog_(Wtaid+JbZۿR=sw cnp E* ɜ1/G%f2,|DŜqϾIt1;5mشEL$Q|x~:{o1Ηxߣ>"]I`sQrȨT1+1"Q c9alݤ'j\*H1lLj圤s=P'0s^O4-г3? g;D{%%5v.oY"x#c8aÁ銌T*)}HI hqrux f?~$R+;s{ڳck;8 |q񓧼`8֢cbly=_JCh̙<;Ɨg>{vRX :RyHmƃ-DI0&1H `LVce_M)!Y,f&@|}D Rlj1lY0&Q4x]1`,95\9h"B"R@s!)+%z&l#fiQs3w̧ c cZ'óEZUY1&VV<{LT=ئ-186֤E[o@iF&-̞}z?m T݀?xGayr8zet8PPH`.Y m{ e{L9Iʢ@!$1"rCͪIP]{MZz`tA6ms SFf?;ޓmQ {d&$& rϰNɵ\ ,twg"Xk)~~ 9ܑը}+ca 4HmrÑR,<{.]9S?IZ&r#@8Hx=9Y{2?3+F"V8?MP4EUsʂ11a J#Gtp0GN7O80#P;v[9]$B殃{6H4uĈǎo۹ۙMg@ls}4a8=L)K3y6_{ƴXJS,oq+..c7"B$|OiiN[j-)srr)Eč*Q7%9 )Vc7:n=AL)T*JR))^}HHa_{ZEXIKK7Ϝ3|ZqPER.)6R!ǯ]{D?˗/I7d& +Hb-a2@-c% 0RT*JaLaL ,]P9)d06%VpW0@+iTz:mt*9礉\L% |D9gQa#?a1JRT c cZFƂv^sX(8aUŴ 7Gz9D<0S&><.q;H"K} |VV4QTI1w TB"WOkW~amԌU߻ 6i7ئ"&̍cH7n\v<m7qsgTvPqzzޠ0Xw9kEؙ1c9cb_SӨCcbx-^?AbL٫ޤ<-WbJ1@1{RJ_7\!b cb1cb1@1{b 1 Ď1c@bLcI`B6bL1 Ɩ/;]64@1F@-1&v1@1{ Ę=1cbO|r`M1@1{(!v9}̫ժܰ]hSd1@1{-W }wzWE11C111fo1v׶읃o|kkvm۶m۶mFm}ofd]w&yV{aU+rssKE/]Qٶs7s.!(<[4m;v파LY^!ǏT~'㇎e+V?UrXPXH]6s"bZHJNFvvO~gΙISg'OiNٖ11Y{j,S4"B?8QƸV2&,oZKI?|p+++RCzEƵ4:EP޻8,ە4UJ(K0l&9v1B!P(c\kR>(a5.f/S2ǿZ(eL?LƯߴZEێ"se,11 Zy% =n<4[2F!'2FXhdG3cX)SNAAB KW\ 1ڐ1)}1fIV㧲}:G+qο-Noӡ+>z eCk.]?KS*M1$.9\YYa18"[1"cZfDƌ\~5t1999Yy |ZkHP.=P\\,[]7}Fڠ!@q/Z܂7 8hxu9Ϝ;$a]G޳g֬~g>OLI2VcݏP;x]$c^1m?mg. A;gLgapͷ7&chtT0ád,23&!:\36D-Z/WH-S2|1$cX&`ߛd X[uiHț~^;{ɧV426LǟxRW: #c3;ޭ߱m!-q4*owKe QlǞsY]oc;$cI2%"c2 S|J1f4 4:~<}w +.8ޖ̨ڑ6k_ʫ9[x{";Go^^QH;<<1ޤϫ,y I,=bpDgʺvz/JoϽm50+l yYs+ykW 9eT#O#%Z63ƛeVD>a1^e>D 0_f7g`b'<ˌ={l jeDڝ56 ~ַ%]O#jtu͵w4oGvY|8#I/~Fա3$z0!מWڌ(kmӵ.% Ïܵ.)ɘHHLUveG*WlM~M"q섎KڎڭmUwu[?UN9ͤ TyMfѝp<ˌO~ʷF?-y뎔iRSjWlvWkmAtW'W_&[]3ȘutO2d,ӛl{G|:nox1($ r$cvL fn3}0@<BrWKO}~ p~Yv?QpVa@P!Rɘ# PRh yp$1b\xkzp< np!<@,$8:smc NHTEy :y'}oϛY!kQ?h~}}88Kt0ɟɛgnLXh/igE(m6 c>׉H$cEx&$[,p$cgw@3&Z+އn&N۳X$l~x3wu1樐M2oqW_Zz[ ȕw0s q6)=He'TafTl뇺z/] @: I(0gدj 7FSwmm:tWo1|^qvޭM3tÛROWzb݌jir6Zʮ^xEQv<8LpD:I^ 6daT_]~gZbׅEOPK49+"cNKޣ]-/-2fbцتvE؎kb1ub<5%K2M\t6<\B/7"dƀ#=%Ba{ A ĘM?‹y |!B@ CG"^[{Ҍ:`SyW'Sv03BpZO(T|Ivyh%#g eN@7 ޼[nks+$,G1k)l@ǚ(c3: x@A}<{dMab vx{FDq_Mt:Hr:tn;&-̭|7:U]&H^X?3(6IdH'HT7m(7ͫDU=t$ 'l׵.;Aa'~-H)\P%'cfzk2=G#7}M(2&$ZGz[1dg,26c}ӻv7n ]Fxb_cIƒez))S!2!ov (Qo"1l= D,iZʻ:X,w)Lkd u=0*xi)7bQOY>k3Y݁%@v}x~lHxgS8Y/jaXI6(<ߡz@6Hc 6VcgB[|kqXOw73_mcj,EH.1w[rM /#F: aC0yZ<+u(m ;!(;Z)kl2翼,~pɟҖ+vɃh~ےd,Id,%9UhA+=q5 )SSY)qLxx6YeyeAIdƗ;&K2%KI2#cZ6$-; "٬ &c)5řXb{m9XL/%%XJJJJJJd$cI2$c)))))))IƒezIR$Krd,%%XJJJJJJJ$c^$cSCRRRRRRR%ޏopBͽ.SU}|R,[ơ5/86Ҷ-v&Cl)>e6lQ7yyɧq}}_6rÏ>ćA4B;ŗ^/zaou7j_^c {W\5k3/R_~w=~'>\p%&{~1x?!%O[O1"‘mBbSÏ}c|gǟx]Nf]wC8z1kv39!A~WB̳F2}yoM쭿dѫA_~)Mt1NK_vEoƞ$K2K2V~J LPeԁ=[*onױoZ~z;OÌl~]3]z 8k{Gulom[euAhf``ތ30Qʫ͎Mx{~ŗ^v(Y@lP]+7 Nb:Ï6e9c̰6INj/뭳ᦽ_Fo 739kѻQ}Wz{oM/j[yui]r;v<ꢯ#ͶڮcOijC&cWϺ"f?!IS>xh}W}yn{ pL5oONyFo{6b3K=f|ȉ8W O%]O#jtu͵wܻ{oGvmYU|v]{~KG@Ujk*P裏5@gcOzHX(''+ P~N@m8suNDZ^l&'z!wy( tϽG}R.8S>y΅]Gb ?|= @{ qcb!rq.<7z.] CƼ'oE"=qR"߀g !cUw (sޅ6[?A$YF[0ܹ^QםvS1dZ=:<_y62[ C';19#k&ގ:XWzcw1TnzT'f 9ӗV'63f2A>獱ƤRY5Hv RNՆbA=NڨUɘihJlXK2dldLHDd)1!cIƀbeGY>=\VnFtpZ%( |Yy?`k[oà:0{7lm[W3wڙgwC좽x};r/] lYg?`&ka7t 0yj@T~Сm@:uWk1kO統yat[>C7#t!0ʶ5A8h#w͸Vx$ GRm7]fSjil2Q\G&6$qT_{Jƺү1q1Yr <'2kGD;Vg 7Q'6&2 Bޗz5:i_ә%GG&?&:S^sI&K2g.]&:C9ycWl, %2oeX S>_ e}DApڍPB\ʫ}/ ;dz'~k=Rw.m;IP@Q O=́Ayh1}rVa b `]~5q_Mt:H6;XNV>/4|v_E?uh"1/M !я˟1֗pq[m7nܡN4^pLM0\!m;Yv&cD!VV_ie1iyژT \`JA9c k1ҦL)c3C<_SN;M2dl+SCMSXulfdŦ.RR/ 1NLTCA"<BS dLH!o]όz{6`a\2fv7寬+@$ m@kmjjβ bF N%c}ǚvGW܀j@ڳټfft;3!?hLj{x^xmڞ6d{&Bdl黫lTl.o IwY` 6Vy [.U>o=MXOwCymL_]mŵ$E}Km!DB>Fڍr맅!Vcq];2Ftdf'D:e'm'&(3*vewl+ou} g=K)B(yFD3ȇvAeg!H?e u_eS%c!qi<ƙ$cI2HjbIttbk!\=b۠LQ3GUBJXRz"z5%d 2++Cqr  _> ߉ "#P 5.su`HO원13o$$HPyouChm*U^yO>FE3]п} IJ#t&cY>zl5_tr .ֻX G$qX͎鰜+'Z<,B[UHDY]_-ٌA^iq y~eWw?VAΤm7-i7GR3&DIcFUN;E~]MQgT ag؉7tƶy¶uIt*QǞv kxGdw-WP6X3RnFw޽gtz@@L%c;E.w/~F!r<]eBm>Mˇ1"0iOuaPMiuM""&zg:39⹡6)N@ G &(32fL,9 DKL4Z#cU}9cnGs/!cADw+"]< S$NL|T6&hd#g %rJIt֬y!F[&b bBȸ S~yjaB/))1_Zi߈t>ގo7L)SGƺ8gl2G-fd,XP c-!fjeFVBlo0LXtfK2V eBʄ bVYB3wȰ$cuIIY>: hNE`1?yAI!pQ%K2% ByQX pxm2 Ãvwd݋qP$ZX(Ȱ$c))Ehдx+BxBSIR>S%K26,0 eZwIRRRRRRR% s>sG7}$NOY.9XJJJJJJ .Iƒez Go?嚐 bo_е4%XM$K2́K$b)IRRRRRRR%RR,CI2d,K2d}drϚ86}_|Y};(tJRs(vyoud,lCfwm::_/W]Ͻ$ϿR?Ǥ9eƞk~ǚ~_5g:z_G8,hUprGVMO‘Iz/ZI$nBaܷ8'|گwi.xޙ6ÏN!5yMŗ g}֜w '&<=O?\gڀŗ^z{/|5K@n@ǝVu51.}`BY? h^@!yl o^cne^z 7ݒx6qV^}&E\ x퐧oNEH=-G]=tCze㏇Ǩ{ --w_~ɣysf 2cO@ߟf?8vvvr]kW O%5dtsGB*mƢ](?jcu;&n#i{9_(OUC`j_c @ԩ6pjt .bgtﭷEZ2lh %贛߁ғz{ǎUlY&騿~ꎻ /=>K^@TOso@; y$O?,>Bh`g[' H6+.d,Xd,%ɘYX pWEqOA>Z+އnFnC xcV}}Ch7lmE!?}o!^|iCn7"7"Is qthA*?P- / Fw.{Kj`κwxBk)p-Hc?y SA;6u'cXՎ!]UM` Bϗd D~)A8MyMW^{Ix=Y c<$~k3K޶.ÀJ |ig(CAԋпYrIa'] t6AlcvL/jW>Ὰ~:D) bkxL6IH'HT78l#Fm:.F؍r u`DǵZ=xVڑ!6Y'cFIk1 A"t&c@p>zh _ti @砛U=!|y9.1wO>ɖ\B[UHpGޑ4mF^iq ~eWwBr?VAΤi7-i7G^3&y'ɱXȳ-.!αqɘ~D;E$Fϭ}PXs+yٶy-w@B<ҭ܋P 1i m"6!@J$c^$ceP#/`xX(a<P*3ݑd 0##k"2`bk/!O^[b2淰4-SziP*Ne]\V%ca0/|V]v1ސN( ٠CMƄȏz H.Ehvs~ʻCnX Hfꎧ1c@Zcw~ٕT3HE^'6"OLm҇riuѧ܅jJnM%oPj=ij \a㒱 eUQ猹n-28tŒc!D;ܗ:zM%ϛ@\"7([YHY.d,X~|Çmp2<)%䗔 6և- }@?6aSEx8MĎFLƙ-\nMI2d,C.[nio?Y)-)IRRáBx"4ZGGYShXl0u%zN)t4Ѯxxc{S%x%~1c;Jٔ$cS_Rf凥Ń[&TXgg) ))Iƒ%+ץu HI2d,w)$cZ`LbSѺ^H{1]l4`W/.^&IsC4Vy4$KIIIIIII2d,K2&$q"~M6fQp/̺ES6m} wTxG`箣=kVm2ⴋVT2t :gzQ9ZW6>u}<. „닁:nFƮƦp}eW`y~@I9a{7a7h!6/67zM8- ta|dm踿a@Pd8xaG%e!#7u26nD,k_tU=6 K}AmwXIDd^VMXfd#>=l>Mܼ/m4M9FjIƒ}KX4V:)Q>wo|w:L`CK/Dx+:崛b1NpE^.3%vco`Š =qf mb<b7z̬7.YQdE- 'c<k{< Jc a}wb5Pt H (AVlZVYs%]iͤc6]vUv0ug)(g oׄ^S9|]kk@Ï<ֿ{!tk_FQkf76`2K+[vz49 @ƺ*s[grܷ6)=C97Q?FiW% ЫtEgF[cmor۱HxsO_Խ!/|%e;Cb]bdl|ݞtE]K/!}%bzU4ΕA4Oؘ1NՏ 1c/'&O9^|⩧{[O-th$c3nsƀm1psƀ(;kkqZ猥gLȍ!~#c^͹s:㏿FƬ!Y1ت Id`}'nVlu/`7}1A:P!cw]>;`@6w.,;fm@XO)d`!tI7@q /&[ Oi:&c6؄\ >B#ݪ7Md:c1}e~@XJ:u}[R;OK: mMQ6ODNDxyaW%a"c0@v(vHãc'n1Gg~6w@w:aY0>IG*Ϯ_VK)|;Y9%6)w՞0xaһ_?#8.{0_m0Vz[_|1l0֝_ Hh1N&soMoD8 Ee9*r4qf0&,-<ʐ:L#I=)<PU x>ԝ vD~~ :Cy',;`U0&AYX, *u3ULcgAKIoߋ> dW~?ea#Z0󘧎@|nm__`L h7JW/ ޳X  ƪfZ[U{6Xm@˜-(T^)>[2F*!`}/S%c76IaLpFȻ kuʝ rKdR4ŵcmx߻瓿̋j+[9I`O{c^\ja^@bns(hNekal؆yR5F$vq:"2Shko,% DMQQ/gAVOǒ,MS0YWw}}ا4[۠G'\al gSHSbҗ]}v8b0 cֹuQ튃5^ F{Җg0&ΌoN`Bo"Ru[I{+ew[kQ23{N)X⼐1 @,coٳF:%\)QсV ̙+=sm <ο?aPzeM`l}KZU؇|,0XW nNJc Ū=55b6m0Fyn Ίbcڰ Ʋ=)%n~ ektX?.fF7K4\cr*6 Sgm\]ԧ/ 83n8Ag+;G 9rEKccѮ>Ac$pם czJteW䈫ziNvvQdg0zO @Piā՗֎́a}{SdWE)` ߑټRFB >0fXPϡL!)_1 ɜ`)O0L cs3_w澞 yu Ɣ ƶ/KTKqlYta@bƙjd؈HH8Ƒ!01 jkG *`':X^́V:0fc J't(s1$+- RaUt%".*^}xǪe}`džsDéKY,iLr?O(9LgXwlxcJ^0rBEo=JXT  @5eP#/%K9T1frXacW\}^ZTKbvh6o E4?\ cӺ\\s0IJ3 DQH1cXsR@t^h0< 1oF L0زaO5}a̼d1>m.󻍈Ms>0 6ʩY6'OId/v1;cî (^]y u͑\Zs d0˜gC=p4mkUڭ?lc)09l^5pٱMu06ͥASvkl1J>RiHB ̵yX$l6p%p©4>b[-~ `r%3jA ; u0gl3gpvE;w/l{wP qUzްPB]ԯyySbLS!|~҉<?Ӿ$Ęy ƺb4+kcVuBSQcpyn{T7;-Ę[0Xs11 ĉy ƀĘ3 Ęyb 1 Ď111f11&1vsy,f~'ˊ7KCOC!;b >sI?;m6׶m۶mj蘷OET_bꏧQ̚1؍[Y sguwޣϞ[1=x軁’ },]zzz#ۿ?{E$; urZ:x(рnTY`ho\[CF3gb;G[?i ؈ Mv2ҋiB%)2.KtiVX?T*5+0&} Ǹv}]njGe[9NKFZGܼ)>9Μ;꺺iiA  r' :Ч](r/s'p֦?$^~RRRߗ$Iz~c*SJ; ]< }IP7/@2c=W0|a/* sa7ۭww@ j/7J FC-` lcL|FЌ?hב].wY3()f=WbS)#'iZ >s^|4E%Cfk;.pA_qYqriJVp~0F{>`\8'Nl}gvoŪ5K6YJ+jYJJ1 crz 1>]ygg'm߹A` lF=oܼLc͞%C^TVI;vA*q%g1 Nqm2cv}]GU-ש7*UJSgRۄ1b/;" ݇(8`(%%H˜19\1T*7N(I}cIwBP@؁"(Zc ɹx =5.\|gOXF폟8',ݹ{/Wa@O9Vs;;0zT8Jh_8&~x8x,H\0\83>,:HsļY3KwkB63"KڪEf!psK>hvuj8 /qJƲ)n[zv "({յGjYH`#)fҭ &<ʍ99cl8?)H c?>쎻u Z z.9&^W8eU g팳+1)|`=~1ؽKpRG[=t7v@pƸa4λklE-.{ZHRkyi幘/\@k}\X~@[/&}Tn+? 8d]'0hN=q*Z|00%II젡m(+VգH\pdA`XVp qіw]: k8ޗZ`iꍤ66gpW 8}˜`3ꈆϿF:YMY>f80&.] )l{ (gr$';9OyH+az1Apߗ.0FmQi+Tpjƅr\zz?Ik}7/H#}KW^c|}Ψ5ǩT*a,a,KgG m7|k{q;ՠ Er/;!VQD?0&ht6ShqԌi;61,J,0op3>~-Q Y&hc`, ~_ۜ'79p~y^Y֠Ƒ0&U.>s 0vqj\wQ7  ǸqsHW@NGKwz`_iv9Z8cί #CxJƘ[kܟ6aRTJKZk㪣f57u܉KO8X1 ]o_sPo%Y"XKҤt| i+c= x(UN{\,"9q.juhp?/j}"nn;q3J)q;BP?:"-o$'k5rsK 1QP{(nf|qx@so!H;IE\q1mt0ֽ\090193c cXiҞ?/ c!cWF~([ T@CƐ˻߬rYd 1d H>J.M9]U*}Z~ŴN&nCGޫm]NdvCw6n#0xZkG?|kZz}T 1d @ƔEUuf!c3IYLݻw:XTʄm9-,"kLcMN= cȘ"$އ2^;z1~JyD~yVmhk&d Ch@<Ϝ9|\9U!n_WPP`KGomwнwM Șc'L1&cU7xب@*'rFuѹ{okֺŬ^+Y ΩmPnC'7)Ӽmםuرu^:|Q;"qh#tkE5mSִe[W5ԏ+?>ὫXbRƣ=fz\{֥G͠a:~/m~tSמ֬U;Me Hއ1^fl_6oam;vqvZEׇ#;rү hcv޾ͳ)g}7mQF]d *62 c=n͚ '3pQOa#YsqBD2&at8oL?zǰOyo6$/c%,̻N/]?8YvN/!0MlݾG˘DPb'8e;x^\~~kA dLOһw/]9v֦~ܳ}h/TWwK[~oΘ=OcFb!ck-iqBQT%Bti} %VJʼ5QX6.W)lkW!?O1[%|pI(<)c:Vr8//O$Gشs(2&9S^0 cVǞjMMU5~6gB+^"cPAƐ1@֬[W~YQ }dk}=`pwϫֲTiv/T4uKdLdLtuN/ WF}_XѨBe޳>b4T$V;JQCb+Si1elɘ"nJ37-c:Q2tEtXysص'pJM/]Vt55񓧹zIۭ:=[2̎jWH/r2!cwJw窵4U1}K(LZM5SdhmnӖm;{hJ[@ѱK$:zEP4M UVJX =kcycD$PjBeL2'ձǢK#15y!Gۖm;>Zf2][u'xO!p1JΞK+1 c2y%˨Rp0(AëW9~߁CRJ(=7o˸}GS%$ oTyflמ}(J&*>5]VѕE/SY(J%Ic/)t+(}p7-?oBeLCSE\xذieL?+Zjݼ7vM-d2E55Qo^7s޷I+ĭ&b7lFƐ1d "3&$Mv&Pn8E1ڭynh <( 1)lvI$2,I"^'M5ʦWYWX6ECh պ2OD$5e@(Rc/8qMICP[ jP{THM3Ԛ;Q2&ZvK|C*~FȘ^}I.,r@7 V 7o/EÄuNu2 cO09Ȣ~tBe_Ɛ1S:1mY%bيX cXtMF?J1<ĩxx$&~(8r1@Ɛ1dLQ.G "V X:d 1d*JE>ެHe,PY]>ÅE0s/kr c2n\ʘR\T۳@|>=uECh/(dE|2 pj22F{!+2teLjW}I6Ն7nZ^)67/^ԵnVݿhRwmڨykw߀!a֣x)JM{=x 6fmv23ﺍkeuݧxn(U>X %nO˭z#ƌ)gY}\9󵗒hϪ d}cWe2n~1@Ɛ1 Y6~(+b(eܾd'9;e}Y;~BK}H2ѕϜuHX\w6uly%7w~E*'(/_6J$Wx$D)tv'Ivߦ-XXNNG;zZh{eL۷y'Oƨ%~yמ}J跘 c2V G>bwo \;}\O$C%9OOؿ>*!)3dK}'&[qL2bVH$[_wy%!?yZ?>Yw跘E c+)"Vf=M >z\~j)k"gCn߹[(Vh@/ 6v.YaS%"s1*AӖ91 ﷯z ]Tδ io~y? cX8$2vQE4:?zԹ{o{֌?x8Lb<4P_~%N_"c@d,)9կWPDБc* A1Ii;w Dƴ֬(+,Ysڸ 6z~@CHm_a׌x6hH'HϞ?/vkTV: 2:7ו%;Zэʏv)/oZ~~k/^֬[5`BeL$v/]b(¤v@i&EK]!+Y֨I6?ZƔC1=sa2=[E3}z^MD*2ƦȘI?V:)2'_Ƅ~0%V;J ){ʂJ:/酒p,Y҉$IYBeLmؤdG 440 KJi뢲)*J=ʘң"z~;~y?ۖm$"zߚcM}TJd 1d*Bj{S$I)~dDW2F{dيXKLN)}i"fB!#oH*[Ch//?ߖQD^m󧺕C"b7lox ci*"\r!d @Ɛ1+W0M2F{$J)"Fd =d Cv1d 1d c222Vd C1@Ɛ1لȸ{a Ch j*7&з? c ca cSiݻw2fM6D,[ky cPi@hTYN7oޔ[<~ 2!crI>P(ѵ*a,E6 2F{TQ2IfeeE*crvvtIB֨Y+K=i]nv!;`m߹LJLl̄ɑ#cXd c˥EǮѹd,Y{!c2BVe2 c>2!c.deR]z5lf/]jҕu'6a6SmĘ6e,ڣ5kfΙoaVVNueֺ}gW߱KKLJ0xݮ=sf޽JRV]~=n-vZQ,qs۸y_ISgX-]]>-#̈́do͙PqQ{ ~{k֭}3h=~m#LϠ"2F{E Y6'+X;ը%w燏gk~M Ɍ;'ؼuGa2ݷoi˶viW>jG5w2;pH2r>߸yK#wȰj z5ʗ._q>RS}١+ &yyy&/uo.T]_Q}NN{GA>[h{eLϺe6Nb]G;%R c2V<C>"6?o۱ꎗ.=XrJ8)Aa2& 1~4[f;0y-Z4P'cʹ,?i-]6l"w}kUj֓)O7q;ViydϾ֧ w{~Եg~_wW[~{Y^A=؝<21M2Ș"bH$^]Hd1|kԼ+L<`i/6}ئ'l /Y&NǓܵp[P?E\+;۾nլІcO~+kꡄK JPQB)3{["vqP@ZZi(qlE\/T$L¨~6lE$c8eSIu7O.qɽCFѴP cU$c׮ߴQ͞<}ʻp1E6lεuXׇEZkM[ZYV~{KLv=]̻u.ɜ*kҢM>۵{T/sejwy}̸-̫Ms]{[CXAS7farc޼md +/-[k)%/-=VĬ?5 lɘPȱq-viv7p;d^لD/jȚdL%qI$[Gp<{hc)TtoEP{͘3c6s7C}lK*絻7ل$2mEJĊv=@YIfڬ $0.t R”'Ϟ+͸ ۚB1 WdKql"e{"y^4ϓ=Z-zd +i"\r1.cZֺך^^(ӡ6vBrly*Me9M<ddL7qXEɘ.PֳR˓1qqڳk̟j 2V@4_հE/UQEtN"iG+׮G"cɘ0~󖋌=2 _14k׺@1d1!8b>eɌ2c4Q=^fl:s?*cZ֦C[{MCTGee,-=z?yZi3ڙs:2!c c)}`zhԬM:/gδS+ ֙C2g4I+Z<ڗm;wK%W%pe^ܺ}''@>@*Gm;}22CEMOgve+c+K>jNJPI}kd+z=z֫_@4 "c1diLؤ_WTG%RTB%Y/\l.Xu]a2ɇK{y6mt?ɘ_e[~ɲ6qtw%]?z)¥: iw7oeD1*J%[4,_$[ / +ES$Imn۱˝6rUkt£hyI2UV^T +^Q6q ܽ7,2m d #}E]3O4tpBӶcMWG?JƴvLryW>˘Ƣh֩^"NLI:u[)2sԮSWWh_@zM/3%PjKIF|z}QƤzQclET/SY%qɘ#YUd cJ$cZ%yXO9/h(Ĭ^(%*}_Z:w>W$Z%/:/1F~~ JRQB)3oؑc%C?.uҴMM{I"D*&aT?q6I"1 DCh22F{VZbrJKKO1k, ^d 1dmEJĊv=22F{%DҔ c!cW@Ch@Ɛd d =d2 c!c c222Vd C1@Ɛ1@1 @Chݻw2fM6D,[ky'22F$kej;q*޼ySSlhJ'22)%{CPDϪ<:Vu cGh/)%U}ҽYYYX6|5jʒ?jPe 1d ku7[.e,:vEP蕝?c@+2F{A!+?2X%شst XXZןUAy R2C0xE5jn۸SFoSϲ=XVlm:|Zl_TmM[U{7[~V+u/uX.=,1)ŝ?zGQUQݳhRd ʡUVş@hm:HOe"2V<%cJB;澱&-ځCG|S۷yNN<ʩ/8YJne޽'QS;0ɔ.Y'Z^r>I?VVݻ_0"c\CƐb2)-fZO$_٪5t"f / kC2hW-t'N?yLn`224Ŋ+cW]XϾWVaS˘>ӯ7pmڲ-kuԏOz maƒe+%22F)c Jzv1n̄޻Q2&a*t%qȠiݚ~Y1d ?E c2ve?"Xع$w+WZYunN&g%SքiYiݙڸv֌k_ը֟>n&ңִCe`,m۶VIm;QQ׶&kg&^!e%1f< ƒc #Ʋ3^?b c+c cXbx cbLآc 1&ƌb @%$@blٯŘ@1$@bLoܹr ˤ{9s: 1&ds_yʌ32,X b cbL,WXG;yzǝ{zcb cb c@E11 1&1T;z1@1@%Q'V7ys5æ{K-oPv(vkaccϿG?,56U/>b,.`3b<v*bl<%)|O :c`aL@scb 1mX\>,a8L1\0O [GΘT;D̈Yc`0oXc ;6pR6*fUb c`a~W|XPUU11tݸ19^||Hl؉AcX.XgtI-&Kcadc c#{-raÆm(b*n+c,P`QcyVv. [, ؐ=c5#ʎ ^Ĝ#-YrE16dȐc ǭ#vbÆ~X[o&; GM}i' 8Lqx#sr*c,hQ$VNfeCeOuyZq}ظMA֔!}݅f@QK񺻻4T קX_1dNX]C+Pk~s1 Ζ"|bj|Pw7 /M`êblcc]oH;۵}pGc}^XMoQ s{cG*;bdG*vw lQlv*Ccg=;K?oG[[{*v/Ku9oY~_=q7?j>Shk_=QO6xbĵ @ז0{0[Ћ|қG?p7G:%u/3WJVO^Dl'_7!;d-+Rhc:!˯}2F-R'uJeΙ닱MZNƫ&f:Ris7 Kj+u:{YK|\!6uY,v0"@aӶCSj/27g؁͉p 턬7Pwz,Xnicd+mc&־w76׭L nrl}ic&l{d+5LV5Ms[sO&&&NttDX}ssM n0Kct(S0223V9;;DŽj'D)tLM!NfB6Q9``+156۝MNni&²a3!(;m1GQ6m;e?N6u0S2;`cbLK11'IENDB`kbackup-19.12.3/kbackup.spec000066400000000000000000000031231363501564300156100ustar00rootroot00000000000000Summary: kbackup is an application which lets you back up your data in a simple, user friendly way. Name: kbackup Version: 1.0.1 Release: 1 License: GPL Group: Applications/Archiving Source: http://members.aon.at/m.koller/kbackup-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-buildroot %description KBackup is a program that lets you back up any directories or files, whereby it uses an easy to use directory tree to select the things to back up. The program was designed to be very simple in its use so that it can be used by non-computer experts. It can do full- and incremental backups. The storage format is the well known TAR format, whereby the data is still stored in compressed format (bzip2 or gzip). Included Languages: - User interface: English, German, French, Italian, Russian, Slovak, Portuguese, Spanish, Swedish - Handbook: English, German, French %prep %setup mkdir kbackup-build cd kbackup-build && cmake -DCMAKE_INSTALL_PREFIX=`kf5-config --prefix` .. %build cd kbackup-build && make %install cd kbackup-build && make install %clean if [ "${RPM_BUILD_ROOT}" != "/" -a ! -z "${RPM_BUILD_ROOT}" ] then rm -Rf ${RPM_BUILD_ROOT} fi %files %defattr(-,root,root) /usr/bin/kbackup /usr/share/mime/packages/kbackup.xml /usr/share/applications/kde4/kbackup.desktop /usr/share/icons/hicolor/16x16/mimetypes/text-x-kbp.png /usr/share/icons/hicolor/32x32/mimetypes/text-x-kbp.png /usr/share/icons/hicolor/16x16/apps/kbackup.png /usr/share/icons/hicolor/32x32/apps/kbackup.png /usr/share/kde4/apps/kbackup/ %doc /usr/share/doc/kde/HTML/*/kbackup/ /usr/share/locale/*/LC_MESSAGES/kbackup.mo kbackup-19.12.3/po/000077500000000000000000000000001363501564300137335ustar00rootroot00000000000000kbackup-19.12.3/po/ca/000077500000000000000000000000001363501564300143165ustar00rootroot00000000000000kbackup-19.12.3/po/ca/docs/000077500000000000000000000000001363501564300152465ustar00rootroot00000000000000kbackup-19.12.3/po/ca/docs/kbackup/000077500000000000000000000000001363501564300166665ustar00rootroot00000000000000kbackup-19.12.3/po/ca/docs/kbackup/index.docbook000066400000000000000000000524511363501564300213460ustar00rootroot00000000000000 KBackup" > ]> El manual del &kbackup; Martin Koller kollix@aon.at &traductor.Antoni.Bella; 2006 - 2017 Martin Koller &FDLNotice; 5 de gener de 2018 Aplicacions 18.04 El &kbackup; és una aplicació que permet fer una còpia de seguretat de les vostres dades d'una manera senzilla i fàcil d'emprar. KDE sistema KBackup còpia de seguretat emmagatzematge arxiu ZIP gzip bzip2 xz Introducció El &kbackup; és un programa que permet fer una còpia de seguretat de qualsevol carpeta o fitxer, per la qual cosa utilitza un arbre de carpetes fàcil d'emprar per a seleccionar els elements per fer la còpia de seguretat. Permet desar la configuració en els anomenats fitxers de perfil, on un perfil és un senzill fitxer de text que conté les definicions per a les carpetes i fitxers que s'inclouran o s'exclouran del procés de còpia de seguretat. A més, permet definir on es desarà la còpia de seguretat. La destinació pot ser una carpeta local (&pex;, un dispositiu muntat localment com un dispositiu ZIP, memòria USB, &etc;), però també pot ser qualsevol &URL; remot (&pex;, smb://remot/algun_camí) per a fer la còpia de seguretat de les vostres dades a algun servidor central, &etc; El programa també pot executar una còpia de seguretat automàtica sense utilitzar una interfície gràfica d'usuari. Simplement cal crear un perfil i utilitzar aquests ajustaments per dir-li al &kbackup; què s'ha de fer quan s'executa en el mode no interactiu, &pex;, iniciant-lo des d'un treball del «cron». El programa ha estat dissenyat per a ser molt senzill en el seu ús, de manera que el puguin utilitzar experts no informàtics. El format de l'emmagatzematge és el conegut format TAR, on les dades encara es poden emmagatzemar en un format comprimit (xz, bzip2 o gzip). La implementació actual només inclou el pas de la còpia de seguretat. Per a restaurar les dades de nou al vostre sistema, actualment haureu d'utilitzar, &pex;, el &dolphin; per obrir els fitxers de còpia de seguretat TAR i arrossegar/deixar anar els fitxers al vostre sistema de fitxers. Això també és un avantatge de l'ús del format de fitxer TAR tan conegut i ben admès. Si els fitxers estan comprimits, podeu descomprimir recursivament tots els fitxers des de la carpeta actual cap avall amb la següent ordre: find . -name \*bz2 -print0 | xargs -0 bunzip2 De manera alternativa, podeu utilitzar l'&ark; per extreure una còpia de seguretat completa o només uns quants fitxers des d'una còpia de seguretat. Ús del &kbackup; Tot el que heu de fer, és seleccionar quines carpetes voleu emmagatzemar. Això es fa seleccionant totes les carpetes a la vista en arbre del costat esquerre de la finestra principal. Si seleccioneu una carpeta, el &kbackup; emmagatzemarà automàticament tots els fitxers i subcarpetes que hi ha a sota seu. Si voleu excloure parts d'una carpeta seleccionada, simplement desmarqueu els fitxers/carpetes dins de la carpeta seleccionada. En general, això significa: Una carpeta seleccionada ho emmagatzemarà tot i per sota seu, excepte les parts desseleccionades. Això també significa que, cada vegada que torneu a utilitzar un perfil (vegeu més endavant) i s'afegeixin fitxers nous a una carpeta ja seleccionada per a la còpia de seguretat, també s'emmagatzemaran tots els fitxers nous. Aquesta és una captura de pantalla del &kbackup; Captura de pantalla de la finestra principal Usar els perfils Per a mantenir una selecció per al seu ús posterior, simplement deseu-la en un perfil del &kbackup;. Utilitzeu el menú Fitxer i seleccioneu Desa un perfil. Per tornar a carregar una selecció al &kbackup;, utilitzeu l'element de menú Fitxer Carrega un perfil.... El &kbackup; desa en un perfil les seleccions per a totes les carpetes/fitxers inclosos, carpetes/fitxers exclosos, la carpeta de destinació/&URL;, el prefix definit de l'arxiu, la mida màxima definida per a la porció del fitxer, &etc; Si voleu facilitar l'ús de la còpia de seguretat per a cada dia amb el mateix conjunt de fitxers, simplement emmagatzemeu els vostres ajustaments en un perfil del &kbackup; (un fitxer .kbp) i passeu aquest fitxer a la línia d'ordres. &pex;: kbackup mevesDades.kbp Consell: també podeu crear una drecera a l'escriptori per a un fitxer .kbp, atès que el tipus de fitxer està registrat per iniciar el &kbackup; fent doble clic, no caldrà fer res més. Porcions de l'arxiu Com un suport normalment té una capacitat limitada (&pex;, 100 MB al disc ZIP), el &kbackup; crearà diverses porcions de l'arxiu. Cada porció de l'arxiu obtindrà el seu propi nom, el qual es veurà així: backup_2006.08.26-13.04.44_1.tar El nom conté la data i l'hora de creació (la qual serà la mateixa per a totes les porcions d'una còpia de seguretat) i un número seqüencial per a la porció final (_1 en aquest exemple). Al menú Fitxer Ajustaments del perfil..., podreu definir un prefix d'arxiu diferent del valor predeterminat backup. Al diàleg Ajustaments del perfil, també podreu definir una mida màxima per a la porció de l'arxiu, la qual limita la mida de la porció, fins i tot si hi ha més espai al dispositiu de destinació. Això ajuda a crear porcions de l'arxiu que després es poden gravar en un &CD;/&DVD;, &etc; Si limiteu explícitament la mida d'una porció de l'arxiu, la mida disponible estarà marcada amb (*) a la finestra principal. Però, fins i tot si definiu que una porció sigui Sense límit, hi ha altres restriccions que limiten la mida d'una porció: limitada per la carpeta de destinació (quan s'emmagatzema directament en una carpeta local) limitada per la carpeta /tmp quan creem un fitxer tmp per a pujar-lo més endavant a un &URL; remot; Als Ajustaments del perfil, també podeu definir un nombre màxim de còpies de seguretat completes a mantenir a la carpeta de destinació i, per tant, suprimir automàticament totes les còpies de seguretat anteriors. &pex;, si l'heu establert a 3, el &kbackup; mantindrà les últimes 3 còpies de seguretat i suprimirà totes les anteriors. Còpia de seguretat incremental Amb una còpia de seguretat incremental, no es desaran tots els fitxers cada vegada que s'executi la còpia de seguretat, només es desaran els fitxers que hagin canviat des de l'última còpia de seguretat. Això té el gran avantatge que la còpia de seguretat incremental generalment inclourà molts menys fitxers que una còpia de seguretat completa i, per tant, es finalitzarà en un temps molt més breu. Això funciona de la següent manera: al perfil, definiu un interval (en dies) per a la còpia de seguretat completa. &pex;, quan definiu 5 dies, llavors el &kbackup; farà una còpia de seguretat completa de tots els fitxers cada 5 dies. Sempre que inicieu el &kbackup; abans que caduqui l'interval amb aquest perfil -independentment de la freqüència amb què feu una còpia de seguretat- només es desaran els fitxers que hagin canviat des de l'última còpia de seguretat. El &kbackup; emmagatzema el segell de temps de l'última còpia de seguretat al perfil i, per tant, sap què haurà de fer quan s'executi la pròxima vegada. Els fitxers de porció de l'arxiu creats durant una còpia de seguretat incremental contenen el text _inc, &pex;: backup_2010.06.14-18.50.26_1_inc.tar Els fitxers de porció d'una còpia de seguretat completa no inclouran _inc al nom, &pex;: backup_2010.06.13-20.58.14_1.tar Quan es volen recuperar els fitxers des d'una còpia de seguretat incremental, és important cercar la versió més recent del fitxer que es restaurarà entre tots els fitxers _inc i, finalment, també l'últim full del fitxer de porció de la còpia de seguretat completa. Això també és exactament el desavantatge de la còpia de seguretat incremental (però sense avantatge no hi ha desavantatge ;-) ). Si voleu fer una còpia de seguretat completa abans del temps de cicle incremental definit en un perfil, podeu fer-ho marcant l'opció Força una còpia de seguretat completa a la interfície d'usuari. Quan el &kbackup; és iniciat a través de la línia d'ordres, això es pot aconseguir utilitzant l'opció . Una còpia de seguretat completa forçada reiniciarà el cicle de la còpia de seguretat, &ead;, el &kbackup; comptarà els dies fins a la propera còpia de seguretat completa des del moment de la darrera còpia de seguretat completa. Comprimir l'arxiu El &kbackup; comprimirà els fitxers emmagatzemats si ho activeu als ajustaments del perfil. Depenent de la disponibilitat al vostre sistema quan trieu compressió amb xz, bzip2 o gzip. El &kbackup; comprimirà cada fitxer i emmagatzemarà tots els fitxers afegint-hi una extensió de fitxer (.xz, .bzip2 o .gz) en l'arxiu .tar que no està comprimit. Quan hàgiu seleccionat crear la còpia de seguretat en algun sistema de fitxers local (&pex;, el vostre disc extra, unitat ZIP, &etc;) -el qual significa que no heu introduït cap &URL; remot de destinació- el &kbackup; podrà dividir tota la còpia de seguretat en diverses porcions de l'arxiu a causa de les limitacions en la capacitat del suport. &pex;: backup_2006.08.26-13.04.44_1.tar backup_2006.08.26-13.04.44_2.tar Automatitzar la còpia de seguretat Si voleu automatitzar el procés de la còpia de seguretat, el &kbackup; ofereix diferents opcions de línia d'ordres per ajudar-vos: Quan executeu el &kbackup; amb aquesta opció i indiqueu un perfil .kbp, aquest s'iniciarà carregant el perfil indicat, executarà la còpia de seguretat i finalitzarà en acabar. Tot això es fa amb una interfície d'usuari visible del &kbackup;. Quan executeu el &kbackup; amb aquesta opció i indiqueu un perfil .kbp, aquest executarà el mateix procés que amb l'opció , però sense mostrar cap interfície gràfica d'usuari. Per tant, el sufix bg significa en segon pla; tot es fa en segon pla, de manera que aquesta és l'opció adequada per a fer-ho quan realitzeu les vostres còpies de seguretat, &pex;, les iniciades per un treball del «cron». Quan s'utilitza l'opció la sortida del &kbackup; -mostrarà el progrés de la còpia de seguretat- s'escriurà a la sortida d'error estàndard. Per omissió, la sortida inclou només uns quants missatges importants i un resum al final. Si passeu l'opció , també veureu cada nom de fitxer del qual s'està realitzant la còpia de seguretat. Referència d'ordres La finestra principal del &kbackup; El menú Fitxer Fitxer Obre recent Mostra un submenú amb els perfils utilitzats recentment per a una fàcil selecció. Fitxer Perfil nou Esborra la selecció i el camp d'entrada de la destinació, per a poder definir un perfil nou. Fitxer Carrega un perfil... Carrega un perfil. Fitxer Desa el perfil Desa tots els ajustaments en el perfil carregat actualment. Fitxer Desa el perfil com a... Desa tots els ajustaments dins d'un perfil amb un nom nou. Fitxer Ajustaments del perfil... Als ajustaments, podeu definir si els fitxers de porció de l'arxiu començaran amb el nom predeterminat backup o amb un nom alternatiu. També podeu limitar la mida de la porció de l'arxiu. Vegeu el capítol Porcions de l'arxiu. Aquests ajustaments també s'emmagatzemaran dins del perfil. &Ctrl;Q Fitxer Surt Surt del &kbackup;. El menú Arranjament Arranjament Acobla a la safata del sistema Quan s'activa aquesta opció, es mostrarà una icona a la safata del sistema, la qual reflectirà l'estat actual d'una operació de còpia de seguretat. Mostrarà una animació quan s'estigui realitzant una còpia de seguretat, en cas contrari veureu una icona estàtica. Si seleccioneu aquesta opció, el tancament de la finestra principal no finalitzarà el &kbackup;. L'aplicació s'haurà de tancar explícitament seleccionant l'acció Surt. A través del menú contextual de la icona del &kbackup; a la safata del sistema podreu iniciar i cancel·lar una operació de còpia de seguretat, el qual és el mateix que podeu fer des de la finestra principal. El consell en aquesta icona també proporciona informació sobre el progrés (el nombre de fitxers desats, la mida de la còpia de seguretat i l'últim fitxer desat). Arranjament Habilita tots els missatges Activant aquesta entrada, esborrareu totes les etiquetes No ho tornis a preguntar emmagatzemades internament pels diàlegs mostrats al &kbackup;. Arranjament Mostra els fitxers ocults Habilita o inhabilita la visualització dels fitxers ocults (precedits per un caràcter de punt) a la vista en arbre. Utilitzeu aquesta opció si voleu excloure alguns fitxers ocults de la còpia de seguretat. Si els voleu excloure tots, utilitzeu un filtre de nom de fitxer als ajustaments del perfil. El menú Ajuda El &kbackup; té la configuració comuna al &kde; i els elements del menú Ajuda, per obtenir més informació llegiu la secció sobre El menú Ajuda dels fonaments del &kde;. Guia del &kbackup; per a desenvolupadors El &kbackup; es pot estendre utilitzant un script de l'intèrpret d'ordres (o qualsevol altre executable) que s'iniciarà en tres punts diferents durant el procés de còpia de seguretat. La idea que hi ha al darrere és permetre muntar, desmuntar, expulsar els suports a la manera específica del sistema o realitzar altres coses amb els fitxers d'arxiu produïts. L'script a executar s'haurà d'indicar amb l'opció de la línia d'ordres. Aquest és un script d'exemple: sliceScript.sh #!/bin/sh mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) if [ "$mountPoint" != "" ] then mount /media/zip rm -f /media/zip/backup_2*.tar* fi ;; "slice_closed" ) ;; "slice_finished" ) if [ "$mountPoint" != "" ] then umount /media/zip eject /media/zip fi ;; esac L'script sempre s'invocarà amb quatre arguments de la línia d'ordres: mode d'invocació nom del fitxer d'arxiu (porció) directori de destinació/&URL; punt de muntatge del directori de destinació si aquest és un directori local, d'altra manera una cadena buida Hi ha tres possibles modes d'invocació: slice_init cridat abans que es creï una nova porció de l'arxiu al disc slice_closed cridat després de crear una porció de l'arxiu, però abans que es posi al directori de destinació Això es pot utilitzar si voleu copiar la porció de l'arxiu a algun lloc addicional, &pex;, l'arxiu s'enviarà al servidor principal (a través d'un &URL;), però també voleu mantenir l'última còpia de seguretat al disc local. slice_finished cridat després que una porció de l'arxiu s'hagi transferit correctament al directori de destinació Crèdits i llicència &kbackup; Copyright del programa © 2006 - 2009 Martin Koller kollix@aon.at Copyright de la documentació © 2006 - 2009 Martin Koller Traductor de la documentació: &credits.Antoni.Bella; &underFDL; &underGPL; &documentation.index; kbackup-19.12.3/po/ca/docs/kbackup/mainwindow.png000066400000000000000000004526541363501564300215700ustar00rootroot00000000000000PNG  IHDRkp{9 pHYsȥ IDATxw|EN*%wt,x+**N"" b)* =n=?6dS7!!o_+癙gfdB!B!B!B!B!B!BѪ9B!B!݄_Tn<B!B!h(05r'آmB!B!B(UlQ}˞+mB!dc 6K{/nVWl_-^#`"Hc/ۮF[G6G>yO/&B!B!EKQd捫^:#P"`LZS~M-׼}d5B!B!tO\OEF#~jYS>)4$B!Bq dֲ_8MR*E> !B!B4N S^ZFT T˓ZQVgß 4}ӻO?¢?}Nq7px^Ǥ30pH^B!B!.,rrz֨*=_ rb?^463SN%''6m&?^OA~O֨İgnl*-m BԠ QjCa B!B!h; ",޴!A <'/81PLEƆz׬Jw t:gΜ!M(VÇ?Y|%IHKK%Cr=RG~UO;iIl9#B ׍6!A|邖B!ZP}ţËoCV#l4euCUíiP@EQ0fW$;+cǎ0be}qQ^z}gyI){??:NM2kLtK6B!Dxu߼͹;o%"<7?__fsb!'7 ǚMPƹ~ $BJ[otj&lҧg?tn]]ȫoF/J ָCPb8DJr CEł/8XHIN ; ;vE!1erӫ-V&si0u$^9+eBZ\?J:tYSZjױ?$///M%'7}lB =6*n]s摙3ԿK]{yчۺvg?֨F֔ & шFQ8{6}qiI t `[mvm'e֯|dR3ܪFfs,|WjT!B4P*¸Q#6x/gޟ N&716%5C/mT{`Փd`B8}ſ]{ۉ]Ctv&~_+t̲8W]1G 7Ag^ /YsYp"MEQؿ/ZX,{B!ąklg:m=Qjp9o@<=̜qԭз3﹃f`;jڄAG)>V~CޅNWK`o-G!'Kg ?א鲯gBQ@b4tW$8mٱ|͆M~u!)9Q '7Tg8n:f?lctݡTڟ˺M[c?ګ)B!Ex≯}Q-pRxoH%8(f1PS^;qƨgTݙEqGs,N1ٲwz4 S&e`>x{y(Vju( DZ㵃wqvN$U;v]k '7eZz~~x=06n=!b{f{'? ۇfnkʩKsrNӠi6N ]$YmX,s**bc;֭Q,ujBV_vfByx70͎eod8nyF7rõWѯwOh.Y9T*}JAQê;j$ko"=#S:3_Cպ)r+B!_Ǟ}w:?]PDY}ѭr*s9x;^m{5=xP4gZ4(xt:ZfXL{w!)5?ٳg?ÇfD͑^0njBP4(x{8lÏB0vsOsM1oe{kRSw–;,)˓̀}j}{_///1^yՊCYmᠪXSa,5U;B!*޷ٟ>a9j Ξuݏ>l8zD`Mń˃35-:\UArX/`-EXnf5Rk)'O?Tjh͎bb`6Yl`YGnD˃Gs{~>3~+{fv!B4qa4xy̿8x$m;w;/j0͎iP]b9l(~EQϧg8l،7tyzF&OǍ[鉯4Egګ8{ܼ|.>o\'_{uY˯EiT\6m ZQ4)Ba'hq#S=rKޚ2~۫KumP43w7jEbfa20L`[Ql5nV3Ul5RT(v>uh4;V>d ߽w?$P#B.e)i|bN&rn`Z/ǟ5w?{7^3|b:z o}17_w-WhbT'Og߁?Op70YFvQ9;wEF;vo+VB!iNu@V ƔԿx!nrt48kk Ȩu#i$7@nDLt F^{d"#Xeٸi#fMĔzh4B!DisZ*B!hFSx{{5(_s/AfV[W,Z ( (,m*B?p-J %Kl$O`E5Aq,fŦ`XtBuYB![ǷY2I!eff1<؃nlJJ dff5ki͚t:&3B"Cb, ׬B!hV峳D!'$_徻n[.u=pt{D͹'XӸBO)bںRg2|p0[$&%@HX(6"_` !)e!!#3^}=1d w%88'`]|unFNlB!B!5XMm߾c'}9ws<̳̼bbbx7#ڵk {/eWs.oV EQX+Si)Ç % ko`яKHNIӃIs=w5KB!B\ZtJW >ӓ^~5,1}9yEQزu{㉿?8̛<(_-Կ`08˞=g.jwgΔɓ ta^e(<1rpgݺa=y7xӣ{7z5 ڷoǻRޜq O?/Ï?{Ny?-޽{xWXr3]j\udڵ" +&N 1KY~}Rܩz豄NymF1yDj5q]Щc Ç[\*ISRRBfV&^GFF0kj3겑ֱ9snbLb"NXh(Ӯ=߯/ߟ=-+IU\!B!KN:fTv^G>tntZ-XVZGu]w嗍tI[i=^kQoӹMQyκtj۞yFEρxOiH+z=4Me<=7uR@Fں}o./YJB!B!D}5X.Znsٖys0/[ЁfTȺ yW1rb-,Z3ѠF# OX65-k5Et;5Me[zzQQ$&RSЕl8Hݜ#E!##SF!B!h]`\Td6o"|].t8Æ?Ʒ/Dnz~s5? N%x/-.>ou^f->>>\ud:D;6ΆTlٺ?pZ5uy嚢k:M1&s'Ξe_\Lb"K-gml?p?"<$Sg'R|'B!B\ZEw~nVYeI:uf@\.\}^mV+OeWr׌bh9WUSpN*ĉYbe|_`-LgsFc4uy@}sn"yч9\˯V +ywػo?U1j ߏ}3LJ]B!BqqSyLah,Ȕk1ܩ|QƏôMm!B!H\ ŀ0RUMCQ絮EEQB!B:baq238V%<,Ӫb4HO mƅB!B&ރwKWUyl߱KAZ:B!B! YF!B!Ț5B!B!8 !B!B"B!B!hE$X#B!BъHF!B!`B!B!D+"!B!BVD V{sG!_Z{h ~+B!+mߎ樏BVק:q"#GҧW&+S!BAAjBN(v)B!DUfB!B!D+"!B!BVD5B!B!kB!B!Z !B!B"B!B!hE$X#B!BъHF!B!ѶtB0=dj! C;Qk.jf?B ZG͡Ƀ56׮㳹i߮˾oΣ?Ȱ!B!b%о]mڄtUB撒FJE``Psr('Md $?wq+~~ О=7GSB!^!hz}7fY38[\\c3g19<ٴy ~_pw?r xyWsB!Z3BZC-YFXm6Ə5kt|#,]m{DEE3˯1[t\~H0ix> 6ƏkoBѪ)--BQ]G>!D#f,g\֘'{5sH|$)v-kf3Yms<\ &B!B!DKi{Or;xl.Z-նi4&B!B!Dk7 zUxzzx/˦6tԉ'\K8NsM#B!^|CG-= IDATك5*>_tɓ& C3wӮ4B!De-)Br=?sCh4UEGw`ڵװҝBBBxW,Z^^ތ;q>$B !h|;w-!T5.{D>S\5ۧBVקI۴ekSn>B!DclݶDFF֚&9%yG[!ą#??N[w}ҀbRX{miPB!D'B$hZeB!ZsVubrBu`B3/e.xbK'UB4ՊbӭNw6 !`ÍWj3aY) ֨^U!/V{Pb00p@L_XXȆ f%`#EB5B!.HNh-e޽׸/11G4s[-[m9*%B(v0YK]6cƢa8:wȼ9oذi3tWNu  bs]&9OLw7PM^|u>=p{1_7@pp#;rc¯?n >MT;Pk `׮]lVBCðYijeM >6T Ԝ9swlӧwoT*u燧g֭(g v͍s5*XBqoX/%,v ݂nŢ83]̘~v;5QB(ZtLz.>_Ͽ~?Ⱥۋ~}pwLo6|4p?qH< v“?;w<3nޙ/1VGē';uo{F``՚߰tK ę˹ix5kYlIIvB6d͸˙&''vs|߯wv3ڶu)o X5|u6O`@#/;nǧ︶>fcn23mŴ0v(GеKq[ wXn=92?q+Qo],^ IIL׮\5e2uI?e$'h-7P-uaO$ŠAqt[?:^muz^yr}#~[O>zey/tɏl۾ "%%c/KcZj#wiaQϽ;Ovg΢{nQ7w>1x`mۆj%(8Jpp0J)o5#)9Fh4:摞h@V;llݺ=zdB1&gyYYYSZZ^'63AAA(BRR99BPP:ur6(g(W\\̩d( t[TTDRFmT۷w5;4JKMxxxҾC{œeVzS0JSNy&BCCIrr2YYmvBBj++3͜8yBEۛ.,RSӰX,йsg>Ɖ'/@QdLJew%9Se6nD>}')) Z^'9%ooz]gvލdtؑvmُiMiɡc`~-v|w5G=R斴&=BĴt*i_q{n͂n) X(V{@e3Y*G~PT *ʶ5M&>$\E&ϿpX}RopcMڛt:22HMKs >e+8v8}zf0Μ)dyO3oGΑ< QXXgҿ__&M{/&;;'{e|\+mBBh4@C3MjZS1|;t /?7m|evq)bߟǛo@vϿ.H| cZCc\>R&KNN.֬e]|[u^Doܴ^zq hZ2عk O?c%ӛdbͺ3OQtp)mv8?dSEF7~nq]yvmPDwhϭ7ȧͧgL46>8sN 'M@9fM@?[2^0JߟCyf جV||ZmjܑK]5UtZbbh0paEݻIVv6ǎ%0x%hZ HLLSNc2Oh4N\Rq}_YNNuח|NmH':Zb(Baa!ζ:Lnqx{{šC4K*{ݻT}t /ʺ ܞ~ro~?kmǪ_-YڦwBg>tskУ볘?o*9sY;paxxzYrr?n Ǎq)wI|tX`bҷOoɬwޫK8|${§ͧmT$Ǐv wΩǏc}?e#G$m  gl޼ n)**lpbbZstRb0|m۶stDDx8'O`0Ozz:DD8FN7E!##^z9DGg^VkEAA 8p@@<ٳդ!y333SAXcT'%U(k}v$77^Ggݲwj"LnG NJ"l@zz:mF9סC328s AAAdgЭ[sݹX jӺ-|kh5R_JF!ąId)VZ[0Z *JdI&גUPT8(P=`s.}> .Vg[QRR7^_q EMj t)UUTv&1EE5ccʝ)/ ;'ѧw/@ 8v7f+X׷Uu~fMkj ڄWwgdrIz4q<_}Y.WH:urKpسgoEQvɘѣ\Q~scF_^=wgӖ$&KlglFur.5 wMUkY;zT@ {Tv.Tdž*λCUԔOr$]bR=(77,ew*--%002j56P0W;dfsFLJVPK+=[LZZEQZѶ5ָ`4χ9[iW]u~3pMii)4b;pH<;w"22g0`0PtݺlV& S b/+QFK*Rh4j z`B ,|YDCG M9UDfI#R sʓC*T*{#Yʷ+k۵ Rs:<@<2s!8} Źf{Tr:/,egd`04Vk喷{Zӕڥ4ݺűU$? 'k6Z6!!x{{ZYVV6?.KiisJTddm;u*Q︮5)lF o^koOo~;vgtJj #|ZSNCb)wގPƚ* 6Z7V(rwUSK,*,d㦍GDQ-f:=~~Y1hVFPb 08?~ݻ9G&dg xW vnW@q8µSu٧ոwild22 3g k_p45,X\C3Y~X`=ÈaC]Y-V/H^xx=ZC}P1V!·:dBOOgo u\2|X¿+~cF]ΪkY7eFr``Æfl۾etEb)֬[OTd$}zV+8~3H( _~_vY;z)itgj[vm}9x{Uo5ʮ4ǟ|Nn^y*/?HFJB_iӤX|ͷ\rjy223X2۲\}L/Z\Z.mػo?ioι=qiHRkUsSDyOR*&@(tѣGzjZs*^lz\1yrUOOvRBQs.:t˶(T݁誁cGӫUy|_vmiW%y1_AzG6!:ZuB71M庩ժ:&1ҟ'ye:Cvն kCXXMVCnu/((({v_?~wQ<  8eO}X=ORל 0(  bb|_/WѣbYO?ĐQ9j~r.yY]~m׳~lHAl`Η½#h?3(@ctMsLWܚi/?x?o=#gc IDATLJܼ<_/DW\W:քcYx 1l ٰi3z$'7lZÇق|ȱ?pѣ.c PC{+4pǍUk| 1Llsd}e.9ۓǚuQTϏzaCЦMv!1zqc\gǍeæͼ+L0Ʈ={1ճك3>S~Q$4,vM^=9tKMv*{cLq?C.NG~A>b̨]n]ջHff6}"44Si)۶m'77f@ 9pNG @PPwv /X?AGt~WN /quߏI"#̪PGCEѿ__/D\cs:twaQoǿG/(j]cػF5رc[ޢVAE~vfgvv;ݙʦ-[`-nQN-; |U :^ccu G11,xB$'GsG,qp̞3ݻ 6B زu;{~ߖumڸټu{Ғ ,ȧkB@/ahh?b88ӢYS~ޙP] c[GP()Y3I `-S?C( pr*DfMiXp6n3$V Pz5u\;M#rY9ʳgϰcv5 E_I*=[uoXXSjptBrqk֭@ҪV3OI2}d~ߵGA*vT(_uj͚ݜ<}H h"|7q||.].9ncX["Hû&SVmju@^l:D¿sAY[аaCS"<X;bc"4 ߗKXxD(/_B5n:;9]ϓA)'B6o ь.IBW5qb`Çp_OyFܡf̝(ʼ:=qRAS|.FQ+wZŵ@a,p* [M[{e|[dϺ~5+/骈\x(Kړ޹{/YILL䯿"&:OԼ.,,#aiYuT*ϜB=yG2BeK+ŋ;=v6 x Psũɚ\)&u{n^&#*+fMBa`@S042bb?Fbzt3  xx JE*uh,=3敤v-AyY1{|= 1e4K>$&J4/ף-~<BBNt5Ϗ+fj! `fdV&4+3j*'2 ZaDDDPxx駟bѬy %P Rf *D/&#\l"{ I9{v[nڼ5e|b"WϞqe {`fn'uHJ%~'sʹ"iߜ)[X2䛟061%"Er?ߜ)t4 )'s|}[1hXqdVVΙd_"!NC$`1*BC}55>+%'Dq?Jz$:h[ޜ,T>iF:|ԑ@NVV2ýؼyRlvV7]6A?B?W9m& ǰ)hOϒ,D]ٳq6X슃CUŃܹy{L]+%܊ X74ԝ 5޾Fjꈭ}Ҭ tā\8qMZ/!遌5eik4K]N]Z ,\CXX8|PrqsuuBgSțd5(›HiImΚ֕ \;wޣT9$_vϥhq"ˆ9oqhfB=@R[ B=Ρ6P&~7 Vk!Cuwo|Bɭ(B3/!D+j:?y6jh߶5]titL/!$X˽ ̜ 1#s<5Y%nkg)[j'kR|v+2ikٷu\7FEQzm?^['& )J"B^!Rۻ}{j7}Zzj@$Bk7\ZL2S&@ @6e( ٱvym&{ Xajfû(iкvAڴ. ȈT˵泾^t3|xX̜3jOBR#$迅TJ%I6,KW!Dn!IB%hߏ cUxʝ[9j5i3*kN<ȍ gyK}XEYxAw~xsS`UFP gV%RÓ 'JɁS ٵWx4m|P&&RfLn!B{i%/yWaP"q+Az~ @_ BPV=KZĹ;aro_a|1d HCߘٶʇFPAjT0EٟOۯ4܃]{q7C#cWjmAptu߸)JPB3S!D^!YBM9+ZS !E+~[[3p´tṼ񳗥N!B$`#Бkg38M55^$fTt];_[)B!|#BJ5Os|o{p^t1j&/B!r LBd6 #F -kI\l4񱱠cED# Z7c!|& !2kCC,l f,| !{J# !%t<ʹUeBVB!tffngptp!Ǟ>{9 000 e&T3!Ļ0ݿ !yR)Ν9]! afftv6GBchhiYA5B!$,˗2J!DQ(bmilllQ(%DwV`B<[[BBC5署u{LKTX!k#B!B]ZB!B!kB!B!r !B!B"B!B!E$X#B!BjP*Ռ8J|%,eaL!B!ț$XϽ#ND6*9΀[CC !B!0(N#T._MI()}՚uSHߪGlش%+B!BJU:?^sLL :??3k$յB!=y^ܹ#fYT3! ֈ`Oγ`OHwɌ@ 볐ܼ", cV2֯ǩ9_,_6+9_|7qs5J3g3~"?L2uqZVƦmy4h"٫i˶.}פqCì9ިj۟5?d4O^׎QA#ժTf,aU y/+G+]6UY74wMl3#+c)ƠIsvseP&|7z6oδQf / !ETt4CĘ{^\x ׂFFF|3a<Ի s334nHAY|%4 +ϙC/']:wM떸8;g ygx5}(۴o׆UR00ЯԪII,/#םk1J&y3`@fZpH(JKk377/ݧgdʖ-MBB=>([&-ߪ5|> Mٳ,^s.VWCP|WTHHH$&*_^Ccbb˗/ٰi Ū@~^ u'O`@=_T 9u,k*pkog?ى_v^:ذq3ObccMyx9-X[ӴI#ztB;SY滒'O)Sړݿ`?뷤fΞW^Μ?GvXvzs ~6J+y weq4kPڳToAx/@VӠI ػs{Er'kxVӧ~ߪSо NZi?s%,LN[Gpa7fNN]VSѠQnق x6 ߗڵjWRVu,]ɅDbEI?YZXPHTݷgBt M7ԙlܴ~}z0{!ܾ[ }{{F|5jU+ߪ5ܼJb=Bw}_j{._aڷH*Ҫes>q7nbffFfMKmŖqLi֤1N=ҪRd*9Jtt JdڛΜe4i؀M[G~_mD([&R~<|FC*2k<|Ȝy uB ؟K3eҷ(ӫ''N|YGz1ܿ@ۮUWޔ@5Ы932Y&?h4(d'͕4hB䜣G[SakcP5[ŤX<6odԈ5'O2~·[>LuEq8;;s̜=+Se>Vxsgaiiɺu۟z&g4""ĀS7?THG`1~FxLddvi?^kW <<)~œ?ē'OÏ|٭+'03ϩ>4 MJfMЯENÆodK5mLdd$% SGnhVeӬTPh`h^'N2v\ {owFGȰ8~?LҞܽsZ I֧]:FKK >([n_t@`,^Ngw>5‹>W3o" QAXxN92h>J/$ j֤ cF QȤظy+p=1m$ʗ;w2lh}+UƆ}{Q81oP^z-No'`o0oX[nx1wV-G0c\~9fZ̼@0}۵&͛177`u\q9307gbf̞OӦh~4)Kf2BBg/+g'v ^wJ(f׽guGWvjU*3}$O5.N}/11Jyݸycc\]puuȈnB"##Diz3b(^ǎm\MW͍͛bhh3]tf?o(U$V кU J%?N.>>п_oJ{4z-(k^ʔMRfu>ZG_bb" )S4ժV$aWCqtpTɒoۆ}s/ʗݺLZ5iբY::kѮmkJ{\cH;&"2^ܩ..( 7mR|ptt˗Rd<?{QԫBҢYS (YŋQfuʔ.BYͣO_HѺU bccMMsNm=FfN`ӖmjќF DFIO lشE7,, vڧ6oNhݲEI50Rn5mQNm*/BD >n{n X<|AYʔL̴T*پc'B=qsua=~{aff9O]}&cll5EI@~g~/掓S!#*:Kq0FxQpa>([Ajo޾ ýP'z혖{V^w+9q=jdM>VgNW!ǘѴqC-Y}X[Yצiۺ%7lfJڵiMh,睴0f8;q?U*kBd 2ie7{qttHhccS!ݻO?%\$ '...rlڲO"&& juՅ>In1nH89zz::uѾKTbҹ^#FSJe:krwo=Tɒn^݅1hG;&"2^qssP(055%&&ILu%?P(8s0\PbcY~W_'!!A-WJ׆YTۃi֤q=Kqq611>J 7mjYnf-JETT%m8X׮Gff&U>_Ϟ=ӧTX>}UW}dxzJ6Wvx $-SS^4PLx~e􈯘=w>]4nCCCBBϷwNWP}2~ݩuGcw@=+;g5 ֈ|k/ϘCAð07ghؠv>`1n،͛5fP4^CV)QDq*W0!Ď{+DeyS+111y>eV3g'QFZ Ԩ5ԬQ!'Kc#}{MعoJ\߲5h00H^s~]k{ _;%'"2oFH_I{b^]ϻq4:}JFISpsueެk[딝,--)^=~ͽ IDAT )y|M]qvdO('hϟ:ssT mVSk ET*Uh4AѠRI-Ԑ]߯ԮUʕ*a+{Ϝ? ~>GGdylm矛)&庣˹ s>w:Yyѧ$|K66Yd.<ښ?N}k2=}Dfff3cFF IUmAR/xxgGDhlGD E_aP/nߦ`A;S1|* ԣpa7HS! s.I_J%!Www/ʡGqSstp^TVcӧWOh rLՕ(愅'{`ғ1Z[kGC{ͩH ]z3FFFcg>}%vyN;s[y(m7j}mwTحp|$$&ҹSGm۽__ganAGqU>([Fh4<~5i33}5kTRz" xRKuNF߯&*nҨ]/1&&IOx؈+O>s1d躓J7u޳O_ɊqN9k;R3 B|{imn7z~{ˠ_qQ~vދR?ijTIf{FTt4׮]SӤ?([r8͛6ᶿ?۶ŋ0._w&iR\tP4 ;wSϤ{;gBp؟DDDn;8pxYkEjǸ [_ƴjٜWpEqDFF|3B^yp|*[N.;u`c]?:oط AsEqvvBTri"##9p0g/(AdT=bێ:g''ܹx9>WwMLLhצ}zOy/u2|1l(j5U*W&RvM?hҭ穖ٿoo~5.{`S*ʰ;!_9۵I" gLc АbE54ž N,BPңSN}ʤoY˄o'!!g''qbʟ,Uڲz:m pm Jlѝ /;+++ U,]3ێ5Wv 5KKK6F{G,EjǨVQZgG1ww*T(y}Jz1~=n4,co;(U҃o׈'ժ2fp~YGsq*T`:x~ \;zʗ_^^H˗Ԩ^qcFW\]]0-YODݙ1knSӢY]ΐFbbbL6Ա}u_n=Ϟ?GЯO/:}&x*̟aggoggKOk3~wGDP;jDeeu~_t_7l"..ggF{Qz~ FÂKƆ|600`o`{P!Gɹ~scu'"m[_i@,PҎÒ'k;344[[ !D.DE@``2r{_qKTMkׯXݬXORT(s7/S.$[kk_yE5B!{lپс[nENW-I[?rΝ;iV}(B4W++,5lPM&YTpa7#X䳌5cffUykB1qdqttcvo&-9)ݿBtt4:糰*Gs ajj&f{"͞7/°*@ƲBYEr2ٱO!UNY#B!DVȜ52B!B!D."Χ̥B!B!&s!*.rv%\"9\3!B! !/\k_\jB!y B)^=Q:B!ykBd/S5B!"o`B!B!D."sֈ\'VfĉH#Tz+a`Q-,Ld2S!B!ykD\;q"xW)vDu< zvB!B6Z0s7ݧe(B!BO$X#MNfZpp/_d ( h4m+R0_B 11^_!B!kD:{< 0~dOjfl[v$$&`jbuB!BwHFdW"ԻpsuĄGARlB!B!F&"jֵ3pp 6nٖUB!1lM΄>!D!OֈL5 f͝OXx8v4i %B9lmmP_v]]y/\BI*ѭg̤{L)#-iq0wdpv*uBkDx=HsLLhLOZtYIFFF ԟfanSG:!"wS&^COУGعCbS\;[RsY{ff4kߵJ, s/YMA!')߇އxZ`iiSz]B! fff8;;^Z5k0eO̜u10H`מ? GY$#JIc?nDhlmlh԰>{Ͼ>E3eo&Ma ~|=v..`A^|gǂK;j8!^c,hGUQ= X[ώ(bbbtgiiB!DnWPLi6ngQrҰ^=u_H…h4XXX`mm5臥Z4ch4 nnjש]nT}N&}55WHs.ҦU 7J ~ݰY5B ֈ\[[[lmms*B!YBt߸歿iʧkE IUԡsSw333ILLĄnMܿJMdTvVHH )n9J…Pk݃u?M@9E6ؾc'L-:x噘=_vc7_cll굿rU4j$&*S_!;/"B!DY˯.]ݝ{enn}3s:[F||<  |޹< nwqqȈ[WI)ݼu,^B\!B!"|P< 5vN뱣P(tڙ}yv=zݻغ7y!gDEEsulmm055Յ>Add$z Rɉd߁C>sVؘ6Zd/_aPGEddd}uܑ{Бڽ/v` !D"àB!>Obdd}A*WĨôCVX~#|07ҼyS ;sVk(U҃S6d 3g{ӡs7C_b כ2%5j|„qc4CV3x1w*V(b_?1#Y˯<~BN5ժf"Q/of| kȎKTX!UV3?S[J3'OQ\ w'B!B/\WlmA@4 @"{0(!B!B\D5B!B!kB!B!r !B!B"B!B!Edn*Ռ8J|%,eaL!B!zΈ4ǻJ,--uη3 aֳP6B!B!& ֈ\?BwMIo<'** [[tӏ47OW9m"0ǩ9]!B!@5"WzN鏶S&2QѬZɓXZZR'#Jhӡ3!l\œUThۑ/سc+ 9fI_ Mپy=E %Kϻpŋ{~=?bؐz*_LLLtJ !B!Dn&!2QdTĄ!S;=wGm:gv^C?~$]TѲySMePܽWw)O!B!r; ֈ|+aPiIW_VH6j5_3ldܽ& fdq1BBC)hܨAuXf;vfR ̝;wqsua@4jX?cyϚuiҸ!VV<qET*%Jg¸lܼ{`ͺԮY93r.?&|L{,͵e2`5`Ͼ>r>5~_KN޹jyB!B`ȷbԁGݳ{T\}rԪ /8wzL)V̝iSՅ0yOT^ ~oe)XЎϰiPS^o'G~ױ-\##C6_Z¥K8;;1雯 ǣDdÒ&N:=g&a\O@ @,G8vP; ã}Ua`>,]]?A !B!B5"KxIt+VdH"(Y#ݴ ͚{>mfUVVV)7kHsv=o>AA([vgΞc,7 Eؾc'-Cm[65kTgCzk004###7mNxMLƚbEu.ؘ￝qsua]jzY!B!" ֈLW0R@[@utٗHllٵg/{_~ȱjmp&NBM)G޻WhԼT7x`_FHN]خ-::ߌ?dܱ=͛5kI?(KN2}^CiPB!B`ȷ2{-fܹ{jU+x1wVG[ԗN3gt-Fz\vN۳u:kCIL>S_ K>#-ʖk9~$k~YϦXlIU^WժUa}bǮ=,O!!w}B!"`ȷ2{ajլM[hצfffUk7iբY|_D&(ZAV]&#Jtt4~?5~066xqw?} !200nԭSGk^ 쏁7`angӢYtI*) R%_9?|}2lh6GJQB!B$X#򭬘`x;}Ч/^xiӪ7ms.֯Mu..yڷiMDd$ c~^=‹=lýб}[~ݰ3fEΘs- e> "!aUvv)MAI)\'OɓPΎ RV r ^Sс/ҽMO5qqvSNmLLMHLHdy>?0u 6[y_^\!B! SLT͕5~)]KgGȱ?Ѥު@~Z>nsؐ$&*i3Fa[XX0u7lؼ;-a#z@^ظyklGwwHH(OI˶ 1Okע}ۤpwSSS֕ 8"}I^Ȅq)^* &E>l0|ѾsW޽Ǭ)Uʃ-Хs'lmYdi !B!B\#+ԮY#;ꖪ/ lyem'%|κ/qsK}2 *+}ou+<{`ͺԮY93XZMTT?Fy&th׆q; ;[BuXRI|BGD%gv8q4&T\1ET*M93155e^KxX8* qqv,_nRRM ,Y˾h̛e=Nԡ==weʴ 4~t*> G݆͘7',qp0..E*Sm[T`Rj|R1#ckkZf?xh\]۫%0 Zg_ʖ)OwB!*ՠ^m_n=k׭}%*WNGm'O2zD֮@>=[o{ٻ먨6:$ u;XUW][UB~vu t]0ttW\9ýϽÁ_`bjʬ9?iS&cl_GRtIm,fx֮Š}QE>j koK(TfQ!&>wrɨC 9/=wѩa ay6;ucL<eƌH122`m ԟszڹY;vT&LFHH( ҖwOϞBfa :h ѭ3 -6'n߽KV[["޽^7<<Qb*Esɲ̙1[[V!#صm6YX4L>_M`޻Npl,,pmlmlpsugLvtbB!Rv!]HF|!1)NxZ2+°J~ؾ-];uBJX\&Z'I… R ;?&k).G'խ=[w2~JŖۙ6ey?ӡS7ސ%y899=T7nښ=;|5QIˑÉP >\])\ gm&Oɓƾn9s䠡W6GG~nӚ |ɚPNGN:R(.]ΥWX냱,&&}z`}hܢ5'w.rp"g'm+q ٸy+:h_x'hݪ9vvhۺ[n#4m YU*7maiڟn]:cێX[YQL(Bsxdη4F5}HT*Yzjm5N~L7B$J;]SH|m#Gs^^| /tII8:8͓`"""x5"#:bSdq77of&4, Wp:{>?FjIuc~чc8qΛAAGD`jbCF\t=wc'N2yX?c``M̙CCC=~Lܹv+W徿?111>%**'xKWplh89~L) ͓'OU!!9Q;Oy E~$ևQ⁁OYSҰIK<ԤeqB&vHF|6o{{K/N!Mκk޻_;ZS7nޢV_reK댬Bɔ/_w_~iߖqcFbh`e+x MLxx8n̞ØQ\ܟ9p󉉉}6 ,5jf͘B~llg\q56ЪM&]+H!H;dYޒdkdL =_gw/g4nњ ٠ s/):wҕ4kՆ Ujh,ݾs7Hj҂8_R\lܲwC pU ,@I(  OÇtqq66֘`!d˖UK_?s=ZmiѼ6A{_ZfCԫS[ROI'%?yN׮_SݻӦuKF蔩T*j>$*:NNܸy(Zj#m]GG~zZ|f8ў755'@Hhܹ3yr"O\XXXq#ˬYzӢY/I?>}Ƶ7ؼuOJHHQT&44癏 ⠠ 7gΡAC2t;9:ry?Wɛ2AAYD`S]Uk޷+Uw]3ܽ~:c!SϢwȓ;T*#$$=pgnh`@^̚Ùy?JHHεsE]8e:Ϟ=b#.\$0)grtW]K |4ϟ>[5g<8v5o]9{^xɭ[wȞ(J#"BR2 *a2 *)]҃ݙ=ׇ)~O]t9N/9K%wjS|.:: F)XZZ蔿~Ĥc)^ܚhU H !2>'G-˲c"BBC111@~w!!XYZC*ݻ0yL7oMNhڤixr0tlۡmq `ԩU3κ,?j\QV|_QDFFch4Pz5ڷkZfC 2 nt3Of/[reKӣw?BC(^cGNWrΛ];1a4"޽br1 j:s^LxB!tL5T3 9cg:S|9Eο$X7wΜ\qSF!B!D*Ɍ$$k2̜y7oQbsU022JMM=vn|WOaiiA>wB!B7 dȔ 7mah4jܘ:i|mU/Yl/^.# J !2];w‡2 Sd&B|oh$k2\i%9<%W\9YxAe*lք͚ZB!B!$Y#K;jv{En,YE!B!5k'ETD3%o- u "[ !B!5k&EL bMXXo߾Mv;333,,P*iB!B K5 dbzzzXYYaeeޡ!Hcff<;lB!2ϟcfjd=#xAY</_bjbBHkI!"ܸy6IPBAd=ww7nߺý{<&SrΉQ_+5HF!ɦT*)?_z!Bk++s#222V(aiqҋ$kB!B)J; IVwB!B!@$Y#R݅K;!B!%!B!B D5B!B!$kB!B!2I!B!Bd B!B!@;!>R/!1)jE QdB!B!DړdHuſ}Bf̒昙%;!x·5zzB!BmdpnĤ8Qjk *Wsct1EB!B!R$kD8{KzJ5UwJV^߾}d SǴͻ/@%l_ĄISٲa "M!B!&jfwTK|mn{ܽwο:$Q#B!"AHKzۻ;hG|K/]_Oٲm}Pz/R" E {89:$kWމQ9/#NDEEQ@8ee:v<KOHF/0{K$9VTSk4 abb̬铹~&kmUL;*+jB&wwW\[眛K:EWPP07ȟO[oA\u.]Jh_K*(CMժCCC^|ɜy 8wMzbcck\Ez̋/N ! f\9sTlw(3NPۋЭ/?|D<035ţDq? ~QV\Yv#:LRܽw_{߸vmZ,[v]$˗}#Ga?5#fhO3昛۶c+U>N>ØQøy6=N5}2%>řK%|@Ny&z=0Y`Xoer7ș#Gzs*?EmYv}*Dj(QbE cjb ŊƣDKڊlYr/gXx\iGGtt4 fܙDFF1|>;N0בӋ!SliZj#_M%Nm=&I$j?,::'<|8m|W(e˔I=v|Q?B5;Ş}(Qr4̈S 5csJڍ(Jͭ[wȞ.Fӣt.U2CR`#DΞ;Oz)#֭Zxthտ;l۴KKK@f?r_+ZׯX33ħ`-/4x"CB|2g> X;@__sssh>"$$?ϜՅ;w=?v4/]a ?EQSv &NANS߸Ihh(eJDNx]{WW@&8~NO @~w@R%fώ-v/l޲|n:/*/=Fz{wQ=r'NBIre5|hĕIFIjӺ΄ӰoL`tw.1 =QH)Ɣ,Q}z};⿧P['ض}W\(@͓`"""xlٴKKKgm`I&jB* :܆N]{bggG> 2Gpe\155e~ҥJT*9*+˞}]zS? ͋/Gc|i:8""m;v1lTS,YxCFFRʖGΨ5j^x>sg/'&RŧI .bGlSf̞>%޲Js^1c~:|_*4B===Vwr&LMk\gC?pI9 IDAT4 %]6wB!ٲ&]3VV{(蚘޼y4ԯݍqRjVvīaat)Jjըξ)Y8ɪONaL7Q(7(u]{'#a#?+ >I$\LLLprl%g8~\|%θ"iK;jtO}33dO)XY+Z 7V155]nrI< hP_K[Xcbb3_ 88+a!<<ݔJ=bbԩtgi+Wu^xITTTB| ɚ-w~Jɓ#CCnܼE"u v=ΡߏeD{GDDoɒϜpXZZs/]NٲQ*?P,?fmq f%4nE@` knW' "L{N( /ՅI4>G{.\ċ/Q*ݻ/EkiL-RIܹRB:1{o=mUU%iݪQ5!._Pi_ܹpuua%뛼խü )Znn9{KWRdlr>;CX~o޼Ѷ ]. ؏ |$Gvq֮߈k5s#xOV-(Z}S؛|ɋ/h4x[MY)~G02U !| o-(8{<6l""<[[*V(Omprt^̞SqNrJ}nC*i ]x1̞=V)UǍNrW͛r Z3˗cĠVmBOu s-ah4j*V(O=uܺ}7oi\Q(Փaff1,>:jUOV:k&NATT˗Sǟ|*u=ksҽ4nXM0DѰn&5Q6R*L7lGY5j,--ȟύ|n =~ҏ'5 ew bVA!7r*hHPRZęB7~TdfIs̒nO[==I!B!6IFd8CbRrdWaeed>{~)nfAj~ \)oۡ3ujՠUf~s}| cSo!B!H$Y#2;_%Q/[o߾MV&2޽c?x3')qEЪE3z&!B!HFTc IV[;wE^t[} Ez B!4IֈL+iP IHs.Ҡ~]-_.)YƍKd_wRϞa-+:BՀةA*Ȩ(;Nt?Te`j-͘: |  ށ})UW^3i .\DLL y:?nI+:tFƍhS+Ы@.\mjEMm>š&C]嗯Ŝy>ܼu333ZhFv?Źپk7}Wܲ{mR+x<+V~Xl%kj:BBB)Z# iAr>5"##9r1j5Ky0|@cG3qt8 ͛5& W4.&B!IFdZi1 qC/Z@7]t9Y_I@@ QQQwicm-R`5?;Yиa}T*?і̑^с۴fێ]:}n;lѶu+,-p"#P(X[Y=uj&"V0p[Qvv٨]?T;ݹ|/?OMb͛b``%իUDEEk>{tP͓a/ !B!!#kD(]zԛo=r(rGl޺{L1##C~JŪ5 ޼}jȏ''8 #">qt~P(ȓ'7O&|uHAhд%M6iXXXp}Z8]k8w .^žQ*usr9vqqcCm.x ϵӊ$g>̰QcYE 'X/!FFFh122'͓;6=;M}Ęo|Jtt4uu_3kl>yMB!H-/_$]-i}-LMSY V("wOMO\9h4TMhc*&εsbq+We-,Y89raJmG{T1}y>5\oFg'ߞ;Ÿ:q,>Oh%F$ w#B!LMMqqIxɊ$iÉqrr$9.\z*kbn] .SfuHOP:u?DVk׮_SPXQs6M&TTʕ*ңw?vK.ȓ[w}z{O?wbr?w#/]pB)]JMRΙc'|+oyc҅`>;mGL &&iOݺ}JE'ԳK}v}.ٲe"qJw7C!BT'i}5zzzhքbcmEV[[-Pƿ󒣃_W}BBC9{:u^1g͛4q@+Wq#/:׮'O\888r ]{L9x9O=ZIO\գ+Lhdn'0ſK=v3{0bΪ5 {QZy>YpBBB)_εU,\LoXZZ`=գ+o޾gx_3fӯwO(SDFFch4Pz5ڷkSm6s+gNM3.!88++KjըNu?͚4S7933r[`IXZZһgwH4=&f& Y ,Nb9'YٵnבF ӴqT[ti-a!Bf,7@8Dр P~r,#kDE;!xZG[(133KVI8 [+ А."?>{v,B!ϐdpTD3JQ;w %C]±mEƱ~fڒ/;J`jjGB!"dpL bMXXo&!V333,,l,Dz277g> D_O|n̞1M!BAIFdHzzzXYYaeeޡdh'Znjb¹SǾR4[ 9zpoֳYz!B!D!!$Zݻw HPB! ..2{C5B!Iw.66B!zw=v֕=B|#"$Q#B!Ҍ-rmI!B!Bd B!B!@$Y#B!BHF!B!"dB!B!D"!B!B D5B!BSP~C!25@υ vHL9gQ0%ziB!S<|8޲ի1r$9g>˖L钩B4" U$3Kcffv;}"*IF!߾ ȏ-$}RLL _|2iB%IqՒ^UYcB'N1淉޷+:SV Zh#B88k766&ErʩSgYOao[QV  ?ȓ@@hټ)Gcæ-<1kХSxck_ݻ042P:r&&&iwBIFdH5UwJV^߾}dMZ%e޽{)0gNS! /Uf-ծ%&Lʖ kP(~?ׯߤg.iJ2 !ȼ<{0_o.ĕfXSTI֭^AMu4(++Ktꀫ3=Kŝ* 4iԀµ7%Q#iL5BG3hH&X޹[/7Sv_KprijN4K<'iJ~5B߰~fyRz5s֬oſ~_PA w񶉌 ,,,B$Y#2A%$9#q]Hu)Vggb7/u~XbU|Ϻ {C2_|.3Ѹ]:y]֬/iGq&Yܱ=_ˋț'7!oko߹e+WL~ww+cOb}\:(reJӵӇ?ʸS8w -ARcljVQ㇪ CCC^xɤi38{/ڡZf8t78:ԮU#3/&R=oDreJ1oo,糈'Xr)DDmiټ)w݋%GV͓|/\LØ9mŋ , XZXVlTdJr= u61tPF K;a2.|f[8eUh4jFxh Op;L@ϛV-Ȉ1~4.}!Uqi4Dۜ:}ISg0ah~VB P(YZhFYקN:W]OM)][[:uhΝo5W# 7oij 3GzCOOGG~nӚm;b׽r/n߹F|hք}X[SLi\U*7mw\`n]:wOB040`􈡬Z{}.FR_B/o ۷z*:啿HհFZ5jenߩ-WcLMMݝWYZ*Bt)Wtգ+fffӰ~]nܸ!9{7o;w.RZ_rB Pң FÓDcbbB^,_\Խ!:ddH̃ΨnPo޾`ȡڹ=vfswcr@l5ppl1oN]Ow02&XaNocmM%9xsSt)m''6y:(?'** Ohv͖zu;' ijNMZ6oJ\oBkkHpp<*N|Oy EC!0)YP`7m̘U|ݿO6-]4… &}mJ%B r]ř#Gi8###?y3SN:ycCgMtt|*PM5f<X"\/v1#u8~ҏBhpxss3֭ě7o_ѰiVʗ+ ׮]'22Y~[BLI5"[t`eqB)Q' 9č'[?>5]:uz:ͳ'ئN,W=v*+a``-֩R|ZM֬,]SCbĘY'sM֬@60v4U*Wbec.`jM짉fL!{l:e66|}}}>M>!vІ5+ǟ&# Uع{/^7!W2'GG y E ̙s̡gPvm300MjB}$ZZZ0x@_.3(Q;r8}NwG?Tժ$خwXfι#&X|2۵a) T!dȴ===Z4kŒs"-R@~\ж͏;T x֩E,89:ry?ROIV[[ZVBPRd >_1g͛4q@+Wq+JB6Wz{w.[6=͛TVg΢TĮͭ[wt|.Zjάy>ݍW_lքP&MA=)R]:u`I_Sx\R}$ƳvMcXpvԱ'0ſK=v3i1ulͤwŴ |pt{G NI̟3#!B!W% u3^u=6j ~Faʤ;8ʖ.aپs7lK8s 77׭@Mb戮#)g,Yqz՘سw? d׃懪U;~SSƎ-Q㌀jӺN?x A$B!>_@AlG 8RիT,_k .צEϪ;_q+ȅ]D|iP_{ͷ.<<*5L~N}RLuB!"dpTD3JQ;w %C]±pHHU!!xEKcF$B!"qU ۷ngffCRD?xwޣg-7i:,. DnQX[l׵F.Uu.s]i$g~ Cy=s9ޙasB!IF|055[wEd5+3,1lWG58s'eB!s!B!BkB!B!#B!B!HF!B!;"!B!BkB!B!#B!B!HF!B!;"!B!BkB!B!#ߺB`G8O?B5XQC]/3!B!˓`i,K*g( c؅@KK6B!B!~Lߝ'ahek’DDD`jj#.Nsҙc>w۰);mp!T}̮1]:^…A,;-B! ֈRr,U.QQQY |Rȱ܍FTX#a;7\em##Cj׬C>90%B!% DDDy2}{9ǎ,wMp0. &&5nkܐײhn+\q?/ o!B!IfJoTz2166fjۚ5a6wټUmٳ ]㶞%f45%$$Ǚs牏Oq=]]]հ%gyZƋ@,;jU*W 8-󝜹q*däc(Z6k&8>ѡ][w ""qmLqޅ;9q4gҾC;o+]x FFFt+{vOA6&66V;q`.,UTQWR\.xxnfڱ}aa-S)ǫ,+n J%>sDU*ۄqd˖-ͼ9w"t/^b[.&B!IFg}ɹiJ%x󏽴o~_2uc `߱L=_~JlؽO&ÄxCGeæ WUǺ YD\9ٶcc'N?wc=;WF[[]Q$*y6ctt4#Fv@ ]0iL[9w\9L2hEmm}#PRW۷! =[1iޡCGk7֬$ge_S oET0m\Μ+=&ksF ¡زݝXr5>faVN9Ag!kVq# sgM]B!~s`"nܺ*U({ȣOW~oٷsfM˰M~oצ%NKDb˛6Z`mmEXM-XӭKGpօsi:kMllZ05E[[fvM2=G"q`mmŘ֩ijKٷ*XSREվe˔d<}ժoèClWCC+W伌 )?}Uﷂ!``aiӡ >,1];k+KU搩 \\:¼)UǏo]NmԱl掟?M嫨K5U-bbcY켌p5nq߹[m[.qߗ;?g&5W˰9jڶi|ԙIiҸ!na⥸oՇL>gæ-\~E%K0b ϗj_Rٽg>>R|9 H\Is|J%-SCamea?>t҃&WTGOO{iB|Ԅң[4EGc\ 4WC>{2+O鹟?,116St.)y\xA|y6x +UrN50_j5sgs??m؂8/OddM}SW }qr^.O#!!wr"@BAllU|7> s'NϿ7|J5WJKHh(Πe˔Nw+WN<n&kI )^Zu7s˪Y9S=L .URuȵ7KS"WΜi}V-I>fNrgmKK =*7TCR@iFdnM[ame| q]SeC}#"#r=wmaY| q?Ys3gֻ]2s|֬Zi_>%sߗg,]Ⴎ.CJB|mk`q<sgR ̲S,Z8 89jYY0w-+ `<'r~:iݫuj䂇'LcƵXZZdZ#`Rà,,̱0Ƕp! On}NIY Q 9bE0zPqvMQ}։UtE?>J%n^|\㄄T}Ocmȟ?ܷpÓ[ٵg/֬"_޼ھYu% IuGGGS-V0coju+JRlPzÓY4oUTBCCACG)M޽о-{]VIۋTP*ERIbbb7];]ô%__a\%  ԣ{ϾdĤ e6CLL =zC6t= STRJeF IRPӋ ?~Ν:ˡ;.kr"#g4nK3ω-Ty6-QLiJU6:kbcS0:6c6cF g܅YIV'ZOy=}{٣ٰi+}XjըZϜc{}>M2BBBֳƏvso@~ !Gjeٳ3uM5`GI>8tes{~:#>$k8s?x{f=!53c<,ZmԤcكfM?d5ʕ*н+޽ir޿,7J+nfΞ;Wɝ;A쌉38;Se5Qc'2ȱ8x8e˔fȠܾsL?}==ll ه=S^LS.]];-']GקW? ֈ=pZu7 1R%K0~H AlT$q6vMn,^P(}BP?x@\9140Pex{P\YzJTuhjjRv-֮Őa;W%oahkkѽWjըܟ=zF޼yyKR +Q(PrR@|~HLkHZq+@y> ͓'63v@KK'^OU  `ǶM4oͬ鿫^\̖m;ہ7;w.~}~>+8a`h+3 Rսe *gEʙ#NpU;;8;Ox hjdpc4CBBض}'6mȐjU*ӯOO&V*̙DvT(_N jըcղ<=}Yty?y]e/Z.uժUQcjjc>.s?FDZ%yMOy&}==U0-=J/ٷ_mh_-SM-M g5xi~8Bogn8ϣO2Rߧܾ)Ue,S&aeiɩ3g`UT"[l_Ǘs)Y8x=}NeJzVR;OR  *[4[@TfZO(YZ˖)ŽgG 3knݹ^T(_x)[4VV3xhLMMhž͗7jY[Yq ڶjIXx8KDWGGm!!pqcxkZ}' ʊ[ } /o^^~EW4W7-??Ç dŔ-S s]'T<7n̹XXrQ}Ȗ=[$""RUg-꾓.4oJtt4aa3r]f-# ++K:!um>kii伌# -BrT_!/WafeF__fMrfdϖ;wŗqN>z\fT+EGG2|8,ֹBSCϢsUOADDD={R 6w\(..6 LMMTDAR{?)3iBȝ+~H@U }n444W(S*4kژy ؿ/ZZZ]UecG`֜ڥ;Z4_Wme/lU,_Ą wL4Bm˛---Sf> jٜWŊ~p2µɖ-!eXˇT@&&iy~G` SSSBBBT#`I6##ΝbfZ5ӯOOn޾xj:;ͣviC;2mZ333FLL=!66=T&>q^,Zo_ǢsTY}m^T*Yd9 _2{T"##`6e:$ uǏq֕AA<}ҥJҰA,SYݩ_ >g:߽ci/BCC#Ͼ*WR !!EOH!..io) ֈڙVaP}SĶ0.+[^NmyK<-yXuUz>1#?f$)V6I4ECT|-ܒXWtuu33 U*uc꬘=.W /V{m:}:".[ڴnMm]}t2Ξy8R122p|6/߯[Z8o6ffja=|E,7Gk^zudɪo˾|B!ٷ??*W(L2J*xLĮq#=N8u,n3RIMz~2ob֬\ 5nXQd,M\Ą>;sC\\DFFbjb~a;jB0LMM Ohjxsf? ֈN RXS5Cf_[ }+t/vB_jqa LRZZRM珶Nҿ'ܥToJ%/^>Ry>,Y4?˟߿tuu@KKK-ctr͒) ΅B|[n@ 2 AAs?4nX_E"_볳`c* BSS3J/[wԶ>E6gV#-!5M7?篧L*qܽ@̙CCC*UT/zNXX,^)U}{;0ob޽{6~mϪ5nAPK?xȞ}3l\q0^y'e\|m;m%^~CGu箪҂Ϟ7rq%2;uttofhrԯQbzJ.% EKعV-TM4l߱~;if?ɬC]- ""Ojdd'Kʖ-k7l&0(m-m-2뮉L %؍.\Kpvh׆ΰuGw(J.[EhX&&_|*cA( ?aU~>H,-ofGa27cj7ԫ5m:G߷ܾ)wҮMK:_}+Ybbb)pQQQ9zǩu؞!P|FFF\ _L rSZUz9t {l,Z0u );j¹gϞsOku]סAܹYIm !<.\EOɝ+'*UdjCEKiߩ:ԫS&fZc̙{`;7C P>>;9cՌ?R2G %dV4dRfsgMy={6:w@ͲTf̝=.kذq3VV̜6ɬG2VlM*$47wޥV_oiq6*|z%_SsyreO޹{W&B!_ԍW05i @4@GE!B!BkB!B!#B!B!HF!B!;"!B!BkB!B!#B!B!HF!B!;"!B!BkB!B!#ߺB`G8O?B5XQC]/3!B!˓`i,K*g( c؅@KK6B!B!~Lߝ'ahek’DDD`jj#.Nsҙc>]!<<1{'fC4kLN~ !B!5 ֈRr,U.QQQY |Rȱ܍FTX#a;7\em##Cj׬C>907o1w{wmGCCSg#v"}}+B!B|&x^L^c+.˝y̬ az7dƵ,?wa ڏyof5=/?ݿou_96B!I -5?+aP,ؘ3mkfׄgzW_۷eϾ?ӭ'7m~:ؽH*/˸#q[KW֢]V8l߱~{IiZhΉSyٲgc@ޘjcSSM8Ȇ[ xѢ3"̜3y;jTmHիUeO:ìy 9q/V#!!ظ8Μ;O||g/rҾDKK B9v$X[YҷMfioɢ$$$lj;R իUaŕ=ضy=::{CǮt؁ϞY_JѭKtd7nf̄,Y4 q6&8tBTu6cԎ; lRL8++4p3-s#CCztjzkҘ;vI!~8B66VPa>[wE!B )\7i[5?KMT*yċ쥥}t{5ViX'Cll nw߽:wńdx=wAT*e˔NծkYĉ%k>-\LpYL5KriRҕZƜ(\ȆbبqݹM$$$…lTÂv{kN;O5U{d1L;/_1tX6lڪ:foS)X;6$ISahh@n]8x(=/f2r̙湦?׵޿Z!N2}\.^}8уؿaf.:f})eTGf>c)L4^ر&Ôy63.ֶ0+V.d[Q*L53gvtrq] (]׮dԸ.Dʕכ;nDOO9 1g"ֻ<6MMM)!B!g'àq,zuzHЧW4 ~˾9 d GSSj׬%ZأIE(b[G[G(UoJbb"]:YhkkӬi㷹sTR\rҿO/vf7iԀ/y1qqqxx\I}KV-ڊ^=_I޹O2ah(^(~mϑc'E LLə#իUh ^FBB6XYZ0ȱ/.ӦLbN:3mD45'CCCׯ0|8vQzjuԢqԮ1 erB00Аs?xiҨA=ʔ*UTQzo:ڴiٜT*|-B!?Y#J.dKp,""#yǺ [}bԸ4oJjUسo?Nc@R w(ab>QJm_ˏ':޾ܻw(^Y9V2Ox\r mmm~ZEO)X =22#PhF:ήI#*WG꥾A>qA }hԠlٳ{L3&qc9wzuk*W?!!C{ sbj}+,]}.ܙӨW6֬"119^LTy!ffje9sP6AA'$e ھYYZuܾ}Bzu9zU {vRexRTJ%NLzB!B|]Y{(I7C%?fMulȞ-`T`A}|177K\SKDBm[:p1>%fOWl9 B5,ʕCll M0 K tUx1fϘM[꾓zuk/oL]]](Sdu9{+W沜#аA=0)Q߲RGzϭ1ƎLR,prb!OMLL也*/ț'5I>D˛7B!_kάu.{Q|Yr+VlXYY155U {.-gC:TZ578{vX[su^z&sB__ukaV454RZoCBXJm[i׶ʕtL2cnfQ4jPKW4?O||<{ I)uґ+]קX"}˽k{™̨C)S0s|vnۄAYoڄ<},֭Yʜ:w"GRܸy3γb"qZZZ89/chEKP*j7nbK=<9tU*Ue.z\br_B!BJ5B|&ٌ8wkYnjըN>IKh߼}G5ՎuvG5zK*>ylc+-]͓VޥO_PvM͞$ :r ڵI5nzuk>(Iasgl%#N .6+++z$M0ō \cGOio@(pRBBCajJI /\"E ίs;qV3atcՑЩ[/m܌cpf>Ŭ9111aTa>9sа~=GhH(*cʤD"UTn]8~s,ؘQ#2B!߇hB&`jI;wRFѷ4ݸuKRgi:s!nC $0/(::zq] ˩/[ \dڌ9>~(8}Ӥ =/QlwB!Ԥ-D; $Y#;kp+V&taXkbdDΞ9˥??%~MmL$B!B|*]- 6V#7XC5⻳ .~'WXI16|gY\mkNF$2JfI>YJ!B|~DR,}%X#;ZADDQQQY>ccTs/ōx=}F {;:o##b@B!bƖ!OK"\$X#KZZZbjj"`ݚ6+俣v9~ٲ F!B9I BCǷp3{YvÓMH<xUjU4hҜFqޟѩ3gY-^3|}>~|)]I]r^R daܼuNzܢ߽eێ\yK-00><|t?p{P~z;CGo^m'^4hҜMQA7s^jCسO]BBtMT""#7q 7U{\mP;7LzJWԬט*5# kK2obj7Kw'S?h*8&8v-8|j]yDFFŕ]ݻZSϟ}֪m=<7k:5kVO%;v$ZSNm,,ٽ+kϿdzlXX8FmthX6os'(E ++KҫG7 gIףLXYZpLBkBt?IbEɟ?jێ]PvMΤcشe;^S;l\z7bcc7iZKre9q;Ͽ:b # Ct҉s $ Xƍ)T\aƩt>4jP͛1l#K9Ο:ېGʕ待3sTe+Wн+bŕӽN6Z`jjܟծ8sxs΁}xAR"'rg'6os? cĘ jќfȠL9{Wչs ϡw6|}e;SHٽ+<ϱd|p1'}8͛FHvQ웦5w"™;k<$4KYdChܞ[6}zٺmJqʥXzڶIծg4)S\,_su6ى3c߬ c'RfZ7} ;Bg8u, d1Cbb"G`P[["vSV?urmZGt;Ϛ-b[K8{k(QXߗVemBQQ9vصm3ٳgg<'rp^P^zZ~0lٌп1mffҩCvn߾KllT6ah*V(dJODd$&&j ,3<.66Qc'PRi; ׮7j}W67g !d5(!?жMQiѼff)_ ?䗪Uu.=ȁ}0طnϭwPyu(^ …(]$J}S,ZBaN:w@*ߧvԫ[[zuj-Qo}ǚÆ0]֯ &lRjU+{2km (,GؽgNḬ k2Z$MZh'-S}PDq:[5±')]$VttkjjBy;OP*bbb&5,,2v o;wsA___Uؑñ` ,|y /_Fz}{;ШA,_dݺt n]ػo?OV]ה844aj6욨M`dw2<KWҢjML?ߦΤ|2mӒ5k_Yyޓ%$$󏽬X…lؗ} g-/rfQ^x&E|yѵ3CFAPIfv:}KKuQ::L2 !#cmu4/ŋAKK+l;~-+gN{>Y IS˖8e}Hz}e32bo)^LRlsߥ>B3`Bge{?9+hijQJ7s sѿdmHIz5kd?O 9ytRKF :k2jP3/3ӡm'c&L]V6Hz%gZ}5iĪ5kKURRT7 6~5wtutXa37oylm 8xX{\BBB"kZ.xxy;eݚU젔sgN#!!8 7iJssbx=}FϾT\IK k-ϼ}ؾc*X(ܣ$X#iIޠBBhy)bW Um %+շB ㋹ڏYjY$&&_a<|ÇZ='j;=MxxRG2|LLLjXƦO;w.krRF44IL#`nnƐAXO>KУ[g~4---pQ+KHH EǓ7O>zL\\ݺtR 0sRN?fbb̄7z$,?А3 #YʐziN5IڵmB}prLmY2 ?144W\|U53-YL 1f0:/Oj/e/9cR!IF!Ok(Q9"#ʔD̜=o_||3s|brszt᣸܍Oys#"Tϟc'NY#5W]ի׼ 9GիׄGDp]r0EOOGRvMgO.]]]fMUKCRvR}|}R|9 ȏ% AXX8+U(MLy\v5dQƾ =|$!!/ٷ솄]1  ҂n7;zzu99s{|>ǃD=ڹ#M7bZ=Mz;233ٸyJ]ܸy,CFڷ-p>r{(:"l Cޓ [ q0(Qt4!'B9(-6 dJΞ@||߹ˮب<2HLL"-=oص'.^*L^6mNw؏8G{?y¾IKq0Z5k0z=k^>+ܼz/^qAG >"Y$x&J_+4#-Sİd$ɋ.Jߨ׬%>/h@ |,.:~rILRO`# Fsa ئ!ؼu;~k)Qk֠G.rJZ4kJͱ댾>RLb%;vAD t#?K'Ol7I} (U$5kVge4T88u@3c<ҩTɒ^0g&KWЮSw=P>˲Oa:*Y2uba~sѲE3Gg~-YFV*,Ȏri #c1oiF4ilӄI$%&Q^ϙdq3{]r%˘xM;[ 3ΧYƬZkZ4ЮOoj&ORzl߹\^ Ïc! d[0lT0kNgb#na(|W3v2rb<=K~jժ~vd@ '62MbRl oߖNv;-׫_\:%==E$fк!\t:?hlOmNv ܺA h,#-=.=pMY>h[`mCGҩc;~a-@ &Amu.X J)@2L@O Wǃ$9|֪۷9}Cg/S3Ҭ'S{ݢO -QBW]9p0Xʚe[x =-Ke$GQ&U~Z,e͗T\z.SXWl?%--~׻@ F`q3vQ\':?IU|V\q @ G(k/#q((+kttt֥e;@ #M-@  5-ADq-q81 y5o!]&m)N]87 << >ӰA}nJ"?@OOA3dWtdeѸ ӧǻٲ=qV8.đCWn0b@;o2?EcRi߮ .mNnj'ϥSvtԑ6yU5it]Ll,ժ~W`f@Oii*vg)SBW`?b11ߦ}?OvHOGFʣUh>|@jUUר^ ~}1Iyz̘6n4m҈];؎@ @ [/u {Ҳ8d)M;kRuu M:)m` aV4ի״i2E-[4e8k4 (Y >!!^s444xhhǐ@ @ FZiii:}.hP~ywa575܅O ԡgΞǴ -7B4'x(e*Y| *Hʗ//\ Ji}Ox56q6G e{t., aO\]svrѿ apu Ӫ]gvl@k[@ |nM g'EȉPۖʕ,#W(8uS6z8V%:&;wq[Nv:.\sRz=yKzM\<ŝ oFve?W]8BO!))dH Z_y IQ6tx0J܆[33rصgc*G6H.^\>|`2C:žkZ`y>v VJ'v$=]w:vɔi3y=:t7@e@qSD zt@nʕ+E\:C~iD~,V+aT<_iFRziV,#Saصg_V6ry X4nȌ9l"Ke>X[WG. GiV =b҄ljU_^]@PG[NmEԨ^ ӊ&]E6M*еK' l[@-GJL> 2}m\t哯?Z\j]+'y0qqoۚ'NuǦa}ZAfMbեj='{_YCwѮmk&MNrrr_:;w]]s#g3y%ٿ e>}%9ck.ԧĵٲ෱]&HrIMl۴._S9JꪬsM*۩Q*Z4k<:::MIJg+}dJO/[N[ |R۔L(7èR˗ܗ+~,7aD `?rorBYYYtܑ>lYԛ(mP ҺU ރAlܲDV X[)( _^>rP(hش:?uۿ?Fn]:3a :ž={py~: }|0;w3j*A&alliE4%ӡmL%χ V IRRR173e232;v6mź+[.i6ڴn=x6zuk3eD6lhhӧ?ǏGјT0~pڷk#"+s9 6 3m z$1ly&,$((ysJsJİKWTrA.3itex-ζ 6lJD֭n ">kq^rg%/^k}],7nr/Oթm;GGe:lg䰡 EZxL 3^s7޸\.R%KOu+[oR% ֬\QdЦU |]:/hU k @ٖ[7ǫWJ루p^2?,Z@k5⻊Q֢Vx,C ]]ttu5`iaN͘1{> -ޝd2.]Bܓtٱk1Уkz#lH||F?JŢ=91[6Iz;e]?:ulǀ?2;{d-)qQ,,̥MQ#~d}ܽI dzMͤ c>dɒ+=p 6T첪Դ")oS')߶{WlÇ@P\FQ5&akUꓮ;*%eR|AȉP~WER,ܽ LuHD}ϢNZ4x:TY60`:,Vel ؽw?nF 3ZAjU!y,Ic|1o+Y!]vY01o}}=8u֭} .Sd׏sf <<.h/[r5^=_.aD:id@}va9{"CT,yV]ϙs1(chHBb{XZZ@6مyy0i؆ڵjW79:жuK~ss12*OՁl N94Ǝwa@:fiyHJ7S-Y֕+S kg\?-"))5+}7]ªި/s{HJt===luet7222*BO!Oҥ\.'I͞)]B&[ظEz]=ǀ.嫻P(:}&fnHW(w=k1os)QÇb7GEDRz| pr3n+ףI#|e/]2_ܧNNZ ͢%04&lՇG06mކXOٲe42I^G6d|:-OQpERx%-=r){sӪEsmL=hR-ڪru>{u7WeLHJJ&YZ4k*}[4k0P:|01r%K!?ݳRZM$ePv-ލMCn&">ǂ``(;˝=rV8bEzdYUDեMUY최ϞQҒ큻hٖ G crd}|[Pi L+0~d&Ys=j8Z٧kJ mmeEZ5{/@eMqچlk ssK5P/;M`iiQhyQ(8:B[[mmmZ4kJإ+v wULԮU^*7lM4PIYS؈v00(Emq'BD J*)i!))aq3Z)]MM y+ %9r&O/:> s3L+(iՂ"~8zh?~[@AMM/`)>m[~0dʕ`A?p'OK5y2u РKJzHɛ åWQWW59ӧ2c|֮E^=hѬ*θ._o"SR qpӒhjiIsܬ6LQWWٳxʚ]&իU%*Je]i+Ů366"n I#b!7k-MM̜L*s00# IDAT6Ʃ[N:}e}y=m۴i]r{"pU7mfTq ۪Mb"vR\9ʕ-U+ =}pBOazV =͹P(Z4kyԪYۿ^d]@PBY#(N@Ҽ}b_Gɒ(G1thV)g===|r7FFz#)kL:::JV9Դѱ]v+IIM cO2w{}LsV;>|ӧϰ0s[sm砡.=_G]&ÇTVXuBKS2hS!ϛtR?atL iO%]z;7j(}6ꐚV ,- F98Ѹ Ur :~2U17Sބ_W]b&8MMM%/Sӊhii fܽmD"INN>ƨ|yIɑLیٔ*Y Wav+QSSœO 3#4՝ҷWOjRFu%ע|4ny,zv}6 a?k65Ka8ʗ+4V+)6?-MQWW/MuuuԐ-s24?:̋ŋ|nj9D*A9b!7 իaׯ<@X |ɖm;3n"%Q\ 8X@PJ100 Ϗ\@ (!jٜohxMFFk.[7(ۼЕ渙)֕+ӡ-oܔ\kHM+KG@ ȋ0A 'ޥx'`mm/x(IL$ jsdaAtL,ʕUˉ[qh]:wP"dddPĄ|!HmqqRY33|47Jm S&Mdr_(aȾr)g rɑCttFFFI҂L&Ul Ǫr%8}8zkkBל&jT7@j=/* ӊ&$<۔)qܓ|JҿoovnDtt 7o.biaUUn f4i *VV܋P^w#"ȱ+fr(l]9{W!ߗǎsM)O.3o"KYbd?ss>5.4B &6:kIi ^*Qv^rӧ)ǯ*?RSӊQ$!5@ _"] ԪI0'1>fBOX[}:- &h)Qٵgo6%)LL*KD}^x @HHH`uzs+7V3p@ϲ)m')os7K}$,J-MMן׮qΐLR%166"1x'}*}{Wxx.%Q4qqO8~w+v&*px?^"&1!'By%ormJ6@[[c!lL ---̝IPQ,!:&ǏẎzu`anFc#23391d;Υ\ljׯWK s ">Q9vDvHƍ5wV*'BOL6nަRa=p7n">9|Am 3^D$))<&]XCѐ|G9{A~. 9Al (zU'cd2N"11- |,]ωo)_Pc?#55+[F*. >~̹ 7ѕ̚1MNc#>"::?oߦ+Ð8t8XOCdc=b#@:))ϥ޸LG5p=ҽݴu;a?j8y 'AiyvvC(_,cFs/R_odmS1ӧ*ݿ/p444([ psu)ŧgn aƠE<26kҘӧ~?}QrLv/-N YAk#g]?<ߪ݋M n.̜;fMS!u&U;Rp{{fP_߱ucWʙqǼ٬XHafZӧJEk+&wc=w.jը*eJ[C:T^/!/P5mdћĤy/}[w[ԯWok| 9u M.^LڟvpqְHiծ3[7?Ttʞ[>6lҕJǭ<O6eILm_֭O%?m^Զ8VšA Hҁ@ (>I> J @䋩-?xQ%^>ՃxaGF>m/,էq8U@_!5@ 'w\_p/"徴l ]'_ch?EnwUT'));w3}-@ #b@ k) 6 20dCb|JO]@ 9%tuҹ[.p+6 7(@ @ @ @ nPLÒy$*}_RRB @ @Wİdgy}}]$/!uiՅF @ LAV*ţT5޾}[g/Sϟn3n1:žbFYCGسgy.Ѧc/K-gNækCUj/kԙܻɸt2??R)rӊ&_CG2zXn#ԢcG}ŒUz0d6>."h2ҥ ^]kR qf;V^v7۾T˖SEG(woBoPź2cPVMR%KRv-&8I\EKkftuu. P_CAG066PPWЭK' ]X qquL?J0hB6*TkN6l XM\γg\ cY؏aCr&.^aҟt\.PΛ]j|yE&~D=Ƥ1#Ӿ] ی~8OKyG7y”i3|%p5BhGg,͘>j HN~i3عu#ffLuEfF&K}ҘL+8粐(hx-ʵ_u6u".rorBYYYtܑ>lYԛ(mP ҺU ރAlܲDV X[Y)|4~}zq1.ZBaVpq ?Fn]:3a_CGӻgΜ;oAWG=Iرs7d2FV4M*YZk9ڶmQ|`BN$%%s3SVx/!3#۾ڿ[jaV[ujq!6oMܳoSW6S&M$`&.]:}z*m {G9}r6}}={x|[Ҽi{y|v<9 Jѹc; tM-Mԯor&MLhkks`6o%M"uft7y{/\N3ݍ|/.K?;q W7w{yRNmla?r8ݻu88Ma}FJZz:u{"VY|~,Y*VkwE5X0Hkœ-1c|,Z;d\t'Oܱ='COccաG.Z:|-O؈?];(Y-/}45IO G0G\]ӵsGv=޾E#G0Z\R)?445ؾRӡ]bҧNT@ O/|,K sڴn_R~VV٣Nc07374=mJjj:*H.]^l۔͖͘8vƍ+oY<;#11 nstmv3bdT5e+pr|r*5;wu3S]'ySm2g48Ν:P^].ZQ:cR֮Z~ r"U Plai6GbZL>{~&3ݍ>ڑg؃ժCXD6hkks5V c*WdC8La풻èGDҾmHJJԙslZZj78La]?ϙ/\LTnx-~%))YIc!tڂ^$%%f&1WX55e|}l7`n]5ݍ &Oɶ;qr'++)gJ/1uLfN֝7n{)߲}n&OHʢswj44\[02sz e Y|J.]dr9!'NJn?VVv ͚4'oaޣ[w9CGvw!R [O gbnnFඍ$M{ 1_{-Mb"wޓ51jPȽH;37 pr3n+ףI#|e/]2_ܧNNZ ͢%04&lU,=شyG:`=e˖aЀ~d2&Mt{Mې!X`n>E iK-ؿd=ϋC1g~>k7а/W搔L鳴hTJk֬ owWN"5/¯7o\b:|ܩ+)kڴn]>]{hbx'u.mx'G~.&ڴdiIYsiԯGCC6nFjU%yZhN&9~"T̼~OEo޴l2ԭ]w#hl33SƌOKލt% I2s^&Mtl2'| GѻrDDX J0w;]{pGxŊ&UʕY޵33*YZ=pa02aa޳_ߐou*7+98iE؏̖ä>k.G L۵iE-<]wE)NېmmcanγbɣwsgѼiOP(pt6ڴh֔KW*X[U&jתɁAE>*1Юh߶ 7n}񁬬,JT*UR)?))a)ذd(˙ukעwhT>,θ._o"SRc qp ]{4canVdffYJeMK׮UժHf{.zsl "cc#"?`@4)VTQسTKS934  :̶Mr~ĩgYܗwӶM+6i \ν{8R׮q{bb゚A&Yp^o'COsl͚p,)_KS3ۊJ(k IDAT@(k_ 7&o>Svtԑ6yU5&?XWfJomJlNpvBZz:%tu9y #CxmCѸџhiiMl%Kesd===Ҥσq9VgC3MaM4R2[E(:yL 11/WNR@fȨ=)YOVՕNw,GCRmwڷmCV&`˽<1*_X?|rJkURnSXb;]tuuBTWWGMM X['COüx_禖CtLd+C,vTQհׇy8o}LwsnPtuسs6$&!#@-i۝oc~ ~c˰@/x}??#Fm|7md)<-v0fD6K=FE(kZGP(t_J`P0n]4"YZ&">:g՚u4ildYEVVx GgF ʂyd-ܸBe} m["IJVHȳ23QVUš[v-ٽo?׬ŰKl߲!_o/[MJ,7X@&S֭Z`cӀ#GCذ]<|Mff&fyE`b.a}p7QE-ddxZ*OH@CCCKUbbdem|j@RVp/"7o1kT)D)>{Ə#ߓXzϾ 07Aztчg[:\633źre:t ^Jq@ o#:pZZNa@gΝ'p&~<:R榦I:V4eҏKKsBR?!g|mi9ڳk9+Ox56q6G6u>BARpbmm/x(7$<!Y|,,Jrh]:wPZ2 \Gʜ>s^)nDZTP)..6ZO55444IoK(w老'O?+o2urʄrhOMpp(='*Q> . H/g=>~L2Ix*d[>~̇ *y>0d曧)U$n]Uz}R;%J].Bٳ|uDGH֕<|%S4gd2Z4U8M#G禰>=UkNSSZ5KaESN./\UMHx))qܓ|Jҿoovmܼu@DbiaUn f Oi|eXYq/"R p7"KbS9s}{*Ygێ]:sN鄘كmX鿖n];FRRJ?йSF;Qt)}{dxx.e@;45IE ]E3tHJ`窘`&رWTDX;  1%%g22uzys;^9s΍h5\~94[Z?1noX[šq#ӹ5uZc,--$#Qd ;o.VYK'~2_zYE ^E):&'O!~3JRt䄗/Zژ֩>f>CIJNwqv}-'K \7HT%$%%?Ԭ7oMMMġ<4447{:QQI,bH$*,ZE5*[LJff&.SF .\$$*[[e\7A]]GӮM+Νfy]UUU*Uȱh߶ jlܼwqqʽoVe`nnΦ-Hǖl3 K"M ѯch1s_rM=} ؖAGGG٫6+LH$;qGJGqn0-YK1|`Rާb}L{phcܹwԴ4J+>[jJ*^END3vϝ;X4@[ 11)2'SϢJJP7nfC,t[:@O}'ƌZ*\7wvl݈66o%%5̤OسݻvVH0{d7 Ѣԙs 10ښxM 0-YD؅,KF|JLyoD ¯_`ksM5UVf% M SQ]ɤL5)XSèys-Zw@OO~}igϽԷwO޻OiЈa.ٵ{/ -!+KFy;;en :&^y;[\gBvldנ=#J|\׮`-Oœ)+3sy(ab}:L?.W;;< M wO+QL271KLK2ahwԡ(,Z⅝]9:~ӫG7?ϊt܉ T0 &siԠ>9F ~ {=LQZaihjK&LFBb"TR>^ >uyΜ=dOV +G,gd1C]< 7P@e..٧ܺ}[?ڍ_4r)8 :vkT,-- ܷ0Ӡނ drՋGNR?^!))8huB$%%ӬU;vmTϾR~_Ks9wyn E$ mjUРH)@d/yp1)WL'8mo`T%J)#:bAAQcC 98f}|вmǯ>% y?]A 5 w̹tLO@hФQ_...ÿx\A?gPռU{xyE'Oa"ˇsܾBM9SAr514))?c2 uCnCǖ8uBpU"%%F݂ wpQڷmD.q TDR}Rk8 ЬiCbbjVgcYn!/Jg'[ˇXZ2h-[4~,8u,R 6y"zzus'6mq,p? [:5i#G r u uԮJR~4U* dmLܻ8j֬)173 #|WHRS'_11o?CM<-ȕ7?y*K=ܩU:N]z2hڷ:b uk3?ާآ b^z9ƍw(k3oq_ɵ7JX3exٲ---fllX|Yu _]߯UByܕ]OV2|k36V(z|x S3Sƍ/-Gy;k{ÞA*Up7 mm׀UY84b̹[#H Di'Nm.#֢cqCٴՏW177c/?ӡ]BSԴ46mՏ-m6]Ѿ](gcQSWUJ+L&c֜2{yܧ@__sqaOŞ O~AFA;A  wfQL?Ї4u5W}]&M!~E&bj&N54v1u2=fa:}nTT2m ۣWXj nsfQƚ2jD؊.OžI%>>ϲ|߾{ǨqݣsgM*0b|eWЍڵj$,.#Y:(=O9O'^3.ЯoBg굜>{S'cin0L~]ރPؿˏ)) rA =:~ݻ8X~`%xy`W_ >>AGhF- >>U˽ᅨ#%V,DE<<5׍5Ծ3L&## MgBVVLGOO^hjj矱J?IS3}ʤ\Y~ޞ16.;t%xX*;6!ʸ~&f:N:1 7## J :v93`gkKRr2/ѨA\sؾ{)|8@v̟Ow=d2&MNٲe۲$<<*:Z~ԙs٭ K=..{;j2x@?zRR 1̅D>{ȱ] 7exy3ujTƍ[Yh iPϾPuҸt*>ѫ{<;Ab߾cmY]]]ַgeyV,C]]ez+\g<5 qVwޣVNKDg  |}0{T9w[/JYܱ=*V UT?Tuh׆Ky%6lAݰ=2aܵ\ l;OR u]K Ǝ2x>Z4s#݃%KЯOo;6DU!jjjmJ!طl\J9y|r2cmU)3m\jVFNqhPUsw=]q/X-3f0\GX-S`eʔFUU/_)[WJJ {f:;;Ѧu"ss3>z-~4g_:|IBEvJ߿|=seϚ(abBTsVZ/Z0c6o˽Yx|̔"JЯ´+ uSFLtߜ2'8^Zl կT2A ž4<?Foc8l^WWiɒ~733%i BZZZ >>'O <Zs\]OϞEaZk[Fai'2 +V=ǎcfj1#w368i, OukeHW@`M¯1$0 |7,Cf!8jȥ˨JTWWȗʗ'WX3 e 7d?? {C*?fwoɲhЈqG*lYμ3u:wb<.;j>)#ZjɊUӠȚ,~X7g]7o}c+}M :v@((;\ RCI)[ 6s>8M[عg/kWW.uӺ\ҫ{Wvrb ,]93 ,HZצp`kmz{IO: {ּ Y QQQaȱy侖,L CY;R&999uBrMfLT~ݻ<;kfNI  paђ̚>%4 ڊ,Θa.vgG —/!<Ѷh5Nܱ=Ѭ\Wѯy||ճgWސU4Q_/dcGԴdʣNNNxyP8y WZ?|,]g]E];;67ń= '*9GN‚+W & c'yCBb"7oMMMġo {¼T^bO/#"|EKUVe`anFff&.#G $?vX[e\7B>"i8G˕w6hP3fϓwTTTc'NJff&7nQaooUkx-f>ƒЇ$%%4<1,9ίA +>sܽw;~84 ܕ]OfH$8I\\ii,a"'5%W|/0rx/2coJ07ɓ0#xxkԓm?x_T:XC.l;RĄwqqFoE=3ۻgcΜ;ϊk@Kzsm^|Ņ-XL qƍɂŞv'&&/_|+׬Q ^$4A1 JDrECCC*K\\WI/hf>˜Q?En ZZZocÊsr c# *5Osw\}[ ڶnU"9I$<t]!ʨW.+}h*u1u27ow5:::TZt Ш!M4e(t8&&,srm߅m!>\ǎT7duD>UVf% M SQ]ɤL5)XSfMg2Z.ӈϪGF,Z²+75UUll4>i"ۻ'wݧs4qh0ڽ%ݲcgoM-.3m!;naz4oψ1OZ5;+{#kkF =HIMq̜;wbxxz3d($**4lX?WP_ӳOn؄ wۂt 5u57uTzXMxD$eJcػ6kl+wNyաRŊ<~$גjjjڳ/_"J0g~@}ʮ'}}}ƌ*|Vܫj% gBi w¥+W\~ > sLpΜ;ϙsQSS1u0y\r>r؞P445޵3?g5)X~s_̴$ƍazT&SmVvLd<|jUȷoAՔƸ:|(1oi3IJLOBЭ3׮_g9[B>+Vbc4nȰKǧgd1C]:_A7PGHwqQpmk7nRV,?NFNҲ#(ŒYəسcKӸEf%^ Nq֬ĩ3D~M& s,zǗYlشذf%ŋqx4K s\ e^EԵ'v)>>%mضil}bO]T*ƚ)Ƴc>"?q,pxyqS455V nf)I.Ghp]fuhJ=}4?BEjT/9J_ =~ ELVصmSW?V|: 9+3rkwړQ\N79wyn &?ˏA'R4 d^bbd%<}S ov tY36-\iVVe?g;~P}o.֮ZNF3fdFsy&ܹwgcffZ%MWDMM~Ie\y33SfNw(gck9օ yǽr-ig[_BpB06nu@VYK& D4?A+blh!G`fV+ߒ]^= ™DJJ MJY>AtՉ᫸vf7*S***mӊAΚGҨa)ЦUKtbO/?A]=HTTn]pthL9zD;kґJ024DMMaiiikh``>VeN̚>c0!lS[AkY꽂 Sti޾{Ro84*Tow6q? ۶3x/[LO_넇G`( 7t5 sGdffVce<Á:ftlsIJNF ..3С]kW*[i))E 0uNs^tL.ʴ9JiۦUTR=ua;w@ ·bbŰSqcFE*:x.ZU}b!:k/= mm-c_v[[-ANPSRg_GaIW^!%<(S4YYYwP}=u̞} kkd,84b ݲeʰo3Cشŏ{vՊ\n>j耽}f:gVy\^Atr.ƿʸ#79PAtaDB ۹NN*xqvm9x(Gӡ]|ݸIV-)S4_Dceƍ2n>k>֭B]]k=B$HpthCcFC:Dat޵3ڴ©KOnܼM=:J?}/_e7#njE!{%AAA?k1ԅ_o kk+x$ PWWWؿu,^ӧ۬4M ssqNOH`h|Gǎw1ӵ3۶}1?ꁆ:CR҂*+ɏzNz_Ӫ su6:|r6.U71DySG,-,rbb QPȈ;ШŹs>ii,a۷շ?3NơqCLH$;qGhhjbOƍIUp2nغm\AAAf9)_P)K 6[M Y꽂~]3~ΜUzuñIcVB)K iJFF&;wg܄ى*yailߵ\А^Kz~]0;v5fI_ڳ@_3~TZwf 4i܈ٱp&fRo]@j̒L4^ T*%Ò#9 Utћ-ή۷W024g<AAA^([e..>nݾM ?ʦԵ7kF9+i6獔hکXZ*SaA}7 BEjTY:J{   F3XU @HҀ }xӠoNb*?֠HFQ^_n1o m[H߹~]Ю =ufΙc_;Ϣ }V휉O %%mS4tlIN^ T9nm/]u[A;FMi֪?c;'? AƉ57GGC5MHLL$99ꢯoEV=pQڷm'=v*+Q%AEz+Rk9u6ٰf%R)/_|p0e-r c#"#J9z,*fl3_'awUt43NϢ>{' siASS3?wdY2޾c:i А>{xkV| |DgMRUUCC( '|ʷ%&%1\|bpvj߼\r_ϞIbl\ȞZ HLL`hۦ]:9p'adhi O7m!..3ql(֥aEd26tD[[s'p]||yzh߶ ]_y.tvsZ8wl:>~ƶ;<y$H077t)KښKy3ʔ)]gdb'))eJs8uޝ|6t˩YCذq ͚6a=$&&Qfu&:56r2jjtqv;,!i8 @䟟,+4N>T&þnmM.s 8|M[hܰK=dm~mZCy\B]C:kjR_'MAU*ɾ۸wqԬYS&cnf dp];"JSfL~bļ[>5\ W׮d,pV8uˠtufP~OIE</`5| s3s&E:l3oq_ɵ7JX3exٲ---fllX|Yu d2-_'HLL܌AѦpt*UPʯܾsn];ѨA}\@ym]]]l;έwZԴ4k@;ܾ{]~Ӌ=Gv՗/^2׉9?R(C~@*a/gS&GO/Ty1^KPJeXԴ$u~!W̃Їlܲ931dHvL/͙Ar_XZX`iaN`1^XfbԨ^u4uFl,徫8e:ع{/S'O`<|CqY<QRE?4o&/_aŪ5͙E9k8Ȩqٻc<֓GDҲy3tl}<߷1jDzYy:7EJ$"ox,tv< cj֨N=:JSμɩ׮̹ ۻPYz-ϞcX8, cc_3 kk+}J \GЫo&OǜSy$CѠ=իU%..1'3r+͛6ν{L>33S]{7z!9=Gc6?ax.r6֌ -rx 8D6Gpo Z%]\/b'**ͬn^NWW1e2Lm:[ng08e:zz,@SS?UN2S&QFx] ogLm:w}fWDMM~Ie\yO'NؘQuJ;ΜӲo`B.j2c/SP[Pގ3gѩc{r̫mńSq؞Q#RLiݸ+ kZ+q댛l[6woI,tGJWyDز~ II6m&1b\i9wjT:<33 !t*g˷'$$0m\̘b;w!˒fΞOJjJvg_ 5U==#AbWFFTVEg FA/-Q J0fjܿJ}ܸuЇ8O1{T9w[ԪYR,qJ+`[ΆU*Sr%:kBxkkWn0d`v?Gix?KY2ePv9,-;jSffhТl;[[Wyv&o۪lY^zUc$S2aDSSF SvT(om9>zLjUwʕ*ҭ3iؠ>GwXѫG7 hټo~(##,tut00@A3>> s=fnܼź5 R cGGL?f IDAT.= e(]RazQ3G?<|{)^<{VQ***y'Ƞ<O,Y~}zw?%?t$ QSSmV ƾeU7o[QUUh4TP@#CCSyUAm1#6kD'8wlivGHFFFmY&JLԲyS}hukӲySnݺM˶uҥR^]ߥK}r~HN~gl׷7]GP=wUx>zQL\X6O󪫫+L*]D=U2ʦ-~GF"JIHH$|SfbOzYXZXUY^$ sįܭ];9ӭ艪U*+XPhcRvm Dh׶ztu/ڊqqV-_;wٳ zˠۛW lG935'O) :Ve(eI:&SSuŊmzx/oOXa3Zy>gLa`L&S: xq#~_t8.#F~Jy祙)/ ۉAcSخwpˌ o|WCC#.jy+˒:d`iFzŲr2UU>eΩ$奰yCCGViiiih残j~ZEF=Ra{r* 2u:wb<.;j>)#ZjɊUӠ耬,~X7g]7o}c+}M :v@((;\ RPVeml26mc瞽]B9ϯ \aumZx-YȃЇl۾?sg)ąR&| VWJjUi׶NIOo J:LHW;33s(ki枾dtuuI$yZ*V@*v& H~zk~l!044@X1Ncdff,RW~`Iʕu#tI~_'A%2Ad2AGӡm"gggɷ#u|簱"<"%K(t8D6?* ;##'OyDCc֯Ŷ *-_Au8vvvJJ+0L y_|Vjը o۶"<c|wC]~?D@`~;vaOٱk $&%q|p%KK #" }78wlOtt4+׬Ukn޺2_zYE_& ~Ş,b,Ty4 /o_._gϢ8q4 cnn#dee?*ٙط/&i8QQ9z$?(t\11o36g;ALy6FFhjjp$&|`r>8D]UUŞ^GDxQf ʖ܌L]&>>G״ڵjbmUYs}9z,WڴAz̘=OWRE8EJJ*߸EiGV\qWѯYCzF?lg9tBp_`Zd8:ѡb/_?͛?y艼'|k+Wx Oùs>sbbbLmEq!8Gq!";5-œ3g@\\ Fb 8D֭ 5Z$'Dbw<.c0dRe|*ET߾.3NfFGGUб}[\9\I5iƸ vS_x.[ζѡm:dgJ쀰N]{"H0ػ*_zU VƎ"VTX!.n,Akh,1-TR$΁-3{ٙg5j&GZV:(2,KL͚Fʥwrkhkka=rϟҵde#.`=e%%j4bE.c!ɖ;EWWݻJ]~P^== m;̞>^ؽ*GbZb(SFMqS Ea\9S,3M[zƴɬi=}2e-ݺNyXŽiؠ><~`מx|?|h ٯY: :=̻b3~LGGWߚqORvҬi] ¿X@mTz{KᅣܥEf_*v~e tMoi,Vs٪\ Pd̺о%z =ͥɾw2e=NUZj ;J tvƽKsEOW/ Hd _Rv41 JAArJHF)6oF8^ԭc,5 |UDFAAb f{tSr̟;K7EJJ4}x[*9,k{4U_UAAװA}{ȓNYΟ+mA(I"X#:} -*yLPRAA(*M Uطkn / 5B,6؁:lxM||<?}c۝W|0[16Arsqu#K֭s׏pg/;?clѝaC)  5T tv.WILL,RAAA" —n   Pʉ5W+iP)HtfΝ4IYYx!#w̜YQUQSܶci[/l2DEy#6i\uu.a-͛6j`lƎw/ IhݪcGYYמ8ٯa G>gLU^kt[;;S΢qm\\HɈ5_222i΀~Vwi@ z:Lf3%eXΜ=e+0yܾz_?[}VČAӣw?Z5s˾ƑfzDa,nHf9 iؠ>U+9T14ҢGYw>}[HKOիp2wblƍf(ޮM;6?ȪKteLIxHhXݺt̴[s+ q6y^}xb`5_?1iNY8EDD+,Rx;C69;&w*͛h8g'JJJ1*%,Cw1r3_eİ!;:}kAO 5WA?yJnl޺vm[ˍ,o0eF[rbTUTعk/(tt۷ o {xb۲?|k[JjiiPիU}\cC;nWUUursML'$0g"n~eת478l[@Fm۴f+ '_:^:̙5M ffЀ~=Ū5d21CCCpvuɓhѦEO&ڎCY9O+WC45ۧ3Y@ e;"~mZ6нKgUZyv}.HjUqqZOZjV~T@+3vlD=ܩ#B||͛5aly7~7~GYY}wo] |>6cGӭkged.]BLFV-Xh7mm-V^9/8DvlpX'{$2"]zwg:}nBsürq;?G̻5k¢v `re3,SWW\oؾs75k`&BӛfʐgNi#<(_/у{`ջ~hc3v4:e˲yv^ƨFu,QU;}mw/}8o̳稩ҸaCV\F}K/ˢ'**ww11}jT>{$%5ݺyv}]>@f9{΋ڵjRJ^GENf BqxxzѿomLI *T(O&yȟ[q}<zXȝhެ)O%@ʿԨa6@o˞sWidāCG:x[eL?fG?oKo<<4'YNvjC~CO?n\f6sq4iܐG n ֨^WEjp엓Z&02Q`9d2&؎CMM 555LۛwS5X1Ƶk34n4_A2v][\5:x:tҙwϟBFFZEGGfll}o=wFX3{T)Y0d!Ԩ^U u63cegNHSb.G \$ל}Ç2s)++=;J;wx ~7~GII9F̛3~R1zjw.a˞8nȰ!Q|fPǢ9VT+((`ss^ioҎ29*RQPxj[&Ѡ~=ӮMkθèFuit>9t9npV۱ K\||ugW몧I d/ܹw/ϲ~&[׮h԰>~sYd&ڲz*UL&oW6s.;mzNoDӱk4ըFrƍp|)&5PBf(V^Ǒ{;H[&#̻uaHj1ցоK@%pp SPTPĤmbȈQܽqch;ko*tdycFYa#A!TZu) @LFz>S"""ٲ}'11k^| IDATУ{\%yσ@cYHJJ 88J+J0_r%K_ G>z\:&!1Q zd2_`^Sppum_.)))|JQ5G^, u ,ugQVV>%EERRRhP^΋ ˕~VWW Ǔwuuu?AܻwnIN~O6SXβF H\7c54 Mtb`{3}}:IY`cCG,gy2sڔ\^h7?<Ǣ9JJJ /qY^ 2*JFp82 <<3k|3GfͶnή׵Fjr&I䝋RGyz6ʧp)T1k :3մa<}Y|5|ǎ-l&Me-RprJ\ _er2 o.(R0&{s.7YL;HamLۛ-ZlYΞ~P4W uо]y9=;cGy^D;nʵ+O@cu$ɑgd2lǏ5HLfnmZ=NpGb<ڗ K k ʡZ ײ :gr۳3ׯ0m3?8, g)̾5*req# >wY^}9 8q`rY̢ys;8cv1yOɍfT:ukJiLRr2mZeÅ;ҺuKyzݜ>{Nۧr:׬u(((ȭ+}"ȼNTqYsvjObb"ZZ{Սs!;~S _zDFRbk4lP[SEbRmA/AkRVbSx}NYE'x)iPV% Od2_`bgl\;WNw11DDF05k (8DV9Oo,zvHzzzrhʫ<}x:u,Z{PVV'TTQ8Mm߿}%}"˗AXb&MI;l'Me8^ '0y\Pp4^ rJCC<-չ3YV5\q\M[QN:wHƍ4l$JNgz3z[̳?ແiՀ!ܹ{_W}6d|I˖SV1O040@UU/^;$ZsPW5ӛ[yΞBYE]srz4ƍj zbb*C$L: I{t&1VR Ad!7(6nDuXj-A!bZM?=ӛCG%σ8rOH5_z[;Ѐ<%**Iq>`GDr߸1tȠO-_ݐ1<</;a)KaQUQa@?+7? ⯗%q?EFF m wW}~>",/G\׼&8$oDE&.>^t4m/%)+w'|JJJ;9BHh(iެ)5W]93-#{2'O |y\u[4]6,^R e.KN~OZZ7w;w U]_9{΋OHHHyPQTX1WEOoz[ʗxz0gVrvX;:P2 zwyP0/ЧWޣ zod2>Fhh?|b)7opvu#>>AӪw/?DGTieeeF &7~r<|đ' w[̾Z׵ ʗ'2*JswbIMM?!(8D:F&qQ~7PZa.'9u`af<}&TN2DE& 9.F^|u _Y#:JlG|||򢥥EٲDU?/o,z"Nkq ei ̣PTm[b;;6455iҨ!}zYsZjJkބN;`3q Zx>Nqs݀&>&=. Y7d&9ClY5j&GħEiϔd,\dj4W.] ]{F[[ #x<%.qٴ16(+)QsgM/Fƒ0:g8?ddȨclՙ[/`+wI6kۚIfKMY4sҜĩ3y,׫dzggm--m0x`Ȩay) ޽7* IuV14`lrۆ61fle9;:K̻gSE|~\t GGÇ,YZJS/^̻U^oع{/QUUAzغʕ*:6Kt[zL.Q $%!͚6kA( 9U s"P]LlXݿ/%u.-7bUIk.S~7hڤxK gDZ $)9=9gtȕkY3_)}.SfT\bŻ,cz BѸw)z^ @ |R4@KJLQУGBA+"r<} "]imfԨ^s_):E:"P#B"  B)\6mcDGs/y/ݴB-}M%66R —"r  B)NHh(3#>>*0t |7K7P /݌<6An"X# +_Bhk~͗n ?"A    ""X#   P`    B)"5     ycl8|ncñ_N-Kk~tS"e 'VA~z q?qK7PbbȱCbY~ZkωQPPȳ{|Zi_mmխÐ13YSz7?~䉶:ٕ8V,]XB-+]IprqQ!ٵw?^LDd4mҘqc~AzWEEEty3F[ĸv-ZfNI Kϧquʾap?))v: ЭKgfϘZ[ LxD$***/ M1}Dؼu/^de^ QEF(udLYlzΫYF:h*PA79y^=PT,H\aTb7[^$U !Y{)WvoBZz:^sחc3n4cGYv&nRNOX礧s"/) (~P)g]<{%ٿ{WDjj*UDPǸ6qx\`q`OoKewhiyaa/iFgjef{~kגGGe@?+ +}_~ yWg?u3vg{&Ożk\PWScڔa$V_iۢ$ t8~`CKm|{@,Sc{'=DFfq޸ɔl#$3o7~E2ek qc_aFn22hۦ5sgM\opqu#]&#>>|9Yމ0mD:Jv`PN̚qrfЀ~=Ū5d21CCCpvuɓhѦEO&ڎCY9O+WC45ۧ3Y@ e;"ZŐ6[RȈuޥ3ժU-R{RRSټe;>HHHz8'-5 Cp?qT;lY\ctԑ~!>>͚0gtĀVܻ7ή>@ֵ22._!]&u,+V{I;68Ó==ͻ3uҏR~7QQUetfΝVg1bh֬ ۡ_OmN߲xe˔ *5֟Nwe ki޴ Vc3v4{YHNFV-;ʚd̺~ lUx8=c$g455QV*ұ`1s/+4kڄ ^lĉSgO~]]-^e߁ܹ{͚P!}~ԮUF Hz[d^zEM##:h*sd18zy[}Ehk>yڝU flf; >e/cѨеL0]&?mZ>V7dQ:Ë/'Yl1L2?(d2lǡMU̠n:׮œhҸ'OӠ~= iLڵE}`_C.}nmHMM!##-MMttʢSVnll}o0rnܽݤiA9fȊ3`CBQURt|g3S=^]cѷK]L ʗ',nŋW8;+tLl,ꨪJ)++S6{=8Nzz:GMjPiA< {.rkp")) *U(j |ʕ|,k 䫫S Gr+Q%$&JAL ,[k ncm%%%/_aT:,rx+jY!GIQFUEEn$٦MenS'k̽{F&'mFQThoja=rl'Ѷmk~7PnJ Wǘժɝw돿r:VoIeOZ xAx؟Bzz:qqqҴP*W$jrRTTntʖe^WA Q:/_g2QRRBAAE%WQTXQn[~\}|rTǎkΤ$&%1k s*TٲeA_Ny*Hr(++>dd@3kTߐ[̞vIL.XLZjNk>9߄ |ޘu@mmy? GOг(#K!v\SFd()*ѦU#_i_ZeGSԺ!Cz@sLۛ=b&HΚ6Zk)(LAG̘:Yn{vfxe>eײFZe)=̻yڵm-7&## ǟDG3a ƍfŨs^n߽ewtd=iH~uC{7<</;a)KaQUQa@?+7? ⯗CG's%s^ddd۶pw ߗѬ^kO ^p¯<|ep?z͛hCBHTk{>zzMGYTUUYl\+))aLPp!wtyԨ^ ʤq/q:M͛aT:KWSu'Wݖ=i׶ %ߓƮ=y;ʁCG}.8:iM  IDATJn] 3˂1v"gy3~'K%͝)7}{# ʵL> _,^8O:efP<S(qFܻϫW\5|7WUQ%6#<|Ět֥Nqs݀&>&=. Y7d.Ul50sdNٲ4jԀM.r=S&"prYӈ^tN.tmm-GO,zlrv\k JJԬiYӋ\aCxFGLDZ'Xޑ u_:3w̛]`yukc3v+Wȁ=mC4m&14oޔK3W idĤZ߿Cv,Y43WTTT~*62~01iE\u/Őع{/0vӻ U,ƌaFCV*VSF[g &gv DC]Ms\y~z߮^CYY ѺUKf͐T24hPD~üKHO@__ޖ|?b(@N 2c62Yf]p۸y+7oEQQѱ lIR?ԯWXZAombb_<__w+%ίN] {4Zа3J޽Y&<~{vH#k\\xf'3mm->"EٲJJ   o$5B.y,Q-|~wK7CAAA@% c?kήtCAxg-J͟Սv t3>Ohױ+YJJNσ_v H٥5_?:[Hم  Bn`b֭ʿ_9֭|r?.}1Llwt[/-)) > ۞ʚ,7&E*kXΜ=|͐HII,eyC] {U%$$캙^ѡ9#~ur\֘ucQ\_[=r;~}nG(Mj ;ugҴzCGִK~+VӦCOڟ7"2ңW?w?pW億`rML>Pi0u̺Y`͂&s궕V&fr_ܶI##`1]{ܲ/6n&55]A% 9Sl<8Z5kR^]i[/L*XZ@AA_R+==}тAKYj9E|F.}^QdH}(g\aTbHpH wc>DDDb"*U _̱040 ,v `3v:k̲[{ׯLFF{؉S֟lšUhܰ!?fTZvm[:ӛ=l|W9w>BQQ$V( ]r(s*zޤB8GOWb՚ըN rs^ ∆lg|IJ|zi?Y@ 9/VNct#דOpYמOz*4t$aa/:sL8pHSΜC7>t6dEy5_?~k';L`ҴGHǤ캙ެcll&Lν|7{w.811!ܸy>!"""2Sgݰѻ7o%--)yާdZoWݰصþ̓عk/}ż.%))I*z 'Na٘uj`S޲ʵMt4VailnI^kOJ,QQ`tyޗ{wP޾}GxxL^OV&fS2z4;u íecᆪX# J{/[4FQF{EQ;KD,{AteX"9̝;wfww}o3F@&-۰={&y;jLhٶ#56Jk{)?.>yz3O>Mu)Sw!^oQ8OӰ)]ߩ{ԩC;<ܧME p Oreճv;ʔf۬[BS=vvRz5+tn;wu~:vp`1e"Tϙ`= `th{;֥#/^ٳgiŊR/oޤI`n޺͸1#T̞9ygݧ{}Y*52l GOgNyYsRATb!$B7i*~aE4jXCQ|9m7mk֍5n3gկ1cDw]0e,^|Cڷ7ʗ1fϜfݮ^+ij݅ ^׍([4K{Vlm37snݲ9n])[4gqc?gq)@"0cƠ.ھY3غm;:B_6a`'g㻮-شv5~^Ç!K4H[ܼu_6cahhȤi3ԯ/]'1-Rٱ <"BM`Ps3h +.DWWKﺲ>T}= mHVvdƵ̜6ǎly_߁l,vRTyKpxp4G֍&޻ǖ_kx \9s^L%~_?h4ڵjҳG7ObffƵ?w695ԯw9c'B//Y@vmS{Ͼlܲ_9/Y=\EX;SGrJ ""!GԪ%oe&OsW|-!W.ml\֍kܱ O=p=Ҩۡ1:'{q*Z &OsWd ;qYz9zvOգ#k+Vۓ#ҢyFI?X^|Iܼu;U ʩϟ/ gjr~zhٿp:DueʔR/QDqJ/Ƅ4 о];w$!1^O)M.**kً(-O^zW*9vV 񚥥.}zXȏs,[k_g ܼu;0ŋUo_g{>sʹ]4=`o2ER%>}Sv-jT([4q(13#W\4o$2߻zujclRbb"#@ƨCiߥ;`og_3cDjը/߶E0+wL|ލmwpaudŪk)[4eK'L"##1M8cfFxxDZ`olwG>|DEEt6':&3ӴsԎ?)3xv o)JV;Pg"~7YfLMwh c‚`-#8_|Φzzzlu;];w$::%~+ILL$*Y%+K Ld %`B#>s6{sv4omm4-࠱ldd 9z/B RIl'7!O||<s/U8>7`{GfM5L'y}}}tut4zi 6Hpa8|4.gǯ^)\Ha= ':&C (?e#"7i*Z4|5G2Νj|I.}.]LoyEo\Өqؕmб}L2]T*ٷ S&XBWW`l3CBK)k---x0ɑ~e>X/_zz*U@Z59lcu,)}[ ׬$"2?h>sR}N%R5g.DZ{֩5O|܏u h|)쀹y^]4, ssO7.GWGhiia\<V!DN !_zukSje~+Wczj[}%.ZǩᎭ *jWtR!QPA,Ԅ /:M[x2JݓL5YT∖8O6{2}DtutXj /^Jwu"H’YRҾ ef<5+T^M;W5sɇdth+:IsT t-gv(?\cv}: ~&j]F@&׏"RN q7֖_6)֬Ȗ_b"_/|[EJҨhiiez+_%kRZmbVDbeIy|b,'o"#klKz,[IC:b.\1#5Ȉ穏WX,C>66)Dex _nFR1k7ofw$33SLc%nϡG4z`up,ͩ]k( ſ}d3S/BU340SvlZ\x9epM?7/#:&7nҹC{%LB 1E`IGk_D2ejez ^&Q\7n"..ݺe\D$;$$$P`Rwy}߼73cgcNXx)I68I4nDX3J%6m rbcgicZ[Yqs<{N@lyTX{;[tuuԡ peB=fJ6]:c޳`Μ=*7 @-yKV1/]at1^X)gzvSٷ's7'O] ;[[~ԟYsqz}X3/K:Kzz*`oiܸyط@cFTt.+ڳJŋ/Yly2bU ?  "":kCس0=<{/`׮I3]q/ǡ)3/^SjC@<`\u]3uuth uo<GRZI*U󊄄V.9"!3gq4nqO͏7~&7kYX~/\) *U5bb^qM~ݾS=D-g7$ͦ~;{`ffSz-ù߀,m1,_3:CH#aV8E ^MG IDATUTL9?:ˠ.?4 ,[;w1}*%^',N~Ù;ϗ .!?,O:uh Sس8+eٿ }Ӱwz>%aP"ljNP2snGf¹XPC̻ !\(*7TJ o?[Ν눉ڊJ2y;uҒ?c2q^y믔(^S&20K֮Yzuj2 c#c|¥\t[Uo96[rz폮^R`仮46d03fΡE tkc1^Qfu&MjCp6*Uԯ.'N%"2ŋ`g 5W'OYg۷$/)ɩu 뗑w?9 S Lo*ex:uhljL9ɥOo=~w={RAF ճ@Bc^޾BK5JkhhȴIq4տJeGO|6m={t޽evdbbXx)> g.eJb\/\BOgrikS' z1KV)M7]Xs)Rp5}KjU4'"#"T&' W62C8:Vt,OZH.\4W7$νz5ϗ5=[~Nll,k/UkW?>Ξ,[ k++<ܧf9s^=IO`ܤ= œ͛ҧWR^ PxI2NDRGMR2k\ž=gNS'mO~/SW__'O3~/_ V-ۙkcldDŊYtFw{t?WѮS7ԮɬS|Kr`Im@;\|YS8w"*~gǨR˱Һzu'˓nP!Dr4ʧL1#N_q< g)&Ou=*9FOgZ4kaPK"C݆ظve Bh+] ߫ACӸaڼG~!B|=?uDP(8r`燐_ I0,H+S:~թA4 !B!LzֈVzàғݞ84j, mЧ\3ׇ}RA9|z֘7oxr]Abb"aј @h||8~S9R =y^TPqӛV-q4Uӫz,-ߐ X1bU*;0uFq&O.oj.^b_ov8J,N,F__sXM,]8x-ev6EgB|yj׬!䦰vߧJ>u5BdkWc9ۋ,]Bԉ׮&44Sz:\:IÿZ`3b֭Ġ.T*F }ܽǨ0v*d/qUk9gN#OYZ,[cǙ8n4}z!B!IF|.\v^٥\x~IIްOo ǹWOPkl ĦPA\tnw6tɇiiiS~i$}zQzٮ{nɗݻm<)X.R0Ϟ׮`ͺk|@Ձ OĄv~V[KK {{;>|Nel|<"..ҥJ~c!B!N5AݸyMhrWѳ&Tɖ1m}{dԉb_$MgiP.;p]ũU M..>^c9!!2HVXV~eS !B!DVHF|>VwS+ςŌAT*P%o<pEޭ:M`Pz_[[ G \2J)T0!VJ%<7ܹsW=АgϞil~nȕ+o$|U_L΅(^(=140PمMӭKOXK!B_`XWWS&Ыoj֨F5-}['BCCYf=%僱*@BBOR ?(QHZ`oi t퇎nߦy&nѬ ObXmmmJ*ɁCiټ::y#"R{beeŚuq*Y yDYN:Mt?ؼgN::o넏b *[P#&BdSH#:tI~:whG.=XΧԥ{/֭KSSٸe+aϞyBCC |ؾeFϾ7vTVQXyc7"?br=kkRB!F5B|$ŋťO/fpӛG]ިTФQz@aL/b^VL0-lrxzۗ~PhiQFTqӥ{/V^k_g}'v$N.ԫ~νz5ϗ5۝@RǕDeJҧg>*3m'(< vѱRZXkW/c>-7"iG𩪘{Je Ǫ@~ӲYSRmȟgΪvm`ʄٰbZ~5kW{ !B|MR&,#"Sqtz֖O܅EڏQϯ8nS7zW,X0m2 cOSDPa36]Nh,i*o8~ΟɽY}F{cÚhii2Ѝ/ԯY> eܺ}}deJɓxxys9LMMhݢ9}@[[Y~c'<ȁ=ܸy Eܾ{==]ʕ)ÛJ% ҕ9F4RJogoAuԁ]_uC}6kԜ۶0݃K3w6U*;o%䳴`K_7j=1kc?n{O 6(57`0VB_|XMZÝU !B uocf D@   0Y#r"u'ooP,M ek d"}Ŋa?_>tuu7i*]:gl#"zFz-Yc(^(\p4P(MiؔàcbPT=6[6?v61cD8p0Sf̢ZnٜH8r˗Y%s{T/QDqzM5B!*IF85Mq;μkaگE11Bصg 93V-3._,]4]峤K}:XY8ɽ!g.&`og4mաs5iw!8!JHiOtL f>A=#$%$"Q#>s6{sv4omm,]}[rBB6lB -J%q)-B%`ȑ133,)Ňgh`o!iFTvȊH|tɛ'Br$d鸱qGǡ+SH+caaj%k)ktRWnmV̞ojvb_:^-?pJE 2,]꭫ϟkX"~BB!1 ⋑{;[l}wŦPA:MϽDK7oOyGD`ӧa(UJTYZXdz,C:uhǦu υ߫oADe=]H&_uBr ֻt,N\\7oݦdY9%!B/kB,*BCItL .^b=L7F S\f{R-SqpBB癳:|4c(J6lʃADEEq5^ƒ2OVDF>WKg>dzgs:o{,hM@nܼEhLu c6߸Np/ im䜅B!>72 J!" KY9`oqF 3gt/daeeEzdxs/z:bcb88s6d03fΡE tũu4<Еiݮ q bcկ׮Yzuj2 c#cvmߚaQ*ӞrA<~o"#")S4>^I=DL!3ywXV |rK/SFwpE+UdϪQϯL!ėi*/ip:#NFB!BUWWyL[!@ @<(_:2 J!B!"aPB!B!+UÁडM \EAGkB!B[u#wboZSU)]2 J!B!_7=j;ƺ@5B!B!={L.,u9kB!B!rY#r%CO=vdb+[5M1H5B!B!>> ֈg40e^ec߮;ǯ^%`#B!$àDs;2Ep*jʽ(-^xNB|,{V&V5BP2 JL__͛bna"@tjOjUIHLDWLթCbE?R;|y,k>!s/ g`.&&]}>Z4R(AG'K*hMM;'ydB!>o_yJ.8j?sMsҧ7&&,ZǓa81iq-$&&R&Iܼe4iܹ9qʟ?ilش/_RcFP!:>Ǘ 7p7l8n4nߡw-Y/1f<֮Q&laVoO<5w7q(9ժϢ~/^RDq~2eJp?+VE۸/W cFaeU]!>>R%Kdn* N^žNjlS<9s&nќ?]ӥ\2O _}RAo0b񢣣5g.N@߀Ν!-Rn]:}\ͮ[;w"_'IC17ϋߊ.l҅=---:vA <uMo߹@7jk U~J[`j_|18Lr禍SK\:m_ʋ/T<#\i ~YGSJz n.[ɡGy1,-җƍdzDDD2b}_PHaƎt˳ŋHΝ ={tk^UkA9|Ŋg2|޾s зLs=X~#jTgGB`j}!OK-w'Kd˯ۙ5g.K`y13ceOR-8v43u71hK_~+++6[pbEUT;cc#xӧa( &w?Y8VȌYsڥ#eJid٢8g5̈́1h ŋ%c%[5ն'O5ϗ R< I @,]'1KKKvCG/cf$ovPL>If|۾ٰy &MT9vEKQ[6Oގm,<&chhݻ*oܤt؞y^ l*se|144sSgl/\XCCCVY#^z>9gN#olNævNjo(v\;.:z]]4Q[8~Sܹn Ç1jPnܼŨqPժV5}88֍Du]{baL8wһWJreߣ]ގS'bmmŁ2cժUX"YF-S'w,XǜZDMvoQÙ0f/\d-ZTJUaR?ܧNHa؉۰lۼժf;i#(R!àBφ*JQp1K_ Qt)hݢt K rEfMyz{Bi԰>X[[Qn *J~###rE-qzl{r/]Ld̞;aiaJDo &/WҥJr7膍[hԒmppVXZZ:x *VPAkPAkmߩ_T2 2m /]!~{m]i݊zuk?>vHeԯ_|w2zOgIҩLXttu155Ζ͛_1mE ;`U ?\p<񂸸8vه Wʔ.F ; TX{;lûcv` ( wU:Z6҂ڵjP|9]Nu׾̌5k`UNZP((QŊxfe}ѬI#J(IܴoۚS*W\thBԪwiavuԢqgIiX.wJ7nkT∹y^9">.+"sҳF|*~*d*aPJo}}} $OtTzY@y9ŊBWG '>>>կP ~M{w];Ǒc,[J1~HMҪE,ίw===] .쑺HF:o;w)CCR1m>uև<"..ŋi/Uwlml4)#ҬC@@ sMcQQ|g؉SmU~ܟn߿eEoB!>_5 J/nb4,nۻ'ӧNDWGptKwZ2m&66y8r)3\rI %"gkڤ@ እHLL olw?gs;U8ŀC^J=%$$R_fU*i~nPAbt%soiO޼yԳn)R$WNoH֥'ЎiH-:'}}Vzdz#;\EK8uO<ܱARQvQ(T K`jj…蟢~#U4zT)qL5'? kh`@?X݄rXcM\ ([ V $} zʕIs{;߸IfMR@7oj~&ujT/'&& (;[[ )wBB >֭`Akn߹G:>xN=OT))? 󚡁:E&8…q"< ~* `U ?ܾsKK yq`hdȫWLsP(IT&3k7͉j7ef}ܣ_܅4mHx7?VϚ찶*@BBOR ?(QƹYa3/^L]:2yL+JySSJ/F]SSS ]ڪ{>? ZǒRv֩R|9J(qEubJSLiM䳴$0(/hԠFYJM[~vꘛk%eR:0iŋ\NNקy&,\G|66f歼|.xbD>ΉԮUؼ2s(hmc'(W **v*BCPv-ttɃ3kw{4VZ[YqssjM̛d=213S.lϝ;wٸ%{'+8±REΝcY0+m{~F$&UVM89Z4oIzٿ }B[1tM!ėK5B|BԿ3=yZ53iLLLDLꚭP(/ҢFjԯ[i8:q/^p=JŘ1e".NǶv2SSS 7iV ǍYx/[-}Ǯ )օ^]nԩ]Y3!*g4{+yR"i(`˗UQ4pH^1YWGWXitN)+àrB!d'OS|wwȉNgTwItڴc!>B[v-wb4u-jkit+] yL[!K _,$hqbםHfkA7Qh  !r',ļ"8! d-Wt{T!ėdكI6Si2 X|5Mq;μkaگE11B!;9%JGbɲXҧB!`: -\Kfؓ?X96~ 25###LLRM+"g166f5< !v.J/|9_c!B/kDfiL7-_5kpO]Dhբ٧ȦB!>5 B!BHF!B!"`B!B!D"!B!BD5B!B!9kB!B!r !B!B B!B!A$X#B!BHF!B!"+ DJ JzlW8 jbj&B!B||9Si`˼ey]w"q;_޺tź~g_ B!JFX`XʪK><"Μ"e*hMM3 ( * _XOtuu9gܧjӲyS-SфyJ68qҟpLrd⼊e4iܹQTXͶv*ujT̚3c'Nbo@N)L.t s}p^pӛF s]\P^c֮TrǮY~#baaؑI`ĘlZ [[FHB|ƌw?0|؏hsi/Ya#[֯8{CI!=%Bt5. D$X#Z+7!uj=6P~ 芇v̘:kk+<̔V*,%xvDZREܽ *V(ϷU+S#RښRԭS&T*Q(}AHݹnlؼi&Pd ;ԨF߸Œ>j:9.DDD2dhpA:\zqP@~ʖ)bytvу:y4d0*aHR0҂2Óes?}-`anOC𞿀ժe˙5}jB% .a`X!+h:9kGq,mXGOTҪes{0x+\vԨ-JfMݾmk<}~fOw5?9D"F=bZUtkBN5J*ZUVkDNN~!!!_^u_P\u4_ZTXOWcQ%ض=/OO6L13صg/jTgێDtWкe s~ڵk\1oSj^}e~aS1VLvFHp׬jU/YFViצ@tH./x| HY˚G6u2m&iԏKHp7^!k/oڵ-eWoef99:: 6l*1NϽ-i)"""""R('V~`0,1+ceX͞3[ޕpgd­*TFuf3L&S&uCҀs`S杷$%ʊ?8hg.$n$33K/庥LDDDDD RX#O:`"ҵWP|ya7۞&N!А N"0U5^^ŋёK?[ڷmϖ1v$ BwJzyRjF% 1ӿ<+2N\y?{3'.[ H#`˼]J۠dA̡dZU,|Obl!O{^MĉxS'ȇ6ܜ׿{SǐYPsH3307gھ{Qq,K`y`oooZw,/qCDDDD RX#%r%RRRo8;{!w9::G H:>ޕ1=lDDDDDDy k@=AfMiѬÞcIKDDDDDDDD 5""""""""DaHFDDDDDDDQX#"""""""R()@ֈ kDDDDDDDD 5""Hiv7nƞ{|C]MM {Wɂ[[D [{[O=~!TP!g&""""rֈ</R%i~888_̡dn888|>g\HNf7f5xW_gYܽ e˔fȠTPoVt>s\g4jdbYa/^wLl޲MPi8v "аA}>C &--v~bcs{@ؽ <|./tgђ\t\wq*U~w%~M7Ӄ./tgzl8/WDDDDZY#OܶA&+qꄅ+9|(ʗ3ƭ!(0CC?d >sŊҷWO5CY2zv {ѶuK{[6c~g[qS "}{"NNT&5-иQdGjZ*uBqq)mW\a{S~&lԱN%QBy}#va(9zta:L~O?O>=KQĬL0=6ųhX*իtz:w@ x湮 ͚f`Zr>]exo[`[Mff&tj.$6n5Ɔ`jSf~*U$ >O|1̜6/OOҍgt-nj׃Տ7_IXhȿEDDD䉠FXu6=uCzU3\ˀ~0ije˖a7`ͷx{xprtq0yX|kt՟5/ߛSdSjլN:z-L&m;p⺸߲x2yuTa?0s\Bn:2c9Qӱ Y{ 6}{S^36%xZUgNA'lc6,h>._fko`y^/vM|Bz؝9?X+++ٸ)^;vÚ'NЮMle˕?Tiө}cvxzzvadKsիrRLl+WUB=vL1NϽ-=[ oвy$VVIFF c0W}sٳ|S.\Hť0#yy .ZI(^?v1gΞƆZ53_ k[VDDDD$+?_m0h٘qfw,`mfϙO-L0ҥKIPxF.oO cy$MFXh0K~w%<<)pyƅ Qi7y;ɔI^lccsǹmNʊӧop!t#\x)׭e5=׺%7_Z0wL] ]Kc֯WXLXHpuz5ʯk,.]{|E ʗ-[@v&N!۶А N"0U5^^ ?uȌɀAhP~k4zx:wlϕWywDZ""""""ybre]"Q9|hm<=ެ]7_k6Z0u,jV>$l; dkkKd̚3ŋ⥟sX۶fg;auuB; %ޕ1=m35R YZZ₋ÞEhaOCDDDDD䱤%""""""""DaH3kDDd4ٿLÞ<  TՃNֈ#iTTE>쩈c?w՟z[۠DDd4)|Sx12MgDaHFDDDDDDDQX#"""""""RmPR\1ԯQ̧?5R H}49~1$%Ug666uޤ`7jcHMKNX(..ʕ+o o܄:ԩ$*V(o^kLxyzЫG767zκGbpRŊƭ𑣄y;&MeD222(_^wFf̚C5dfBp?/tg|bZf H]ޟ35&!a Oiy߅H^)'V~McggOP^Ǡ+W2_o&L}ٲe3 <==X:3sƬ9L8Z59t0{fp)<=Z5SN8^ Ʉ``ێD|kc0ܾ.n,^w|*}X̜=V̘5~eNthB֭}{pB2`@ԯW=?̫{ Vx{/7|mL&w$r? 9{VV,[S;w^yĞ?3oL4e:o;S&ˏWDDDDD$)|=qg֪3y2M&Z4䝱Я7o? d2ekʌvmZ2itN8I>9 .~kY+O?]}G^x`D<=OLXh0jTh`מԪQm;ҹS/_C-W7Ν:k׮rUǼMUxMƨZ2ڵnx!A^U{XX@Z5x뵑TJKҀ VVVsF#Kiͫs/K8;9qN""""""Bo  `a aVB:Mn[b4Yx)~,d2v-ױK*֎󵿟/v$ҨAv3b gJzyrqrk*[Yre?8tt*{Pl0_7vMȖ沫WS B&7S'ǽD RSk^~wL "y݃Jiߦ5ڵٙӤ2QXyIIֈHFXn@Ƭ#ߗ5kcnk7{|7oa򄱔.]Lql &ߏs摸k7%LdxWÝ^9 g\PO7dʤNx(C^}66w;{*d:r79 "y)]/|,\²/⃹1eff>=J+~EuNiiiyj'"""""O)'V~0|]ftڃ+bPsM 8g&4$&ǟeU '!ɍߏUV`^KKK:l~UFF˕+7R[\/ȸgyy ꆇQ7ޕ8_ݷУwjxP3Ĭ}BEDDDDD$ֈ䣖#1+ "rЯ7o3m;RX1ԏaM_._a>Pۏo\h֔Oθ \v:aݓmԟ'žС]Vlwuqa)̘5Ғʰ8;;3h@_2=j6Okvfm*Ty;uu qq)LF i:ܜ^= M puqq[22202:ΠA8::]8r{9 tk]w 斣;kcOʘ1X.Mm *Wat_B^D6iijt|Sy)zPs.O׷r3&?Bcu72l0۷~Fy5"4xv$2n$Z ;5L4nޚӢYSsi3Xb%kb7wҕfMѩC;?<3R\ټ~T':`X_Uqp?DbEfg٭+ըm떬;[;ZlN 1'm[`D`DMjZ -q8;91#*Sf&iii[=&6b8Y+._NaIlߌ۷PB>={/##үwO  `Q'<hRbc[VhԣwB۞񊘯tN9KѢnyyk|G.] W^}cb߁-S7^ѭgωZ*yي< k䉕_gS'L^Y:~2)]~_`Ye_hXrg<۩:gΜe4߷j q.sX)a3ŋ#aVZhFjj*`KoۦL6PFuN&%QBy+JF 3af`m% 0 HڃM[&cƿGg:(G۠$_lOܙQDĮ^CFF޷䋄b2oڸ!}qvr]FN8 "WTXOWc*酇{ m @jըј={pr;;uPBa=҈f JeJ*Ɉbeu \WP}z'k2x`,k6NtmZy+vƆU*6KѦUsڵiEre 6o-:h 'Ndϙ8eCXѬҥK0 pUz3yXFo{ wo  `a aVB:Mn[b4Yx)~,d2v-ױK*֎󵿟/v$ҨAv3b gJzyrqskJv\ F#U||ջw|+eJ]ɓh\jլNP?.^BFF]F+~-[4qގ6r8 $80Auwgp~4ֹ>Ea<fYG/k~ǂno c)]׿6w =gvSxqʔ. @Xh0K~w%<<)w 1233n;Ս?NӍƷ+3%~Bu!kvĝ_n7er,.) VVV9F#V7+-_Ғ3gtwKDDDDDaPX#O:`"ҵWP|y7۞&N@syhHc'Lb?xU5w^KKK>LHOO')鴹MJXl8uBxyz`aaoHE]|y(e #^˔*Ь>O:}蹼7]!-XḤHW{[&yxͻȃFX\2xWHT36XM̪8$(0Q с[~呯٧Qt)^y F^2<וaC^YӬM˾XΧly+ΦNx(_c~bЯ7&M־l2voOPPN9?c&Oo:|SFue{S8y^lBթ['Qd`0mG"~1r^\/RVKRR!|x z8x0g|а~= k!ySyuΜ9 ai0пo/jլA]fSf/F歴jьT?8-tl߆ˌ|M,ZB>/@F 3af`m% (:#ү=}ƿ)0 JĝyzeLhI5ddd~}INHHP &)[Rg''ڵihĉ .~kaaaAt5?@^x`P Vڳ: '0/{xzӹS *Ka֏0#--o0_/TTxy(VV7|E JzѧWJzy[&gɲ/om?)4IIiߦ5 k^lllZrsuu}ǻ#o~sA9q$~):x Ŋfm?kلO=Ŕi3yotG%$80g!"""""ie Z5*?@歄u,#ܶh4pR6))X`d"-Zc*U2۵)))k?_HQwf!XYYM ر֔*y=lII@3Fdwww7_xW6F*>\v'O[Q\r ԪY@>] '&RV\W-S:[=W\5_;:: 6l.1NϽ-iADDDDDaPX#O|E`YdcV˚߱y=g>0yXJ.Eff&A8=gvSxqʔ. @Xh0K~w%<<)wGff&mIz[:bvvfמoBXH0}.d?su6]t+++FwB2F23StR[DDDDDD5ʯk,.]{|E ʗ7v{;iҸSmW~9},m bIl'ﰪnth׆/OWޞÆ=S3ܺ߂|v&,$A-Gw><1#bα}]䛊]eT~ymJLHDDDDWsu) 8 \@_> J NJU/x^AD kZ3m߹{l`T+8;{DDDDDDD)p-_ϕK.~8;{`0(&yt)\\\TDDDDDDD(-A)@ֈ kDDDDDDDD 5""""""""DaHFDDDDDDDQX#"""""""Rd>Y쩈( k@DĜSߧ)ɏPf| Lmo>u6|wz&ȣ/F(Uqp?DbE¬DDDDDD{3'Vn۠rו8uB>r ˙cCߵ{SGqQ<=գ Dp_L4;Ƞ|rzeޕ*{^ϜGj[u,^9G--E2_o=cƿ(^!3ezJX5-Xȅ aT1NdbƬ9v-.]ÝyM`40#*UqIP`^my('V~McggOP^Ǡ+W2_o&Lj.p!AF0oo׫ÞݽOUsdْ2LعwhЎi'r~޷пo/+Vc0x d2ʨ)S4K~Ks߃z&\.<ԩ'%kdYVv܊r5ܸZT_TKjwWs500(eXn;>7://OEEytkU ϫ܊r>|D5^5~o_=* 維imso|I5[]%IڸwN}i׍ym2TTQIqjk1-e+}שmBSa b20 +0Ǫ[DܫkDѯR[[] Zy; vj5ܸZGtםҽo}hnyt_G%I'~U/ /|.1#HY8w;קc}wkۭZӁfz-u Y:\:4fL?Nw`J"AJݦijo'ou?YVPRukL}~~$ifi^i|V:Ф5jǫ;_B.[{SC}D}`z>yd6o=v0(s~-mڸA\}UL KRkǷSXX=M]_w7ݠ[$I +LF)od$xn(Kԅ?xD mZvbM't.GHjDIqORSNK H4.BN4Iu72`&i:yYEka 35Yt###jniUwwN7‚͙3[U re;4r|fMsK;jޡLwit70E23 5=N7 /[(BEy:g*3rmۭy8̙3&tKS"ϬZ@Rh@恜4Pee_r[jL@fnk ka @!"5Y$4 IG_9G.R޺B]]:?ri(/t7LbaּʉwI1 X#\u`*yc5cǏ`rCHW5rV熭[[ZZ= <1LECCطAIC2,RHf̶!n )Rҧ1>[bJ hY&fC+A]B [ G#A@:MePRrKx ČW0R [gR byVTIENDB`kbackup-19.12.3/po/ca/kbackup.po000066400000000000000000000511071363501564300163020ustar00rootroot00000000000000# Translation of kbackup.po to Catalan # Copyright (C) 2018 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Antoni Bella Pérez , 2018. msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-11-26 16:39+0100\n" "Last-Translator: Antoni Bella Pérez \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Antoni Bella" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "antonibella5@yahoo.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "No hi ha res seleccionat per a la còpia de seguretat" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "El directori de destinació «%1» no és vàlid" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "El directori de destinació «%1» haurà de ser un directori al sistema de " "fitxers local i no un URL remot" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "El directori de destinació «%1» no existeix.\n" "\n" "Voleu crear-lo?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "No s'ha pogut crear el directori de destinació «%1».\n" "El sistema operatiu informa: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "El directori de destinació no existeix" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...s'està reduint la quantitat d'arxius guardats al màxim. %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...s'està suprimint %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "ha fallat en obtenir el llistat de directoris de l'objectiu. No es poden " "reduir els arxius guardats." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "No s'han pogut escriure les marques de temps de la còpia de seguretat al " "perfil %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Fitxers filtrats: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "S'ha completat la còpia de seguretat però s'han omès alguns fitxers!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- La còpia de seguretat s'ha completat amb èxit --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "S'ha completat la còpia de seguretat però s'han omès alguns fitxers.\n" "Què voleu fer ara?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "S'ha completat amb èxit la còpia de seguretat.\n" "Què voleu fer ara?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totals: Fitxers: %1, Mida: %2, Durada: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...s'ha interromput la còpia de seguretat!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "S'ha cancel·lat la còpia de seguretat" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...s'ha finalitzat la porció %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...s'està pujant l'arxiu %1 a %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Com procedirem amb la pujada?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Ha fallat la pujada" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Torna a intentar-ho" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Canvia la destinació" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "L'script «%1» no s'ha pogut iniciar." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "El suport està ple. Inseriu el suport núm. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "El fitxer «%1» no s'ha pogut obrir per a escriptura." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "El fitxer «%1» no s'ha pogut obrir per a escriptura.\n" "\n" "Voleu tornar a intentar-ho?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "No s'ha pogut escriure a l'arxiu. Potser el suport està ple." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "No s'ha pogut escriure a l'arxiu.\n" "El sistema operatiu informa: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...s'està saltant el directori filtrat %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut obtenir informació del directori: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "El directori «%1» no es pot llegir. Se saltarà." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "No s'ha pogut escriure el directori «%1» a l'arxiu.\n" "Potser el suport està ple." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut obtenir informació del fitxer: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "No s'ha pogut llegir des del fitxer «%1»\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "No s'ha pogut obrir el fitxer «%1» per a lectura." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...s'està arxivant el fitxer %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut llegir el fitxer: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut crear el fitxer temporal per a comprimir: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "No s'ha pogut escriure al fitxer temporal" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...s'està comprimint el fitxer %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "AVÍS:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Fitxer" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "A&rranjament" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Un programa fàcil d'usar per a les còpies de seguretat" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Desenvolupador" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Comença amb el perfil indicat." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Sscript que s'executa després de finalitzar una porció de l'arxiu." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Executa automàticament la còpia de seguretat amb el perfil indicat i " "finalitza quan s'ha completat." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Executa automàticament en segon pla (sense mostrar una finestra) la còpia de " "seguretat amb el perfil indicat i finalitza quan s'ha completat." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "En mode «autobg» serà detallat i imprimirà cada nom de fitxer durant la " "còpia de seguretat." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "En el mode «auto/autobg», es força que la còpia de seguretat que sigui " "completa, en lloc d'actuar sobre els ajustaments del perfil." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "No s'ha pogut obrir el perfil «%1» per a lectura: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Còpia de seguretat incremental" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Còpia de seguretat completa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "Sense límit" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Inicia la còpia de seguretat" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancel·la la còpia de seguretat" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Còpia de seguretat següent:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "EtiquetaDeText" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Força una còpia de seguretat completa" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Destinació" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Carpeta:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Suport:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Mida:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totals" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Fitxers:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Durada:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avisos:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progrés:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Perfil nou" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Carrega un perfil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Desa el perfil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Desa el perfil com a..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Ajustaments del perfil..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Habilita tots els missatges" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Acobla a la safata del sistema" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Mostra els fitxers ocults" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Hi ha una còpia de seguretat en progrés. La voleu interrompre?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Seleccioneu el perfil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Perfil del KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "L'obertura ha fallat" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "El perfil «%1» ja existeix.\n" "El voleu sobreescriure?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "El perfil ja existeix" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "No s'ha pogut obrir el perfil «%1» per a escriptura: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Fitxers: %1 Mida: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nom" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Mida" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Última modificació" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Obre amb" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Suprimeix el fitxer" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propietats..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "De veres voleu suprimir «%1»?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Suprimeix" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "No s'ha pogut suprimir el directori «%1»." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "No s'ha pogut suprimir el fitxer «%1».\n" "Motiu: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Una altra aplicació..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gestor de fitxers" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "A mida" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Ajustaments del perfil" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Desmarqueu-la si voleu evitar un diàleg de confirmació per a canviar el " "suport quan s'hagi finalitzat una porció" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "La destinació necessita un canvi de suport" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtre per excloure els camins:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Nombre de còpies de seguretat completes a mantenir" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Quantes còpies de seguretat completes s'han de mantenir al directori de " "destinació abans que se suprimeixin les anteriors" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Interval per a la còpia de seguretat completa" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Amb quina freqüència s'ha de realitzar una còpia de seguretat completa, en " "lloc d'una incremental" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Cada dia" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dies" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefix de l'arxiu:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Defineix els comodins per als noms dels fitxers que s'ignoraran en fer una " "còpia de seguretat, separats per un espai. P. ex: «*.ogg *.wav»" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Mida màxima de l'arxiu:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtre per excloure el nom de fitxer:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Defineix una llista de patrons de camí absoluts que " "s'usen per a filtrar directoris complets,
p. ex., /home/*/.mozilla/*/" "Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Desmarqueu-la si voleu evitar la compressió dels fitxers" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprimeix els fitxers" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "Còpia de seguretat" kbackup-19.12.3/po/ca@valencia/000077500000000000000000000000001363501564300161215ustar00rootroot00000000000000kbackup-19.12.3/po/ca@valencia/kbackup.po000066400000000000000000000512551363501564300201110ustar00rootroot00000000000000# Translation of kbackup.po to Catalan (Valencian) # Copyright (C) 2018 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Antoni Bella Pérez , 2018. # empar , 2019. msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2019-09-16 11:20+0200\n" "Last-Translator: empar \n" "Language-Team: Catalan \n" "Language: ca@valencia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 19.04.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Antoni Bella" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "antonibella5@yahoo.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "No hi ha res seleccionat per a la còpia de seguretat" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "El directori de destinació «%1» no és vàlid" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "El directori de destinació «%1» ha de ser un directori del sistema de " "fitxers locals i no un URL remot" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "El directori de destinació «%1» no existeix.\n" "\n" "Voleu crear-lo?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "No s'ha pogut crear el directori de destinació «%1».\n" "El sistema operatiu informa: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "El directori de destinació no existeix" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...s'està reduint la quantitat d'arxius guardats al màxim. %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...s'està suprimint %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "no s'ha pogut obtindre el llistat de directoris de l'objectiu. No es poden " "reduir els arxius guardats." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "No s'han pogut escriure les marques de temps de la còpia de seguretat en el " "perfil %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Fitxers filtrats: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "S'ha completat la còpia de seguretat però s'han omés alguns fitxers!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- La còpia de seguretat s'ha completat amb èxit --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "S'ha completat la còpia de seguretat però s'han omés alguns fitxers.\n" "Què voleu fer ara?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "S'ha completat amb èxit la còpia de seguretat.\n" "Què voleu fer ara?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totals: Fitxers: %1, Mida: %2, Durada: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...s'ha interromput la còpia de seguretat." #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "S'ha cancel·lat la còpia de seguretat" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...s'ha finalitzat la porció %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...s'està pujant l'arxiu %1 a %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Com s'ha de procedir amb la pujada?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Ha fallat la pujada" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Torna a intentar-ho" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Canvia la destinació" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "L'script «%1» no s'ha pogut iniciar." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "El suport està ple. Inseriu el suport núm. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "El fitxer «%1» no s'ha pogut obrir per a escriptura." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "El fitxer «%1» no s'ha pogut obrir per a escriptura.\n" "\n" "Voleu tornar a intentar-ho?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "No s'ha pogut escriure en l'arxiu. Potser el suport està ple." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "No s'ha pogut escriure en l'arxiu.\n" "El sistema operatiu informa: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...s'està saltant el directori filtrat %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut obtindre informació del directori: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "El directori «%1» no es pot llegir. Se saltarà." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "No s'ha pogut escriure el directori «%1» en l'arxiu.\n" "Potser el suport està ple." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut obtindre informació del fitxer: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "No s'ha pogut llegir des del fitxer «%1»\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "No s'ha pogut obrir el fitxer «%1» per a lectura." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...s'està arxivant el fitxer %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut llegir el fitxer: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "No s'ha pogut crear el fitxer temporal per a comprimir: %1\n" "El sistema operatiu informa: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "No s'ha pogut escriure al fitxer temporal" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...s'està comprimint el fitxer %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "AVÍS:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Fitxer" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Configuració" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Un programa fàcil d'usar per a les còpies de seguretat" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Desenvolupador" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Comença amb el perfil indicat." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Sscript que s'executa després de finalitzar una porció de l'arxiu." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Executa automàticament la còpia de seguretat amb el perfil indicat i " "finalitza quan s'haja completat." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Executa automàticament en segon pla (sense mostrar una finestra) la còpia de " "seguretat amb el perfil indicat i finalitza quan s'haja completat." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "En mode «autobg» serà detallat i imprimirà cada nom de fitxer durant la " "còpia de seguretat." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "En el mode «auto/autobg», es força que la còpia de seguretat siga completa, " "en lloc d'actuar segons els paràmetres del perfil." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "No s'ha pogut obrir el perfil «%1» per a lectura: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Còpia de seguretat incremental" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Còpia de seguretat completa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "Sense límit" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Inicia la còpia de seguretat" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancel·la la còpia de seguretat" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Còpia de seguretat següent:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "EtiquetaDeText" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Força una còpia de seguretat completa" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Destinació" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Carpeta:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Suport:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Mida:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totals" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Fitxers:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Duració:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avisos:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progrés:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Perfil nou" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Carrega un perfil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Guarda el perfil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Anomena i guarda el perfil..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Paràmetres del perfil..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Habilita tots els missatges" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Acobla a la safata del sistema" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Mostra els fitxers ocults" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Hi ha una còpia de seguretat en progrés. Voleu interrompre-la?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Seleccioneu el perfil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Perfil de KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "L'obertura ha fallat" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "El perfil «%1» ja existeix.\n" "Voleu sobreescriure'l?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "El perfil ja existeix" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "No s'ha pogut obrir el perfil «%1» per a escriptura: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Fitxers: %1 Mida: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nom" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Mida" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Última modificació" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Obri amb" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Suprimeix el fitxer" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propietats..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Segur que voleu suprimir «%1»?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Suprimeix" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "No s'ha pogut suprimir el directori «%1»." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "No s'ha pogut suprimir el fitxer «%1».\n" "Motiu: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Una altra aplicació..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gestor de fitxers" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personalitzat" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Paràmetres del perfil" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Desmarqueu-la si voleu evitar un diàleg de confirmació per a canviar el " "suport quan s'haja finalitzat una porció" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "La destinació necessita un canvi de suport" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtre d'exclusió de camins:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Nombre de còpies de seguretat completes que s'han de mantindre" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "La quantitat de còpies de seguretat completes que s'han de mantindre en el " "directori de destinació abans que se suprimisquen les anteriors" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Interval per a la còpia de seguretat completa" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Freqüència amb què s'ha de realitzar una còpia de seguretat completa, en " "lloc d'una incremental" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Cada dia" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dies" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefix de l'arxiu:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Defineix els comodins per als noms dels fitxers que s'ignoraran en fer una " "còpia de seguretat, separats per un espai. P. ex: «*.ogg *.wav»" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Mida màxima de l'arxiu:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtre d'exclusió de noms de fitxers:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Defineix una llista de patrons de camí absoluts que " "s'usen per a filtrar directoris complets,
p. ex., /home/*/.mozilla/*/" "Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Desmarqueu-la si voleu evitar la compressió dels fitxers" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprimeix els fitxers" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "Còpia de seguretat" kbackup-19.12.3/po/cs/000077500000000000000000000000001363501564300143405ustar00rootroot00000000000000kbackup-19.12.3/po/cs/kbackup.po000066400000000000000000000464541363501564300163350ustar00rootroot00000000000000# translation of kbackup.po to czech # This file is put in the public domain. # # Pavel Fric, 2010. # Pavel Fric , 2011. # Vit Pelcak , 2018. msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-12-06 10:46+0100\n" "Last-Translator: Vit Pelcak \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 2.0\n" "X-Language: de_AT\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Pavel Fric" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "fripohled.blogspot.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nic nebylo vybráno pro zálohu" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Cílový adresář '%1' není platný" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Cílový adresář '%1' musí být místní adresář souborového systému a ne " "vzdálená adresa (URL)" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Cílový adresář '%1' neexistuje.\n" "\n" "Má se vytvořit?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Nepodařilo se vytvořit cílový adresář '%1'.\n" "Operační systém hlásí: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Cílový adresář neexistuje" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...zmenšuje se počet udržovaných záloh na nejvíce %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...maže se %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "Vypsání obsahu cílového adresáře se nezdařilo. Počet udržovaných záloh nelze " "zmenšit." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Nepodařilo se zapsat časová razítka záloh do profilu %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Filtrované soubory: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!!! Záloha dat byla dokončena, ale byly přeskočeny některé soubory !!!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Záloha dat byla úspěšně dokončena --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Záloha dat byla dokončena, ale některé soubory byly přeskočeny.\n" "Co chcete dělat nyní?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Záloha dat byla úspěšně ukončena.\n" "Co chcete dělat nyní?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Součty: Soubory: %1, Velikost: %2, Doba: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Záloha dat byla zrušena!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Záloha dat byla zrušena" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...archiv %1 dokončen" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...kopíruje se archiv %1 do %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Jak se má nyní s kopírováním pokračovat?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Odeslání se nezdařilo" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Zkusit ještě jednou" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Změnit cíl" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Skript '%1' se nepodařilo spustit." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Nosič je plný. Vložte, prosím, do mechaniky nosič číslo %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Soubor '%1' se nepodařilo otevřít pro zápis." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Soubor '%1' se nepodařilo otevřít pro zápis.\n" "\n" "Chcete to zkusit ještě jednou?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Nepodařilo zapisovat do archivu. Je možné, že nosič je plný." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Nepodařilo se zapisovat do archivu.\n" "Operační systém hlásí: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Nepodařilo se přečíst žádnou informaci o adresáři: %1.\n" "Operační systém hlásí: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Adresář '%1' není čitelný. Přeskakuje se." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Adresář '%1' se nepodařilo zapsat do archivu.\n" "Je možné, že nosič je plný." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Nepodařilo se přečíst žádnou informaci o souboru: %1\n" "Operační systém hlásí: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Nepodařilo se číst ze souboru: '%1'\n" "Operační systém hlásí: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Soubor '%1' se nepodařilo otevřít pro čtení." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archivuje se soubor %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Nepodařilo se přečíst soubor: %1\n" "Operační systém hlásí: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Nepodařilo se vytvořit dočasný soubor pro stlačení: %1\n" "Operační systém hlásí: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Nepodařilo se zapisovat do dočasného souboru" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...stlačuje se soubor %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "VAROVÁNÍ:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Soubor" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Nastavení" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Jednoduše obsluhovatelný zálohovací program" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Vývojář" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Spustit s daným profilem" #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Profil '%1' se nepodařilo otevřít pro čtení: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Přírůstkové zálohování" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Úplné zálohování" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "neomezeně" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Spustit zálohování" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Zastavit zálohování" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Další zálohování" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Textový popisek" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Vynutit úplné zálohování" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Cíl" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Složka:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Nosič:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Velikost:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Součty" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Soubory:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Doba:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Varování:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Postup:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nový profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Načíst profil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Uložit profil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Uložit profil jako..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Nastavení profilu..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Povolit všechny zprávy" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Ukotvit v oznamovací oblasti panelu" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Zobrazit skryté soubory" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Právě probíhá jedno zálohování. Chcete je zrušit?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Vybrat profil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Profil KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Otevření se nezdařilo" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Profil '%1' již existuje.\n" "Chcete jej přepsat?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profil existuje" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Profil '%1' se nepodařilo otevřít pro zápis: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Soubory: %1 Velikost: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Název" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Velikost" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Naposledy změněno" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Otevřít pomocí" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Smazat soubor" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Vlastnosti..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Smazat" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "" #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Jiná aplikace..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Správce souborů" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4,7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8,5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9,4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17,1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "vlastní" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Nastavení profilu" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Vypněte, pokud se chcete vyhnout potvrzovacímu dialogu při výměně nosiče, " "když byla dokončena jedna část archivu." #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Cíl potřebuje, aby byl nosič vyměněn" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Počet plných udržovaných záloh" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Kolik plných záloh má být udržováno v cílovém adresáři, předtím než budou " "starší z nich smazány" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Interval úplného zálohování" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "Jak často se má udělat úplná záloha namísto přírůstkové" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Každý den" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dny" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Předpona archivu:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Stanovuje zástupné symboly pro souborové názvy, jež budou při záloze " "přehlíženy, oddělené mezerou. Například: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Největší dílčí velikost archivu:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Vylučovací filtr souborových názvů:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Vypněte, pokud se úplně chcete vyhnout stlačení souborů" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Stlačit soubory" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "záloha" kbackup-19.12.3/po/da/000077500000000000000000000000001363501564300143175ustar00rootroot00000000000000kbackup-19.12.3/po/da/kbackup.po000066400000000000000000000400131363501564300162750ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Martin Schlander , 2018. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-07-18 22:27+0100\n" "Last-Translator: Martin Schlander \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Martin Schlander" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "mschlander@opensuse.org" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...sletter %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Upload mislykkedes" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Prøv igen" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Ændr mål" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "" #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "" #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "" #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "" #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Kunne ikke åbne filen \"%1\" til læsning." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "ADVARSEL:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Fil" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Indstillinger" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Udvikler" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "" #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Fuld backup" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "ubegrænset" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Start backup" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Annullér backup" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Næste backup" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "TekstEtiket" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Mål" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Mappe:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Mellem:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Størrelse:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "I alt" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Filer:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Varighed:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Advarsler:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Fremgang:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Ny profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Indlæs profil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Gem profil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Gem profil som..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profilindstillinger..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Aktivér alle beskeder" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Dok i statusområde" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Vis skjulte filer" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Vælg profil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Åbning mislykkedes" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profilen findes allerede" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Navn" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Størrelse" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Senest ændret" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Åbn med" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Slet fil" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Egenskaber..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Vil du virkelig slette \"%1\"?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Slet" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "" #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Andet program..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Filhåndtering" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB cd" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB cd" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4,7 GB dvd" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8,5 GB dvd" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9,4 GB dvd" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17,1 GB dvd" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "brugerdefineret" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profilindstillinger" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, fuzzy, kde-format #| msgid "Number of backups to keep" msgid "Number of full backups to keep" msgstr "Antal backups der skal beholdes" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Hver dag" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dage" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "backup" kbackup-19.12.3/po/de/000077500000000000000000000000001363501564300143235ustar00rootroot00000000000000kbackup-19.12.3/po/de/docs/000077500000000000000000000000001363501564300152535ustar00rootroot00000000000000kbackup-19.12.3/po/de/docs/kbackup/000077500000000000000000000000001363501564300166735ustar00rootroot00000000000000kbackup-19.12.3/po/de/docs/kbackup/index.docbook000066400000000000000000000517611363501564300213560ustar00rootroot00000000000000 KBackup" > ]> Das Handbuch zu &kbackup; Martin Koller kollix@aon.at MartinKoller
kollix@aon.at
Übersetzung
2006 - 2017 Martin Koller &FDLNotice; 2018-01-05 Anwendungen 18.04 &kbackup; ist ein Programm welches Datensicherung in einer benutzerfreundlichen Weise ermöglicht. KDE system KBackup Sicherung Archivierung Archiv ZIP gzip bzip2 xz
Einführung &kbackup; ist ein Programm zur Datensicherung von beliebigen Dateien und Ordnern, wobei es einen einfach zu bedienenden Ordnerbaum zur Auswahl zur Verfügung stellt. Gewählte Einstellungen können in sogenannten Profil-Dateien gespeichert werden, wobei ein Profil eine einfache Textdatei ist, welche die Auswahl für Ordner und Dateien enthält, welche für die Sicherung ein- oder auszuschließen sind. Ebenso enthält es die Definition, wohin die Sicherung geschrieben werden soll. Das Ziel einer Sicherung kann entweder ein lokaler Ordner sein (⪚ ein lokal eingebundenes Gerät wie ein ZIP-Laufwerk, USB-Stick, &etc;) aber es kann auch ein anderer Rechner - unter Angabe einer &URL; (⪚ smb://rechner/ziel) - sein, um die Daten auf einen zentralen Server zu sichern. Das Programm kann auch eine automatische Sicherung ohne grafische Benutzeroberfläche durchführen. Man erstellt einfach ein Profil, welches &kbackup; sagt, was gesichert werden soll, wenn es im nicht interaktiven Modus gestartet wird, ⪚ aus einem cron-job heraus. Das Programm wurde so entworfen, dass es möglichst einfach in der Bedienung ist und auch Benutzern mit wenig Erfahrung mit Rechnern bedient werden kann. Das Archivierungsformat ist das wohl bekannte Tar-Format, wobei die Daten komprimiert gespeichert werden (xz, bzip2 oder gzip) können. Die aktuelle Implementierung enthält nur den Sicherungsschritt. Um die Daten wieder in das System zurück zuspielen muss man derzeit ⪚ &dolphin; benutzen, um eine TAR-Sicherungsdatei zu öffnen, und dann Teile daraus ⪚ via Ziehen und Ablegen in das System zurückbringen. Das ist einer der Vorteile der Verwendung des weit verbreiteten TAR-Dateiformates. Wenn die Dateien komprimiert wurden, so kann man alle vom aktuellen Ordner aus rekursiv absteigend mit folgendem Befehl wieder entpacken: find . -name \*bz2 -print0 | xargs -0 bunzip2 Alternativ können Sie mit &ark; die Sicherungsdatei öffnen und die komplette Sicherung oder nur einzelne Datei entpacken. Verwendung von &kbackup; Alles was Sie tun müssen, ist die Auswahl der Ordner, die gesichert werden sollen. Dies wird erreicht, indem man in der Baumansicht auf der linken Seite des Hauptfensters die Ordner anwählt. Wenn Sie einen Ordner wählen, wird &kbackup; automatisch alle Dateien und Unterordner darin sichern. Wenn Sie Teile in einem ausgewählten Ordner von der Sicherung ausnehmen wollen, müssen Sie einfach die entsprechenden Ordner oder Dateien darin abwählen. Generell bedeutet das: Ein ausgewählter Ordner wird alle Dateien und Unterordner darin sichern, außer den abgewählten Einträgen. Das bedeutet auch, wann immer Sie ein Profil (siehe weiter unten) wiederverwenden, werden auch alle neuen Ordner und Dateien, die in der Zwischenzeit dazugekommen sind, ebenfalls gesichert. Hier ist ein Bildschirmfoto von &kbackup; Bildschirmfoto des Hauptfensters Verwendung von Profilen Um eine Auswahl für spätere Verwendung zu behalten, wird diese einfach in ein &kbackup;-Profil gespeichert. Verwenden Sie dafür das Menü Datei und wählen Sie Profil speichern. Um eine Auswahl wieder zu laden, verwenden Sie den Menüeintrag Datei Profil laden. &kbackup; speichert in einem Profil die Auswahl für alle ein- und ausgeschlossenen Dateien und Ordner, das Ziel für die Sicherung, das gewählte Archiv-Präfix, das gewählte Größenlimit für einen Archivteil und anderes. Wenn Sie sich die Aufgabe der täglichen Datensicherung einfach machen wollen, speichern Sie ihre Auswahl in einem Profil (eine Datei mit der Endung .kbp) und geben dieses Profil beim Start von &kbackup; als Argument mit an. ⪚: kbackup meineDaten.kbp Hinweis: Sie können auch eine Verknüpfung zu einer .kbp-Datei auf dem Arbeitsfläche machen, um gleich direkt &kbackup; mit dessen Einstellungen zu starten, da .kbp als bekannter Dateityp registriert ist. Archiv aufteilen Da ein Medium normalerweise nur eine begrenzte Kapazität hat wie ⪚ eine 100MB ZIP-Diskette, teilt &kbackup; die Sicherung in einzelne Teile auf. Jeder Archivteil hat seinen eigenen Dateinamen, welcher wie folgt aussieht: backup_2006.08.26-13.04.44_1.tar Der Name enthält das Datum und die Uhrzeit der Sicherung (welche für jeden Teil der Sicherung gleich bleibt), und eine angehängte Teil-Nummer (_1 in diesem Beispiel). Über das Menü DateiProfil-Einstellungen kann ein anderes Präfix als Sicherung für die Archive eingestellt werden. Um unabhängig von der verfügbaren Kapazität des Zielmediums eine Sicherung in mehrere Archivteile einer maximalen Größe trennen zu können, kann man im Dialog Profil-Einstellungen eine Maximalgröße pro Archivteil festlegen. Dies ergibt ⪚ dann Sinn, wenn man eine Sicherung für das nachträgliche Brennen auf eine &CD;/&DVD; vorbereiten will. Wenn Sie die Größe eines Archivteils explizit begrenzen, dann erscheint die verfügbare Größe mit der Markierung (*) im Hauptfenster. Auch wenn eine unbegrenzte Größe eingestellt wurde, gibt es zusätzliche Einschränkungen für die Größe eines Archivteils: begrenzt durch die verfügbare Kapazität im Zielordner, wenn direkt in einen lokalen Ordner gesichert wird begrenzt durch den Ordner /tmp, wenn die Sicherung durch Angabe einer &URL; auf einen entfernten Rechner kopiert wird, da eine temporäre Datei erzeugt wird, die danach zum Zielrechner übertragen wird. In den Profil-Einstellungen kann auch festgelegt werden, wie viele komplette Sicherungen maximal in dem Zielordner behalten werden sollen, bevor ältere Sicherungen automatisch gelöscht werden. Wird ⪚ ein Wert von 3 eingestellt, wird &kbackup; die letzten 3 Sicherungen behalten und alle älteren Sicherungen werden gelöscht. Inkrementelle Sicherung Unter inkrementeller Sicherung versteht man, dass nicht immer alle Dateien gesichert werden, sondern nur jene, die sich seit der letzten Sicherung geändert haben. Dies hat den großen Vorteil, dass die inkrementellen Sicherungen üblicherweise wesentlich weniger Dateien beinhalten und der Sicherungsvorgang daher wesentlich schneller beendet ist. Die Vorgehensweise ist also folgende: Im Profil definiert man ein Intervall in Tagen für eine Komplett-Sicherung, ⪚ 5 Tage. Das bedeutet, &kbackup; sichert alle 5 Tage alle definierten Dateien. An allen Tagen dazwischen - egal wie oft Sie &kbackup; mit diesem Profil starten - werden nur jene Dateien gesichert, die sich seit der letzten Sicherung geändert haben. &kbackup; schreibt dafür die Sicherungs-Zeitstempel in ihr Profil und weiß somit, was das nächste mal zu tun ist. Die Sicherungsdateien, die hierbei entstehen beinhalten den Text _inc wie ⪚: backup_2010.06.14-18.50.26_1_inc.tar Die Dateien einer Komplett-Sicherung haben kein Kürzel _inc im Dateinamen wie ⪚: backup_2010.06.13-20.58.14_1.tar Wichtig ist, dass bei einer Wiederherstellung einer Sicherung auf den Rechner nun alle _inc Dateien und zuletzt auch die letzte Komplett-Sicherung durchsucht werden müssen, um den letzten Stand einer Datei zu finden. Genau das ist auch der Nachteil von inkrementellen Sicherungen (kein Vorteil ohne Nachteil ;-) ) Will man trotz definiertem inkrementellen Zyklus im Profil vorzeitig eine Komplett-Sicherung durchführen, so kann man dies in der Benutzeroberfläche über die Option Komplett-Sicherung erzwingen starten. Startet man &kbackup; über die Befehlszeile, so kann dies mit der Option - erledigt werden. Eine erzwungene Komplett-Sicherung startet das Sicherungsintervall neu, &ie; &kbackup; rechnet den Komplett-Sicherungszyklus immer von der zuletzt durchgeführten Komplett-Sicherung. Archiv-Komprimierung &kbackup; komprimiert die gesicherten Dateien, wenn dies im Profil eingestellt wurde. Abhängig von der Verfügbarkeit auf ihrem System wird entweder xz, bzip2 oder gzip als Komprimierung verwendet. &kbackup; wird jede einzelne Datei komprimieren und mit einer angehängten Dateierweiterung .xz, (.bzip2 oder .gz) im nicht komprimierten .tar-Archiv speichern. Wenn Sie als Ziel einen lokalen Ordner gewählt haben (⪚ ihre externe Festplatte, ZIP-Laufwerk, &etc;) - &ie; Sie haben keine &URL; angegeben - kann &kbackup; die gesamte Sicherung aufgrund der beschränkten Medienkapazität in einzelne Teilarchive trennen. ⪚: backup_2006.08.26-13.04.44_1.tar backup_2006.08.26-13.04.44_2.tar Automatische Sicherung Wenn Sie den Vorgang der Sicherung automatisieren möchten, bietet &kbackup; hier verschiedene Befehlszeilenoptionen an: Wird &kbackup; mit dieser Option und einem .kbp-Profil gestartet, so wird das Programm starten, das angegebene Profil laden, die Sicherung durchführen und sich nach Fertigstellung beenden. All das wird mit einer sichtbaren &kbackup; Benutzeroberfläche durchgeführt. Wird &kbackup; mit dieser Option und einem .kbp-Profil gestartet, so wird der selbe Ablauf durchgeführt wie mit der Option , jedoch wird keine grafische Benutzeroberfläche angezeigt. Daher die Endung bg, was für Background (Hintergrund) steht - alle Operationen werden also im Hintergrund ausgeführt, was damit die passende Option für eine Sicherung darstellt, die ⪚ aus einem cron-job gestartet wurde. Mit der Option werden die Ausgaben von &kbackup;, welche den Fortschritt anzeigen, auf die Standard-Fehlerausgabe (stderr) geschrieben. Die Standardeinstellung enthält ein paar wichtige Angaben zum Fortschritt und eine Zusammenfassung am Schluss. Wird die Option noch zusätzlich angegeben, so wird auch der Name jeder einzelnen Datei, die gerade gesichert wird, ausgegeben. Befehlsreferenz Das &kbackup;-Hauptfenster Das Menü Datei Datei Zuletzt geöffnete Dateien Zeigt ein Untermenü mit den zuletzt verwendeten Profilen. Datei Neues Profil Löscht die Auswahl und das Ziel-Eingabefeld, um ein neues Profil definieren zu können. Datei Profil laden Lädt ein Profil. Datei Profil speichern Speichert alle Einstellungen in eine Profildatei. Datei Profil speichern unter ... Speichert alle Einstellungen in eine Profildatei mit einem neuen Namen. Datei Profil-Einstellungen In den Profil-Einstellungen kann man definieren, ob eine Archivdatei mit dem Namen Sicherung beginnen soll, oder ob ein alternativer Name verwendet werden soll. Ebenso kann die Größe eines Archivteils begrenzt werden werden. Weitere Informationen finden Sie im Kapitel Archiv aufteilen. Diese Einstellungen werden mit in die Profildatei gespeichert. &Ctrl;Q Datei Beenden Beendet &kbackup; Das Menü Einstellungen Einstellungen Im Systembereich der Kontrollleiste andocken Wird diese Option eingeschaltet, wird im Systembereich ein Symbol angezeigt, welches den Status einer Sicherung anzeigt. Eine Animation bedeutet, dass gerade eine Sicherung läuft. Ansonsten wird ein statisches Symbol angezeigt. Wenn diese Option gewählt wurde, wird &kbackup; mit dem Schließen des Hauptfensters nicht beendet. Das Programm bleibt so lange verfügbar, bis es explizit durch die Aktion Beenden geschlossen. Über das Kontextmenü am Symbol im Systembereich kann eine Sicherung - genau wie im Hauptfenster - gestartet oder abgebrochen werden. Im Kurzinfo des Symbols wird der Sicherungsstatus angezeigt (Anzahl schon gesicherter Dateien, Summe des Sicherungsvolumens und die zuletzt gesicherte Datei). Einstellungen Alle Meldungen wieder anzeigen Die Aktivierung dieser Option löscht alle intern gespeicherten Einstellungen aller Dialoge Diese Nachfrage nicht mehr anzeigen, die &kbackup; anzeigt. Einstellungen Versteckte Dateien anzeigen Schaltet die Anzeige von versteckten Dateien (Dateien mit einem Punkt am Anfang des Namens) in der Baumansicht ein oder aus. Aktivieren Sie diese Anzeige, um nur einzelne versteckte Dateien von der Sicherung auszuschließen. Möchten Sie alle Dateien von einer Sicherung ausschließen, verwenden Sie einen Filter für Dateinamen in des Profil-Einstellungen. Das Menü Hilfe &kbackup; benutzt die bekannten &kde;-Einträge im Menü Hilfe, weitere Informationen dazu finden Sie im Abschnitt über das Menü Hilfe der &kde;-Grundlagen. Entwickler-Leitfaden zu &kbackup; &kbackup; kann durch Shell-Skripte oder andere ausführbaren Programme erweitert werden, welche an bestimmten Stellen während der Datensicherung gestartet werden. Dadurch soll es ermöglicht werden, Laufwerke einzubinden, Medien auszuwerfen, oder die erzeugten Archivdateien anderweitig zu verarbeiten. Das Skript, welches ausgeführt werden soll, muss mit dem Befehlszeilenargument angegeben werden. Hier ist ein Beispiel-Skript: sliceScript.sh #!/bin/sh mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) if [ "$mountPoint" != "" ] then mount /media/zip rm -f /media/zip/backup_2*.tar* fi ;; "slice_closed" ) ;; "slice_finished" ) if [ "$mountPoint" != "" ] then umount /media/zip eject /media/zip fi ;; esac Das Skript wird immer mit vier Befehlszeilenargumenten aufgerufen: Aufrufart Dateiname des Archivs oder Archivteils Zielordner/&URL; Einhängepunkt (mountpoint) des Zielordners, wenn es ein lokaler Ordner ist, ansonsten eine leere Zeichenkette. Es gibt drei verschiedene Aufrufarten: slice_init wird aufgerufen, bevor ein neuer Archivteil auf der Festplatte erzeugt wird slice_closed wird aufgerufen, nachdem ein Archivteil erzeugt wurde, aber bevor dieser in den Zielordner kopiert wurde Das kann dazu genutzt werden, um ⪚ den Archivteil noch zusätzlich an einem anderen Ort zu speichern. Wurde als Ziel ein zentraler Server angegeben (mit einer Ziel-&URL;), aber Sie wollen die letzte Sicherung auch noch auf ihrer lokalen Festplatte zur Verfügung haben. slice_finished wird aufgerufen, nachdem ein Archivteil erfolgreich in den Zielordner kopiert wurde Mitwirkende und Lizenz &kbackup; Programm Copyright © 2006 - 2010 Martin Koller kollix@aon.at Dokumentation Copyright © 2006 - 2010 Martin Koller Übersetzung Martin Kollerkollix@aon.at &underFDL; &underGPL; &documentation.index;
kbackup-19.12.3/po/de/kbackup.po000066400000000000000000000562611363501564300163150ustar00rootroot00000000000000# translation of de.po to Deutsch # translation of kbackup.po to # This file is put in the public domain. # # Martin Koller , 2006 - 2010. # Burkhard Lück , 2018. # Frederik Schwarzer , 2018. msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-11-26 12:05+0100\n" "Last-Translator: Burkhard Lück \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 2.0\n" "X-Language: de_AT\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Source-Language: C\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Martin Koller" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kollix@aon.at" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nichts zum Sichern ausgewählt" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Der Zielordner „%1“ ist ungültig" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Der Zielordner „%1“ muss ein Ordner im lokalen Dateisystem sein und keine " "entfernte URL" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Der Zielordner „%1“ existiert nicht.\n" "\n" "Möchten Sie ihn erstellen?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Zielordner „%1“ kann nicht erstellt werden.\n" "Meldung des Betriebssystems: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Der Zielordner existiert nicht" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "" "... die Anzahl der zu erhaltenden Sicherungen wird auf max. %1 reduziert" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "... %1 wird gelöscht" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "Auflisten des Zielordners ist fehlgeschlagen. Die Anzahl der zu erhaltenden " "Sicherungen kann nicht verringert werden." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Sicherungs-Zeitstempel kann nicht ins Profil %1 geschrieben werden: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Gefilterte Dateien: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Sicherung abgeschlossen aber Dateien wurden übersprungen !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Sicherung erfolgreich abgeschlossen --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Die Sicherung ist abgeschlossen, aber Dateien wurden übersprungen.\n" "Was möchten Sie jetzt tun?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Die Sicherung wurde erfolgreich beendet.\n" "Was möchten Sie jetzt tun?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Summen: Dateien: %1, Größe: %2, Dauer: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "... Sicherung abgebrochen!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Sicherung abgebrochen" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "... Archiv %1 abgeschlossen" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "... Archiv %1 wird zu %2 kopiert" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Wie möchten Sie mit dem Kopieren weitermachen?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Übertragung fehlgeschlagen" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Nochmals versuchen" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Ziel ändern" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Das Skript „%1“ kann nicht gestartet werden." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Das Medium ist voll. Bitte geben Sie das Medium Nr. %1 in das Laufwerk" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Die Datei „%1“ kann nicht zum Schreiben geöffnet werden." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Die Datei „%1“ kann nicht zum Schreiben geöffnet werden.\n" "\n" "Möchten Sie es nochmals versuchen?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "" "Es kann nicht in das Archiv geschrieben werden. Vielleicht ist das Medium " "voll." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Es kann nicht in das Archiv geschrieben werden.\n" "Meldung des Betriebssystems: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "... gefilterter Ordner %1 wird übersprungen" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Über den Ordner „%1“ können keine Informationen gelesen werden.\n" "Meldung des Betriebssystems: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Der Ordner „%1“ ist nicht lesbar und wird übersprungen." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Der Ordner „%1“ kann nicht in das Archiv geschrieben werden.\n" " Vielleicht ist das Medium voll." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Über die Datei „%1“ können keine Informationen gelesen werden.\n" "Meldung des Betriebssystems: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Aus Datei „%1“ kann nicht gelesen werden.\n" "Meldung des Betriebssystems: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Die Datei „%1“ kann nicht zum Lesen geöffnet werden." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "... Datei %1 wird archiviert" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Die Datei „%1“ kann nicht gelesen werden.\n" "Meldung des Betriebssystems: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Für die Kompression kann keine temporäre Datei %1 erzeugt werden\n" "Meldung des Betriebssystems: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "In die temporäre Datei nicht geschrieben werden" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "... Datei %1 wird komprimiert" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "Warnung:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Datei" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Einstellungen" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Ein einfach zu bedienendes Sicherungs-Programm" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "Copyright © 2006-2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Entwickler" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Mit angegebenem Profil starten." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Skript, welches nach der Fertigstellung eines Archivs gestartet wird." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Automatischer Start der Sicherung mit angegebenem Profil und Programmende " "nach fertiger Sicherung." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Automatischer Start der Sicherung im Hintergrund (ohne Fenster anzuzeigen) " "mit angegebenem Profil und Programmende nach fertiger Sicherung." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "Jeden einzelnen Dateinamen während der Sicherung im Modus „autobg“ anzeigen." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Im Modus „auto/autobg“ eine Komplett-Sicherung erzwingen anstatt die Profil-" "Einstellung zu berücksichtigen." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Das Profil „%1“ kann nicht geladen werden: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Inkrementelle Sicherung" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Komplett-Sicherung" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "unbegrenzt" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Sicherung starten" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Sicherung abbrechen" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Nächste Sicherung:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "TextLabel" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Komplett-Sicherung erzwingen" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Ziel" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Ordner:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Medium:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Größe:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Summen" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Dateien:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Dauer:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Warnungen:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Fortschritt:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Neues Profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Profil laden ..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Profil speichern" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Profil speichern unter ..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profil-Einstellungen ..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Alle Meldungen wieder anzeigen" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Im Systemabschnitt der Kontrollleiste andocken" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Versteckte Dateien anzeigen" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Eine Sicherung läuft gerade. Möchten Sie sie abbrechen?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Profil auswählen" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup-Profil (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Öffnen fehlgeschlagen" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Das Profil „%1“ existiert bereits.\n" "Möchten Sie es überschreiben?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profil existiert" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Das Profil „%1“ lässt sich nicht zum Schreiben öffnen: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Dateien: %1 Größe: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Name" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Größe" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Zuletzt Geändert" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Öffnen mit" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Datei löschen" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Eigenschaften ..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Möchten Sie „%1“ wirklich löschen?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Löschen" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Der Ordner „%1“ kann nicht gelöscht werden." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Die Datei „%1“ kann nicht gelöscht werden.\n" "Grund: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Andere Anwendung ..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Dateiverwaltung" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4,7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8,5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9,4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17,1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "Benutzerdefiniert" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profil-Einstellungen ..." #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Deaktivieren, um den Bestätigungsdialog zum Medienwechsel zu vermeiden, wenn " "ein Archivteil abgeschlossen wurde" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Ziel benötigt Medienwechsel" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filter für Pfade zu auszuschließenden Ordnern:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Anzahl der Komplett-Sicherungen, die behalten werden" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Wie viele Komplett-Sicherungen sollen im Zielordner behalten werden, bevor " "ältere gelöscht werden" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervall für Komplett-Sicherung" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Wie oft soll eine Komplett-Sicherung anstatt einer inkrementellen Sicherung " "durchgeführt werden" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Jeden Tag" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " Tage" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Archiv-Präfix:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Definiert Muster, getrennt durch je ein Leerzeichen, für Dateinamen, die bei " "einer Sicherung ignoriert werden. Z.B.: „*.ogg *.wav“" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Maximale Größe des Archivs:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filter für Dateinamen für auszuschließende Dateien:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Definiert eine Liste von absoluten Pfadmustern, welche " "verwendet werden um gesamte Ordner zu ignorieren,
z.B.: /home/*/.mozilla/" "*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "" "Deaktivieren, wenn das Komprimieren von Dateien komplett unterbunden werden " "soll" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Dateien komprimieren" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "Sicherung" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Abbrechen" #~ msgid "File '%1' is not readable. Skipping." #~ msgstr "Datei '%1' ist nicht lesbar. Überspringe sie." #~ msgid "(c) 2006 - 2012 Martin Koller" #~ msgstr "(c) 2006 - 2012 Martin Koller" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Start with given profile" #~ msgstr "Starte mit angegebenem Profil" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Script to run after finishing one archive slice" #~ msgstr "Starte Script nach Fertigstellung eines Archives" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "and terminate when done." #~ msgstr "" #~ "Automatischer Start der Sicherung mit angegebenem\n" #~ "Profil und Programmende nach fertiger Sicherung." #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "in the background (without showing a window)\n" #~ "and terminate when done." #~ msgstr "" #~ "Automatischer Start der Sicherung im Hintergrund\n" #~ "(ohne Fenster anzuzeigen) mit angegebenem Profil\n" #~ "und Programmende nach fertiger Sicherung." #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In autobg mode be verbose and print every\n" #~ "single filename during backup" #~ msgstr "" #~ "Zeige jeden einzelnen Dateinamen während dem Backup\n" #~ "im autobg Modus" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In auto/autobg mode force the backup to be a full backup\n" #~ "instead of acting on the profile settings" #~ msgstr "" #~ "Im auto/autobg Modus erzwinge eine Komplett-Sicherung\n" #~ "anstatt die Profil Einstellung zu berücksichtigen" kbackup-19.12.3/po/el/000077500000000000000000000000001363501564300143335ustar00rootroot00000000000000kbackup-19.12.3/po/el/kbackup.po000066400000000000000000000610511363501564300163160ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the kbackup package. # # Stelios , 2018. msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-12-20 14:30+0200\n" "Last-Translator: Stelios \n" "Language-Team: English \n" "Language: en_US\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Stelios" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "sstavra@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Δεν επιλέχθηκε τίποτα για εφεδρικό αντίγραφο" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Ο κατάλογος προορισμού '%1' δεν είναι έγκυρος" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Ο κατάλογος προορισμού '%1' πρέπει να είναι ένας κατάλογος στο τοπικό " "σύστημα αρχείων και όχι ένα απομακρυσμένο URL" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Ο κατάλογος προορισμού '%1' δεν υπάρχει.\n" "\n" "Να δημιουργηθεί;" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Αδυναμία δημιουργίας του καταλόγου προορισμού '%1'.\n" "Το λειτουργικό σύστημα αναφέρει: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Ο κατάλογος προορισμού δεν υπάρχει" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...μειώνεται το πλήθος των διατηρούμενων αρχειοθηκών στο μέγιστο. %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...διαγράφεται το %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "αποτυχία ανάκτησης της λίστας καταλόγων προορισμού. Αδυναμία μείωσης των " "διατηρούμενων αρχειοθηκών." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "Αδυναμία εγγραφής των χρονικών σφραγίδων του εφεδρικού αντιγράφου στο προφίλ " "%1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Φιλτραρισμένα αρχεία: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! Η δημιουργία εφεδρικού αντιγράφου ολοκληρώθηκε αλλά με " "παράλειψηαρχείων !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Η δημιουργία εφεδρικού αντιγράφου ολοκληρώθηκε με επιτυχία --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Η δημιουργία εφεδρικού αντιγράφου έχει ολοκληρωθεί αλλά με παράλειψη " "αρχείων.\n" "Τι θέλετε να κάνετε τώρα;" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Η δημιουργία εφεδρικού αντιγράφου έχει ολοκληρωθεί με επιτυχία.\n" "Τι θέλετε να κάνετε τώρα;" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Σύνολα: Αρχεία: %1, Μέγεθος: %2, Διάρκεια: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Η δημιουργία εφεδρικού αντιγράφου διακόπηκε!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Η δημιουργία εφεδρικού αντιγράφου ακυρώθηκε" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...ολοκληρωμένο τμήμα %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...αποστολή αρχειοθήκης %1 σε %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Πώς να συνεχίσουμε με την αποστολή;" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Αποτυχία αποστολής" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Επαναπροσπάθεια" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Αλλαγή προορισμού" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Αδυναμία εκκίνησης του σεναρίου '%1'." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Το μέσο είναι γεμάτο. Εισαγάγετε μέσο Νο. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Αδυναμία ανοίγματος του αρχείου '%1' για εγγραφή." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Αδυναμία ανοίγματος του αρχείου '%1' για εγγραφή.\n" "\n" "Θέλετε να ξαναπροσπαθήσετε;" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Αδυναμία εγγραφής στην αρχειοθήκη. Ίσως το μέσο να είναι γεμάτο." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Αδυναμία εγγραφής στην αρχειοθήκη.\n" "Το λειτουργικό σύστημα αναφέρει: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...παράλειψη φιλτραρισμένου καταλόγου %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Αδυναμία ανάκτησης πληροφοριών καταλόγου: %1\n" "Το λειτουργικό σύστημα αναφέρει: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Ο κατάλογος '%1' δεν είναι αναγνώσιμος. Παραλείπεται." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Αδυναμία εγγραφής του καταλόγου '%1' στην αρχειοθήκη.\n" "Ίσως το μέσο να είναι γεμάτο." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Αδυναμία ανάκτησης πληροφοριών αρχείου: %1\n" "Το λειτουργικό σύστημα αναφέρει: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Αδυναμία ανάγνωσης από αρχείο: '%1'\n" "Το λειτουργικό σύστημα αναφέρει: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Αδυναμία ανοίγματος του αρχείου '%1' για ανάγνωση." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...αρχειοθέτηση του αρχείου %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Αδυναμία ανάγνωσης αρχείου: %1\n" "Το λειτουργικό σύστημα αναφέρει: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Αδυναμία δημιουργίας προσωρινού αρχείου για συμπίεση: %1\n" "Το λειτουργικό σύστημα αναφέρει: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Αδυναμία εγγραφής σε προσωρινό αρχείο" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...γίνεται συμπίεση του αρχείου %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "Α&ρχείο" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "Ρυθμί&σεις" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Ενα ευκολόχρηστο πρόγραμμα δημιουργίας εφεδρικών αντιγράφων" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Προγραμματιστής" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Έναρξη με το δοσμένο προφίλ." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Σενάριο για εκτέλεση αφού ολοκληρωθεί ένα τμήμα αρχειοθήκης." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Να εκτελείται αυτόματα η δημιουργία εφεδρικού αντιγράφου με το δοσμένο " "προφίλ και να τερματίζεται αφού ολοκληρωθεί." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Να εκτελείται αυτόματα η δημιουργία εφεδρικού αντιγράφου με το δοσμένο " "προφίλ στο παρασκήνιο (χωρίς να εμφανίζεται παράθυρο) και να τερματίζεται " "αφού ολοκληρωθεί." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "Σε λειτουργία autobg να υπάρχει λεπτομερής αναφορά και εμφάνιση κάθε " "ονόματος αρχείου κατά τη δημιουργία του εφεδρικιύ αντιγράφου." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Σε λειτουργία auto/autobg να δημιουργείται πλήρες εφεδρικό αντίγραφο αντί να " "βασίζεται στις ρυθμίσεις του προφίλ." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Αδυναμία ανοίγματος του προφίλ '%1' για ανάγνωση: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Εξελικτική δημιουργία εφεδρικού αντιγράφου" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Πλήρες εφεδρικό αντίγραφο" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "απεριόριστο" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Εκκίνηση δημιουργίας εφεδρικού αντιγράφου" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Ακύρωση δημιουργίας εφεδρικού αντιγράφου" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Επόμενο εφεδρικό αντίγραφο:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "TextLabel" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Εξαναγκασμός πλήρους εφεδρικού αντιγράφου" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Προορισμός" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Φακελος:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Μέσο:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Μέγεθος:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Σύνολα" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Αρχεία:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Διάρκεια:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Προειδοποιήσεις:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Εξέλιξη:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Νέο προφίλ" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Φόρτωση προφίλ..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Αποθήκευση προφίλ" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Αποθήκευση προφίλ ως..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Ρυθμίσεις προφίλ..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Ενεργοποίηση όλων των μηνυμάτων" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Προσάρτηση στο πλαίσιο συστήματος" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Να εμφανίζονται τα κρυφά αρχεία" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "" "Υπάρχει δημιουργία εφεδρικού αντιγράφου σε εξέλιξη. Θέλετε να εγκαταλείψετε;" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Επιλογή προφίλ" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup προφίλ (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Αποτυχία ανοίγματος" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Το προφίλ '%1' υπάρχει ήδη.\n" "Θέλετε να το αντικαταστήσετε;" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Το προφίλ υπάρχει" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Αδυναμία ανοίγματος του προφίλ '%1' για εγγραφή: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Αρχεία: %1 Μέγεθος: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Όνομα" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Μέγεθος" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Τελευταία τροποποίηση" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Άνοιγμα με" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Διαγραφή αρχείου" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Ιδιότητες..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Θέλετε πράγματι να διαγράψετε το '%1';" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Διαγραφή" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Αδυναμία διαγραφής καταλόγου '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Αδυναμία διαγραφής αρχείου '%1'.\n" "Αιτία: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Άλλη εφαρμογή..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Διαχειριστής αρχείων" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "προσαρμοσμένο" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Ρυθμίσεις προφίλ" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Αναιρέστε την επιλογή αν θέλετε να αποφύγετε ένα διάλογο επιβεβαίωσης " "αλλαγής του μέσου όταν ένα τμήμα έχει ολοκληρωθεί" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Ο προορισμός απαιτεί αλλαγή μέσου" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Αποκλεισμός φίλτρου διαδρομών:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Πλήρη εφεδρικά αντίγραφα προς διατήρηση" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Πόσα πλήρη εφεδρικά αντίγραφα θα διατηρηθούν στον κατάλογο προορισμού πριν " "διαγραφούν τα παλαιότερα" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Χρονικό διάστημα πλήρους εφεδρικού αντιγράφου" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Πόσο συχνά θα γίνει ένα πλήρες εφεδρικό αντίγραφο αντί για ένα εξελικτικό" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Καθημερινά" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " ημέρες" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Πρόθεμα αρχειοθήκης:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Ορίζει σύμβολα υποκατάστασης για ονόματα αρχείων τα οποία θα αγνοηθούν στη " "δημιουργία εφεδρικού αντιγράφου, διαχωρισμένα με κενό. Π.χ.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Μέγιστο μέγεθος αρχειοθήκης:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Αποκλεισμός φίλτρου ονόματος αρχείου:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Ορίζει μια λίστα μοτίβων πλήρους διαδρομής με τα οποία " "φιλτράρονται ολοκληρωμένοι κατάλογοι,
π.χ. /home/*/.mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Αναιρέστε την επιλογή αν θέλετε να αποφύγετε τη συμπίεση αρχείων." #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Συμπίεση αρχείων" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "δημιουργία εφεδρικού αντιγράφου" kbackup-19.12.3/po/en_GB/000077500000000000000000000000001363501564300147055ustar00rootroot00000000000000kbackup-19.12.3/po/en_GB/kbackup.po000066400000000000000000000465271363501564300167030ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Steve Allewell , 2018. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-12-02 12:49+0000\n" "Last-Translator: Steve Allewell \n" "Language-Team: British English \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Steve Allewell" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "steve.allewell@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nothing selected for backup" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "The target directory '%1' is not valid" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "The target directory '%1' must be a local file system directory and not a " "remote URL" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "The target directory does not exist" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...reducing number of kept archives to max. %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...deleting %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "fetching directory listing of target failed. Can not reduce kept archives." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Could not write backup timestamps into profile %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Filtered Files: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Backup finished but files were skipped !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Backup successfully finished --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "The backup has finished but files were skipped.\n" "What do you want to do now?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "The backup has finished successfully.\n" "What do you want to do now?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totals: Files: %1, Size: %2, Duration: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Backup aborted!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Backup cancelled" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...finished slice %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...uploading archive %1 to %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "How shall we proceed with the upload?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Upload Failed" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Retry" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Change Target" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "The script '%1' could not be started." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "The medium is full. Please insert medium Nr. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "The file '%1' can not be opened for writing." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Could not write to archive. Maybe the medium is full." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Could not write to archive.\n" "The operating system reports: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...skipping filtered directory %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Could not get information of directory: %1\n" "The operating system reports: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Directory '%1' is not readable. Skipping." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Could not get information of file: %1\n" "The operating system reports: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Could not read from file '%1'\n" "The operating system reports: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Could not open file '%1' for reading." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archiving file %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Could not read file: %1\n" "The operating system reports: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Could not write to temporary file" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...compressing file %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "WARNING:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&File" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Settings" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "An easy to use backup program" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Developer" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Start with given profile." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Script to run after finishing one archive slice." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Automatically run the backup with the given profile and terminate when done." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "In autobg mode be verbose and print every single filename during backup." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Could not open profile '%1' for reading: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Incremental Backup" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Full Backup" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "unlimited" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Start Backup" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancel Backup" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Next Backup:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "TextLabel" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Force Full Backup" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Target" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Folder:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Medium:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Size:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totals" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Files:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Duration:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Warnings:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progress:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "New Profile" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Load Profile..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Save Profile" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Save Profile As..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profile Settings..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Enable All Messages" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Dock in System Tray" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Show Hidden Files" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "There is a backup in progress. Do you want to abort it?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Select Profile" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup Profile (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Open failed" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profile exists" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Could not open profile '%1' for writing: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Files: %1 Size: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Name" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Size" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Last Modified" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Open With" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Delete File" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Properties..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Do you really want to delete '%1'?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Delete" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Could not delete directory '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Could not delete file '%1'.\n" "Reason: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Other Application..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "File Manager" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "custom" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profile Settings" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Uncheck if you want to avoid a confirmation dialogue to change the medium " "when a slice was finished" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Target needs media change" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Exclude Paths Filter:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Number of full backups to keep" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Full Backup Interval" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "How often shall a full backup, instead of an incremental one, be done" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Every Day" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " days" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Archive Prefix:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Maximum Archive Size:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Exclude Filename Filter:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Uncheck if you want to avoid compressing files at all" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Compress Files" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "backup" kbackup-19.12.3/po/es/000077500000000000000000000000001363501564300143425ustar00rootroot00000000000000kbackup-19.12.3/po/es/kbackup.po000066400000000000000000000507271363501564300163350ustar00rootroot00000000000000# translation of es.po to español # This file is put in the public domain. # # Eloy Cuadra , %Y. # gerardo , 2007. # Víctor Rodrigo Córdoba , 2018. # Eloy Cuadra , 2018. msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-12-03 01:11+0100\n" "Last-Translator: Eloy Cuadra \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Víctor Rodrigo" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "vrcordoba@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nada seleccionado para copia de seguridad" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "El directorio destino «%1» no es válido" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "El directorio destino «%1» debe ser un directorio del sistema local de " "archivos y no un URL remoto" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "El directorio destino «%1» no existe.\n" "\n" "¿Debo crearlo?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "No se pudo crear el directorio destino: «%1».\n" "El sistema operativo reportó: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "El directorio destino no existe" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...reduciendo el número de archivos a mantener a un máximo de %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...borrando %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "recuperando el listado de directorios del objetivo fallido. No se puede " "reducir el número de archivos comprimidos mantenidos." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "No se pudo escribir las marcas de tiempo en el perfil %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Archivos filtrados: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "¡¡ Copia de seguridad finalizada, pero los archivos fueron ignorados !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Copia de seguridad finalizada correctamente --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "La copia de seguridad terminó, pero los archivos fueron ignorados.\n" "¿Qué quieres hacer ahora?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "La copia de seguridad ha terminado satisfactoriamente.\n" "¿Qué quieres hacer ahora?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Total: Archivos: %1, tamaño: %2, duración: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Copia de seguridad anulada!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Copia de seguridad cancelada" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...terminada parte %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...actualizando archivo %1 a %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "¿Cómo deberíamos proceder con la subida de datos?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "La subida de datos falló" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Reintentar" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Cambiar objetivo" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "El script '%1' no puede ser iniciado." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "El medio está lleno. Por favor, inserte medio Nr. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "El archivo «%1» no puede ser abierto para escritura." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "El archivo '%1' no puede ser abierto para escritura.\n" "\n" "¿Quiere intentarlo de nuevo?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "No se puede escribir el archivo. Quizás el medio esté lleno." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "No se pudo escribir al archivo comprimido.\n" "El sistema operativo reportó: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...ignorando el directorio filtrado %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "No se pudo obtener información del directorio: %1\n" "El sistema operativo reportó: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "No se puede leer el directorio '%1'. Ignorándolo." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "No se puede escribir el directorio '%1' en el archivo.\n" "Quizás el medio esté lleno." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "No se puede obtener información del archivo: %1\n" "El sistema operativo reportó: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "No se pudo leer del archivo «%1»\n" "El sistema operativo reportó: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "No se puede abrir el archivo '%1' para ser leído." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archivando archivo %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "No se pudo leer el archivo: %1\n" "El sistema operativo reportó: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "No se pudo crear el archivo temporal para la compresión: %1\n" "El sistema operativo reportó: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "No se pudo escribir al archivo temporal" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...comprimiendo archivo %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "Aviso:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Archivo" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Preferencias" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Un programa de copias de seguridad fácil de usar" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "© 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Desarrollador" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Iniciar con un perfil dado." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Script a ejecutar al terminar una parte del archivo." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Ejecutar automáticamente la copia de seguridad con el perfil dado y terminar " "cuando finalice." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Ejecutar automáticamente la copia de seguridad con el perfil dado en segundo " "plano (sin mostrar ninguna ventana) y terminar cuando finalice." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "En el modo autobg ser detallado y mostrar el nombre de todos los archivos " "durante la copia de seguridad." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "En los modos auto/autobg, fuerza que la copia de seguridad sea completa en " "lugar de seguir las preferencias del perfil." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "No se pudo abrir el perfil '%1' para leer: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Copia de seguridad incremental" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Copia de seguridad completa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "sin límite" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Iniciar copia de seguridad" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancelar copia de seguridad" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Siguiente copia de seguridad:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Etiqueta de texto" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Forzar copia de seguridad completa" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Objetivo" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Carpeta:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Medio:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Tamaño:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totales" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Archivos:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Duración:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avisos:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progreso:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nuevo Perfil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Cargar perfil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Guardar perfil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Guardar perfil como..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Preferencias del perfil" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Activar Todos los Mensajes" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Poner en la Bandeja del Sistema" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Mostrar archivos ocultos" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Hay una copia de seguridad en curso. ¿Deseas anularla?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Guardar perfil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Perfil KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Fallo de apertura" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "El perfil '%1' ya existe.\n" "¿Deseas sobrescribirlo?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "El perfil existe" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "No se puede abrir el perfil '%1' para escribir: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Archivos: %1 Tamaño: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nombre" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Tamaño" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Última modificación" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Abrir con" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Borrar archivo" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propiedades..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "¿Está seguro de que quiere borrar «%1»?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Borrar" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "No se pudo borrar el directorio «%1»." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "No se pudo borrar el archivo «%1».\n" "Razón: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Otra aplicación..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gestor de archivos" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personalizado" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Preferencias del perfil" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "No seleccionar si desea evitar un mensaje de confirmación para cambiar el " "medio cuando una parte haya terminado" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "El objetivo necesita un cambio de medio" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtro de rutas a excluir:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Número de copias de seguridad completas a guardar" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Cuantas copias de seguridad completas deben mantenerse en el directorio " "destino antes de que se empiecen a borrar las más antiguas" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervalo entre copias de seguridad completas" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Con que frecuencia debe llevarse a cabo una copia de seguridad completa, en " "lugar de una incremental" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Cada día" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " días" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefijo del archivo:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Define comodines para los nombres de archivos que se ignorarán en la copia " "de seguridad, separadas por un espacio. Por ejemplo: «*.ogg *.wav»" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Máximo Tamaño del Archivo:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtro de nombres de archivos a excluir:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Define una lista de patrones de rutas absolutas que se " "usarán para filtrar directorios completos,
por ejemplo, /home/*/.mozilla/" "*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Desmarque si quiere evitar comprimir los archivos" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprimir archivos" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "copia de seguridad" #~ msgid "OK" #~ msgstr "Aceptar" #~ msgid "Cancel" #~ msgstr "Cancelar" kbackup-19.12.3/po/eu/000077500000000000000000000000001363501564300143445ustar00rootroot00000000000000kbackup-19.12.3/po/eu/kbackup.po000066400000000000000000000503271363501564300163330ustar00rootroot00000000000000# Translation of kbackup.po to Euskara/Basque (eu). # Copyright (C) 2018, Free Software Foundation. # Copyright (C) 2019, This file is copyright: # This file is distributed under the same license as the kbackup package. # KDE euskaratzeko proiektuaren arduraduna . # # Translators: # Iñigo Salvador Azurmendi , 2018, 2019. msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2019-05-18 08:54+0100\n" "Last-Translator: Iñigo Salvador Azurmendi \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Iñigo Salvador Azurmendi" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "xalba@euskalnet.net" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Ez da ezer hautatu babes-kopia egiteko" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Jomuga direktorioak '%1' ez du balio" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Jomuga direktorioak '%1' bertako fitxategi-sistemako direktorioa izan behar " "du eta ez urruneko URL" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Jomuga direktorioa '%1' ez dago.\n" "\n" "Sortu behar nuke?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Ezin izan da sortu jomuga direktorioa '%1'.\n" "Sistema eragileak jakinarazi du: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Jomuga direktorioa ez dago" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...mantendutako artxibo kopurua murrizten, gehienez %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...%1 ezabatzen" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "jomugako direktorio-zerrenda ekartzeak huts egin du. Ezin da mantendutako " "artxibo kopurua murriztu." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Ezin izan da idatzi babes-kopiaren denbora-zigilua profilean %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Iragazitako fitxategiak: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! babes-kopia amaitu da baino fitxategi batzuk baztertu dira !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- babes-kopia amaiera arrakastatsua --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "babes-kopia amaitu da baino fitxategi batzuk bazterrean utzi ditu.\n" "Zer egin nahi duzu orain?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "babes-kopia arrakastatsua izan da.\n" "Orain zer egin nahi duzu?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Guztizkoak: Fitxategiak: %1, Neurria: %2, Iraupena: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...babes-kopia galarazi egin da!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "babes-kopia bertan behera utzi da" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...%1 zatia amaituta" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...%1 artxiboa %2-(e)ra igotzen" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Nola jarraitu behar genuke igoerarekin?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Igotzeak huts egin du" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Berriz saiatu" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Aldatu jomuga" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "'%1' script-a ezin izan da abiarazi." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Euskarria beteta dago. Sartu zk. %1 euskarria" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "'%1' fitxategia ezin da idazteko ireki." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "'%1' fitxategia ezin da idazteko ireki.\n" "\n" "Berriz saiatu nahi duzu?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Ezin da artxibora idatzi. Beharbada euskarria beteta dago." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Ezin izan da artxibora idatzi.\n" "Sistema eragileak jakinarazi du: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...iragazitako %1 direktorioa baztertzen" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Ezin izan da direktorioaren informazioa lortu: %1\n" "Sistema eragileak jakinarazi du: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "'%1' direktorioa ez da irakurgarria. Baztertzen." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Ezin izan da '%1' direktorioa artxibora idatzi.\n" "Behar bada euskarria beteta dago." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Ezin izan da lortu fitxategiari buruzko informazioa: %1\n" "Sistema eragileak jakinarazi du: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Ezin izan da '%1' fitxategitik irakurri\n" "Sistema eragileak jakinarazi du: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Ezin da '%1' fitxategia irakurtzeko ireki." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...%1 fitxategia artxibatzen" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Ezin izan da fitxategia irakurri: %1\n" "Sistema eragileak jakinarazi du: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Ezin izan da sortu konprimitzeko aldiuneko fitxategia: %1\n" "Sistema eragileak jakinarazi du: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Ezin izan da idatzi aldi baterako fitxategira" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...%1 fitxategia konprimitzen" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "ABISUA:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Fitxategia" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "E&zarpenak" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "Kbabes-kopia" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Erabiltzeko erraza den babes-kopia programa bat" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Garatzailea" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Abiatu adierazitako profilarekin." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Artxibo zati bat amaitu ondoren ibili beharreko script-a." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Automatikoki exekutatu babes-kopia adierazitako proiflarekin eta amaitu " "egindakoan." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Automatikoki exekutatu babes-kopia adierazitako profilarekin atzealdean " "(leihorik erakutsi gabe) eta amaitu egindakoan." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "Autobg moduan izan berritsu eta inprimatu fitxategi-izen bakoitza babes-" "kopia egiterakoan." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Auto/autobg moduan behartu babes-kopia osoa izatea profilaren ezarpenen " "arabera jokatu ordez." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Ezin izan da ireki '%1' profila irakurtzeko: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "babes-kopia inkrementala" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "babes-kopia osoa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "mugagabea" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Abiatu babes-kopia" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Utzi babes-kopia" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Hurrengo babes-kopia:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Testu-etiketa" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Behartu babes-kopia osoa" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Jomuga" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Karpeta:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Euskarria:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Neurria:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Guztizkoak" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Fitxategiak:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Iraupena:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Abisuak:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Aurrerapena:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Profil berria" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Zamatu profila..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Gorde profila" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Gorde profila honela..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profilaren ezarpenak..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Gaitu mezu guztiak" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Ainguratu sistemaren erretiluan" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Erakutsi ezkutuko fitxategiak" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "babes-kopia bat egiten ari da. Hura galarazi nahi duzu?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Hautatu profila" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Kbabes-kopia profila (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Irekitzea huts egin du" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "'%1' profila badago dagoeneko.\n" "Hura gainidatzi nahi duzu?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profila badago" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Ezin izan da ireki '%1' profila idazteko: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Fitxategiak: %1 Neurria: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Izena" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Neurria" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Azken aldaketa" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Ireki honekin" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Ezabatu fitxategia" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propietateak..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Benetan ezabatu nahi duzu '%1'?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Ezabatu" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Ezin izan da ezabatu '%1' direktorioa." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Ezin izan da '%1' fitxategia ezabatu.\n" "Zergatia: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Beste aplikazio batzuk..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Fitxategi-kudeatzailea" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4,7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8,5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9,4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17,1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "norberak finkatua" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profilaren ezarpenak" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Marka kendu, zati bat amaitutakoan euskarria aldatzeko berrespen " "elkarrizketa-koadro bat ekidin nahi baduzu" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Jomugak euskarri aldaketa behar du" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Kanporatu bide-izenak iragazkia:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Eduki beharreko babes-kopia osoen kopurua" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Zenbat babes-kopia oso eduki behar dira jomuga direktorioan, zaharrenak " "ezabatu aurretik" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "babes-kopia osoaren bitartea" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Zenbatero egin behar da babes-kopia oso bat, inkremental bat egin beharrean" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Egunero" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " egun" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Artxiboaren aurrizkia:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Babeskopietan jaramon egingo ez zaien fitxategientzako zernahirako " "karaktereak definitzen ditu, zuriunez banatuak. Adib.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Artxibuaren gehienezko neurria:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Kanporatu fitxategi-izena iragazkia:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Bide-izen absolutuen eredu zerrenda bat definitzen du, " "direktorio osoak iragazteko erabiltzen dira,
adib. /home/*/.mozilla/*/" "Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Marka kendu fitxategiak konprimitzea erabat ekidin nahi baduzu" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Konprimitu fitxategiak" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "babes-kopia" kbackup-19.12.3/po/fi/000077500000000000000000000000001363501564300143315ustar00rootroot00000000000000kbackup-19.12.3/po/fi/kbackup.po000066400000000000000000000476041363501564300163240ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Tommi Nieminen , 2018, 2019. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2019-01-23 13:19+0200\n" "Last-Translator: Tommi Nieminen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Tommi Nieminen" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "translator@legisign.org" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Mitään varmuuskopioitavaa ei ole valittu" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Kohdekansio ”%1” on virheellinen" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Kohdekansion ”%1” on oltava paikallinen järjestelmäkansio eikä etäosoite" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Kohdekansiota ”%1” ei ole olemassa.\n" "\n" "Luodaanko se?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Kohdekansiota ”%1” ei voitu luoda.\n" "Käyttöjärjestelmää ilmoittaa: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Kohdekansiota ei ole olemassa" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "…vähennetään säilytettyjen arkistojen enimmäismääräksi %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "…poistetaan %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "Kohteen kansioluettelon nouto epäonnistui. Säilytettyjä arkistoja ei voida " "vähentää." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Ei voitu kirjoittaa varmuuskopioiden aikaleimoja profiiliin %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Suodatetut tiedostot: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Varmuuskopiointi päättyi mutta tiedostoja ohitettiin!!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Varmuuskopiointi valmistui onnistuneesti --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Varmuuskopiointi valmistui, mutta tiedostoja ohitettiin.\n" "Mitä haluat tehdä nyt?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Varmuuskopiointi valmistui onnistuneesti.\n" "Mitä haluat tehdä nyt?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Kaikkiaan: tiedostoja: %1, koko: %2, kesto: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "…Varmuuskopiointi keskeytettiin!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Varmuuskopiointi keskeytettiin" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "…päätettiin viipale %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "…lähetetään arkisto %1 kohteeseen %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Kuinka lähetyksessä menetellään?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Lähetys epäonnistui" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Yritä uudelleen" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Vaihda kohde" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Skriptiä ”%1” ei voitu käynnistää." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Tietoväline on täynnä. Anna tietoväline nro %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Tiedostoa ”%1” ei voitu avata kirjoitettavaksi." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Tiedostoa ”%1” ei voitu avata kirjoitettavaksi.\n" "\n" "Haluatko yrittää uudelleen?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Arkistoon ei voitu kirjoittaa. Tietoväline on ehkä täynnä." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Arkistoon ei voitu kirjoittaa.\n" "Käyttöjärjestelmä ilmoittaa: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "…ohitetaan suodatettu kansio %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Ei saatu tietoa kansiosta: %1\n" "Käyttöjärjestelmä ilmoittaa: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Kansiota ”%1” ei voi lukea. Ohitetaan." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Kansiota ”%1” ei voitu kirjoittaa arkistoon.\n" "Tietoväline on ehkä täynnä." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Ei saatu tietoa tiedostosta: %1\n" "Käyttöjärjestelmä ilmoittaa: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Ei voida lukea tiedostosta ”%1\"\n" "Käyttöjärjestelmä ilmoittaa: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Ei voitu avata tiedostoa ”%1” luettavaksi." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "…arkistoidaan tiedostoa %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Ei voida lukea tiedostoa: %1\n" "Käyttöjärjestelmä ilmoittaa: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Ei voitu luoda pakkausta varten väliaikaistiedostoa: %1\n" "Käyttöjärjestelmä ilmoittaa: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Ei voitu kirjoittaa väliaikaistiedostoon" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "…pakataan tiedostoa %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "VAROITUS:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Tiedosto" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Asetukset" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Helppokäyttöinen varmuuskopiointiohjelma" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "© 2006–18 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Kehittäjä" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Käynnistä annetulla profiililla." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Yhden arkistoviipaleen valmistuttua ajettava skripti." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Varmuuskopioi automaattisesti annetulla profiililla ja lopeta, kun valmista." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Varmuuskopioi automaattisesti annetulla profiililla taustalla (ikkunaa " "näyttämättä) ja lopeta, kun valmista." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "Tulosta autobg-tilassa jokaisen varmuuskopioitavan tiedoston nimi." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Pakota auto- tai autobg-tilassa täysi varmuuskopio profiiliasetusten " "mukaisen toiminnan sijaan." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Ei voitu avata profiilia ”%1” luettavaksi: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Lisäävä varmuuskopio" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Täysi varmuuskopio" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "rajoittamaton" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Aloita varmuuskopiointi" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Peru varmuuskopiointi" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Seuraava varmuuskopiointi:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Tekstiselite" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Pakota täysi varmuuskopiointi" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Kohde" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Kansio:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Tietoväline:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Koko:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 Mt" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Kaikkiaan" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Tiedostoja:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "Mt" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Kesto:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Varoitukset:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Edistyminen:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Uusi profiili" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Lataa profiili…" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Tallenna profiili" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Tallenna profiili nimellä…" #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profiiliasetukset…" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Näytä kaikki viestit" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Telakoidu ilmoitusalueelle" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Näytä piilotiedostot" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Varmuuskopiointi on käynnissä. Haluatko keskeyttää sen?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Valitse profiili" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup-profiili (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Avaaminen epäonnistui" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Profiili ”%1” on jo olemassa.\n" "Haluatko korvata sen?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profiili on jo olemassa" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Ei voitu avata profiilia ”%1” kirjoitettavaksi: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Tiedostoja: %1 Koko: %2 Mt\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nimi" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Koko" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Viimeksi muutettu" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Avaa ohjelmalla" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Poista tiedosto" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Ominaisuudet…" #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Haluatko varmasti poistaa kohteen ”%1”?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Poista" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Ei voitu poistaa kansiota ”%1”." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Ei voitu poistaa tiedostoa ”%1”.\n" "Syy: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Muu sovellus…" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Tiedostonhallinta" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 Mt CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 Mt CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4,7 Gt DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8,5 Gt DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9,4 Gt DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17,1 Gt DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "mukautettu" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profiiliasetukset" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Poista valinta, ellet haluat kysyttävän vahvistusta tietovälineen " "vaihtamiseksi viipaleen valmistuttua" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Kohde vaatii tietovälineen vaihtoa" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Pois jätettävien sijaintien suodatin:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Säilytettävien täysien varmuuskopioiden määrä" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Montako täyttä varmuuskopioita säilytetään kohdekansiossa, ennen kuin " "vanhimmat poistetaan" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Täysien varmuuskopioiden väli" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "Kuinka usein tehdään täysi varmuuskopio lisäävän sijaan" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Joka päivä" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " päivää" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Arkiston etuliite:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Määrittää jokerimerkein välilyönnein erotettuna tiedostonimet, jotka " "ohitetaan varmuuskopioitaessa. Esim. *.ogg *.wav" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Arkiston enimmäiskoko:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " Mt" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Pois jätettävien tiedostonimien suodatin:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Määrittää joukon absoluuttisia polkumalleja, joilla " "kansiot suodatetaan:
esim. /home/*/.mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Poista valinta, jos haluat olla pakkaamatta tiedostoja" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Pakkaa tiedostot" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "varmuuskopio" kbackup-19.12.3/po/fr/000077500000000000000000000000001363501564300143425ustar00rootroot00000000000000kbackup-19.12.3/po/fr/kbackup.po000066400000000000000000000577501363501564300163400ustar00rootroot00000000000000# translation of fr.po to Français # This file is put in the public domain. # # regis Floret , 2006. # Martin Koller , 2006. # Alain Portal , 2006, 2007, 2010, 2011. # Simon Depiets , 2018. msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-10-27 12:18+0800\n" "Last-Translator: Simon Depiets \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Régis Floret, Alain Portal, Simon Depiets" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "r.floret@laposte.net, alain.portal@univ-montp2.fr, sdepiets@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Rien n'est sélectionné pour la sauvegarde" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Le dossier de destination « %1 » n'est pas valable." #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Le dossier de destination « %1 » doit être un dossier d'un système de " "fichiers local et non une URL distante" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Le dossier cible « %1 » n'existe pas.\n" "\n" "Faut-il le créer ?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Impossible de créer le dossier cible « %1 ».\n" "Le système d'exploitation indique : %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Le dossier de destination n'existe pas." #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...réduction du nombre d'archives conservées au maximum défini : %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...suppression de « %1 »" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "l'extraction des contenus du dossier cible a échoué. Impossible de réduire " "le nombre d'archives conservées." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "Impossible d'écrire les horodatages de sauvegarde dans le profil %1 : %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Fichiers filtrés : %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Sauvegarde terminée mais des fichiers ont été ignorés !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- La sauvegarde s'est terminée avec succès --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "La sauvegarde est terminée mais des fichiers ont été ignorés.\n" "Que voulez-vous faire à présent ?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "La sauvegarde s'est achevée avec succès.\n" "Que voulez-vous faire à présent ?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totaux : Fichiers : %1, Taille : %2, Durée : %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "... Sauvegarde abandonnée !" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Sauvegarde annulée" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "tranche %1 finie..." #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...téléchargement de l'archive %1 vers %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Comment devons-nous procéder au téléchargement ?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Le téléchargement a échoué" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Réessayer" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Modifier la cible" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Impossible de démarrer le script « %1 »." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Le média est plein. Veuillez insérer le média N° %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Impossible d'ouvrir le fichier « %1 » en écriture." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Impossible d'ouvrir le fichier « %1 » en écriture.\n" "\n" "Voulez-vous recommencer ?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Impossible d'écrire dans l'archive. Le média est-il plein ?" #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Impossible d'écrire dans l'archive.\n" "Le système d'exploitation indique : %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...omission du dossier filtré « %1 »" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Impossible d'obtenir des informations sur le dossier : %1\n" "Le système d'exploitation indique : %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Impossible de lire le dossier « %1 ». Ignoré." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Impossible d'écrire le dossier « %1 » dans l'archive.\n" "Le média est-il plein ?" #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Impossible d'obtenir des informations sur le fichier : %1\n" "Le système d'exploitation indique : %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Impossible de lire le fichier « %1 »\n" "Le système d'exploitation indique : %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Impossible d'ouvrir le fichier « %1 » en lecture." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archivage du fichier %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Impossible de lire le fichier : %1\n" "Le système d'exploitation indique : %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Impossible de créer le fichier temporaire pour la compression : %1\n" "Le système d'exploitation indique : %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Impossible d'écrire dans le fichier temporaire" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "... compression du fichier %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "AVERTISSEMENT :" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Fichier" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Configuration" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Un programme de sauvegarde simple à utiliser" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Développeur" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Démarrer avec le profil donné." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Script à exécuter à la fin d'une tranche d'archive." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Lancer automatiquement la sauvegarde avec le profil fourni et quitter " "lorsqu'elle est achevée." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Lancer automatiquement la sauvegarde en arrière plan (sans interface " "graphique) avec le profil fourni et quitter lorsqu'elle est achevée." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "En mode arrière plan automatique, augmenter la verbosité et afficher le nom " "de chaque fichier pendant la sauvegarde." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "En mode automatique (auto/autobg), forcer la sauvegarde complète plutôt que " "de tenir compte de la configuration du profil" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Impossible d'ouvrir le profil « %1 » en lecture : %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Sauvegarde incrémentielle" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Sauvegarde complète" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "illimité" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Commencer la sauvegarde" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Annuler la sauvegarde" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Sauvegarde suivante :" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Étiquette" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Forcer la sauvegarde complète" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Cible" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Dossier :" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Média :" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Taille :" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 Mo" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totaux" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Fichiers :" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "Mo" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Durée :" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avertissements :" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progression :" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nouveau profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Charger un profil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Enregistrer le profil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Enregistrer le profil sous..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Configuration du profil..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Activer tous les messages" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Ancrer dans la zone de notification" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Afficher les fichiers cachés" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Une sauvegarde est en cours. Voulez-vous l'abandonner ?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Sélectionner un profil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Profil KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Échec lors de l'ouverture" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Le profil « %1 » existe déjà.\n" "Voulez-vous l'écraser ?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Le profil existe déjà" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Impossible d'ouvrir le profil « %1 » en écriture : %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Fichiers : %1 Taille : %2 Mo\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nom" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Taille" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Dernière modification" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Ouvrir avec" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Supprimer un fichier" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propriétés..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Voulez-vous vraiment supprimer « %1 » ?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Supprimer" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Impossible de supprimer le dossier « %1 »." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Impossible de supprimer le fichier « %1 ».\n" "Cause : %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Autre application..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gestionnaire de fichiers" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "CD 650 Mo" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "CD 700 Mo" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "DVD 4,7 Go" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "DVD 8,5 Go" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "DVD 9,4 Go" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "DVD 17,1 Go" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personnalisé" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Configuration du profil" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Décochez si vous ne souhaitez pas voir apparaître une boîte de dialogue de " "confirmation vous invitant à changer de média lorsqu'une tranche d'archive " "est complète" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "La cible nécessite un changement de média" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtre d'emplacements exclus :" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Nombre de sauvegardes complètes à conserver" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Nombre de sauvegardes complètes à conserver dans le dossier cible avant que " "les plus anciennes ne soient supprimées" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervalle de sauvegarde complète" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Fréquence à laquelle il faut effectuer une sauvegarde complète plutôt qu'une " "sauvegarde incrémentielle" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Tous les jours" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " jours" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Préfixe de l'archive :" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Définit les filtres des fichiers qui seront ignorés par la sauvegarde, " "séparés par une espace. Par exemple : « *.ogg *.wav »" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Taille maximum de l'archive :" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " Mo" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtre des fichiers à exclure :" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Définit une liste de masques d'emplacements absolus " "utilisée pour filtrer des dossiers complets,
par ex. /home/*/.mozilla/*/" "Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Décochez si vous ne souhaitez pas compresser les fichiers" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Compresser les fichiers" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "sauvegarde" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Annuler" #~ msgid "File '%1' is not readable. Skipping." #~ msgstr "Le fichier « %1 » n'est pas lisible. Passe." #, fuzzy #~ msgid "(c) 2006 - 2012 Martin Koller" #~ msgstr "(c) 2006 - 2011 Martin Koller" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Start with given profile" #~ msgstr "Démarrer avec le profil donné" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Script to run after finishing one archive slice" #~ msgstr "Script à exécuter après la fin d'une tranche d'archive" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "and terminate when done." #~ msgstr "" #~ "Lancer automatiquement la sauvegarde avec le fichier\n" #~ "profil fourni et quitter lorsqu'elle est achevée. " #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "in the background (without showing a window)\n" #~ "and terminate when done." #~ msgstr "" #~ "Lancer automatiquement en arrière plan (sans interface\n" #~ "graphique) la sauvegarde avec le fichier profil fourni\n" #~ "et quitter lorsqu'elle est achevée. " #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In autobg mode be verbose and print every\n" #~ "single filename during backup" #~ msgstr "" #~ "En mode arrière plan automatique, être volubile et afficher \n" #~ "le nom de chaque fichier pendant la sauvegarde" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In auto/autobg mode force the backup to be a full backup\n" #~ "instead of acting on the profile settings" #~ msgstr "" #~ "En mode automatique (auto/autobg), force la sauvegarde\n" #~ "complète plutôt que de considérer la configuration du profil" #~ msgid "" #~ "Sorry, file '%1' (%2) is too large and cannot be archived with this KDE " #~ "version. Skipping." #~ msgstr "" #~ "Désolé, le fichier « %1 » (%2) est trop important et ne peut pas être " #~ "archivé avec cette version de KDE. On l'ignore." #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Régis Floret,Alain Portal" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "r.floret@laposte.net,alain.portal@univ-montp2.fr" kbackup-19.12.3/po/gl/000077500000000000000000000000001363501564300143355ustar00rootroot00000000000000kbackup-19.12.3/po/gl/kbackup.po000066400000000000000000000510061363501564300163170ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Adrián Chaves (Gallaecio) , 2018, 2019. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2019-09-29 09:24+0200\n" "Last-Translator: Adrián Chaves (Gallaecio) \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 19.11.70\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Adrian Chaves (Gallaecio)" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "adrian@chaves.io" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Non se seleccionou nada para facer unha copia de seguranza." #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "O directorio de destino «%1» non é válido." #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "O directorio de destino «%1» debe ser un directorio dun sistema de ficheiros " "local e non un URL remoto." #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "O directorio de destino «%1» non existe.\n" "\n" "Quere crealo?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Non se puido crear o directorio de destino «%1».\n" "O sistema operativo informa do segunte: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "O directorio de destino non existe." #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "…reducindo o número de arquivos mantidos a un máximo de %1." #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "…eliminando %1." #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "A obtención da lista de directorios do destino fallou. Non se poden reducir " "os arquivos mantidos." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "Non se puideron escribir marcas de tempo de copia de seguranza no perfil %1: " "%2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Ficheiros filtrados: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! A copia de seguranza rematou pero omitíronse ficheiros !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- A copia de seguranza completouse --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "A copia de seguranza rematou pero omitíronse ficheiros.\n" "Que quere facer?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "A copia de seguranza completouse.\n" "Que quere facer agora?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totais: ficheiros: %1; tamaño: %2; duración: %3." #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "…interrompeuse a copia de seguranza!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Cancelouse a copia de seguranza" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "…rematou a parte %1." #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "…enviando o arquivo %1 a %2." #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Que quere facer co envío?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Fallou o envío" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Intentalo de novo" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Cambiar de destino" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Non se puido iniciar o script «%1»." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "O medio está cheo. Insira o medio número %1." #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "O ficheiro «%1» non se pode abrir para escribir." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "O ficheiro «%1» non se pode abrir para escribir.\n" "\n" "Quere intentalo de novo?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Non se puido escribir no arquivo. Pode que o medio estea cheo." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Non se puido escribir no arquivo.\n" "O sistema operativo informa do seguinte: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "…omitindo o directorio filtrado %1." #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Non puido obterse información do directorio «%1».\n" "O sistema operativo informa do seguinte: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "O directorio «%1» non pode lerse. Omitirase." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Non se puido escribir o directorio «%1» no arquivo.\n" "Pode que o medio estea cheo." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Non puido obterse información do ficheiro «%1».\n" "O sistema operativo informa do seguinte: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Non se puido ler o ficheiro «%1».\n" "O sistema operativo informa do seguinte: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Non se puido abrir o ficheiro «%1» para lectura." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "…arquivando o ficheiro %1." #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Non se puido ler o ficheiro «%1».\n" "O sistema operativo informa do seguinte: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Non se puido crear o ficheiro temporal «%1» para comprimir.\n" "O sistema operativo informa do seguinte: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Non se puido escribir no ficheiro temporal." #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "…comprimindo o ficheiro %1." #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "Aviso:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Ficheiro" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Configuración" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Un programa de copias de seguranza fácil de usar." #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "© 2006-2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Desenvolvedor." #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Comezar co perfil indicado." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Script para executar tras rematar unha parte do arquivo." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Executar automaticamente a copia de seguranza co perfil indicado e saír ao " "rematar." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Executar automaticamente a copia de seguranza co perfil indicado en segundo " "plano (sen mostrar unha xanela) e saír ao rematar." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "No modo automático en segundo plano detallarse e imprimir todos os nomes de " "ficheiro durante a copia de seguranza." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Nos modos aumáticos en primeiro ou segundo plano facer que a copia de " "seguranza sexa completa en vez de basearse na configuración do perfil." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Non se puido abrir o perfil «%1» para lectura: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Copia de seguranza incremental" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Copia de seguranza completa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "sen límite" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Iniciar a copia de seguranza" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancelar a copia de seguranza" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Seguinte copia de seguranza:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Etiqueta de texto" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Facer unha copia de seguranza completa." #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Destino" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Cartafol:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Medio:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Tamaño:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totais" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Ficheiros:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Duración:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avisos:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progreso:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Novo perfil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Cargar un perfil…" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Gardar o perfil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Gardar o perfil como…" #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Configuración do perfil…" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Activar todas as mensaxes" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Acoplar na área de notificación" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Mostrar os ficheiros agochados" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Hai unha copia de seguranza en progreso. Quere interrompela?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Seleccione un perfil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Perfil de KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "A apertura fallou." #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "O perfil «%1» xa existe.\n" "Quere sobrescribilo?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "O perfil existe." #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Non se puido abrir o perfil «%1» para escritura: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Ficheiros: %1; tamaño: %2 MB.\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nome" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Tamaño" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Última modificación" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Abrir con" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Eliminar o ficheiro" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propiedades…" #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Seguro que quere borrar «%1»?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Eliminar" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Non se puido eliminar o directorio «%1»." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Non se puido eliminar o ficheiro «%1».\n" "Motivo: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Outra aplicación…" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Xestor de ficheiros" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "CD de 650 MB" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "CD de 700 MB" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "DVD de 4,7 GB" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "DVD de 8,5 GB" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "DVD de 9,4 GB" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "DVD de 17,1 GB" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personalizado" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Configuración do perfil" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Desmarque esta opción se quere evitar un diálogo de confirmación para " "cambiar de medio cando se remate unha parte." #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "O destino require cambiar de medio." #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtro para excluír rutas:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Número de copias de seguranza completas que manter" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Número de copias de seguranza completas para manter no directorio de destino " "antes de eliminar as vellas" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervalo de copias de seguranza completas" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Frecuencia coa que facer unha copia de seguranza completa, en vez de unha " "incremental." #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Diariamente" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " días" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefixo do arquivo:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Define caracteres de substitución para nomes de ficheiros que se ignorarán " "para a copia de seguranza, separados por un espazo. Por exemplo: \"*.ogg *." "wav\"." #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Tamaño máximo de arquivo:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtro para excluír nomes de ficheiro:" # skip-rule: PT-2013_cache #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Define unha lista de padróns de rutas absolutas para " "filtrar directorios enteiros,
por exemplo: /home/*/.mozilla/*/Cache." #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Desmarque esta opción se quere evitar comprimir os ficheiros." #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprimir os ficheiros." #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "copia-de-seguranza" #~ msgid "OK" #~ msgstr "Aceptar" #~ msgid "Cancel" #~ msgstr "Cancelar" kbackup-19.12.3/po/ia/000077500000000000000000000000001363501564300143245ustar00rootroot00000000000000kbackup-19.12.3/po/ia/kbackup.po000066400000000000000000000547331363501564300163200ustar00rootroot00000000000000# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Giovanni Sora , 2013, 2018. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-12-27 17:14+0100\n" "Last-Translator: giovanni \n" "Language-Team: Interlingua \n" "Language: ia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Giovanni Sora" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "g.sora@tiscali.it" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nihil seligite pro retrocopia" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Le dir objectivo '%1' non es valide" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Le dir objectivo '%1' debe esser un dir de un systema de file local e non un " "URL remote" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Le directorio objectivo '%1' non existe\n" "\n" "Io creara lo?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "On non pote crear le directorio objectivo '%1':\n" "Le systema operative reporta: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Le dir objectivo non existe" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "... reducente le numero de archivos mantenite al maximo %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...delente %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "Il falleva cercar lista de directorio objectivo. On non pote reducer " "archivos mantenite." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "Il non pote scriber marcas de tempore de retrocopia in le profilo %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Files filtrate: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Retrocopia terminate ma alcun files essera saltate !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Retrocopia terminava con successo --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Le retrocopia ha terminate ma alcun files esseva saltate.\n" " Cosa tu vole facer nunc?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Le retrocopia ha terminate con successo.\n" " Cosa tu vole facer nunc?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totales: Files: %1, Grandor: %2, Duration: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Retrocopia abortite!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Retrocopia cancellate" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...finiva trencho %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "... cargante archivo %1 in %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Como on deve proceder con le incargamento?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Incargamento fallite" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Prova de novo" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Cambia objectivo" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Le script '%1' non poteva esser initiate." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Le medio es complete. Pro favor inserta medio nr. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Le file '%1' non pote esser aperite per scriber." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Le file '%1' non pote esser aperite in scriptura.\n" "\n" "Tu vole essayar de novo?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Non ppte scriber in archivo. Forsan le medio es plen." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Non pote scriber a archivo. \n" "Le systema operative reporta: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...saltante directorio filtrate %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Non pote obtener information del directorio: %1 \n" "Le systema operative reporta; %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Directorio '%1' non es legibile. On salta lo." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Non pote scriber directorio '%1' in archivo.\n" "Forsan le medio es plen." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Non pote obtener information del file: %1\n" "Le systema operative reporta: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Non pote leger ex file: '%1\n" "Le systema operative reporta: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Non pote aperir file '%1' in lectura." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archivante file %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Non pote leger file: '%1\n" "Le systema operative reporta: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Non pote crear file temporanee per comprimer: %1 '\n" "Le systema operative reporta: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Il non pote scriber in file temporanee" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "... comprimente file %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "AVISO:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&File" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "Preferentia&s" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Un programma pro facer retrocopias facile de usar" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Disveloppator" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Initia con un date profilo." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" "Script de executar post que on termina un trencho\n" "de archivo" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Executa automaticamente le retrocopia con le date profilo\n" "e termina quando il ha facite." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Executa automaticamente le retrocopia con le date profilo\n" "in le fundo (sin monstrar fenestra) e termina quando il ha facite." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "In modo de autobg es verbose e imprime omne singule nomines de file durante " "le retrocopia." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "In modo auto/autobg il fortia le retrocopia a esser un retrocopia complete " "in loco de ager sur le preferentias de profilo." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Il non pote aperir profile '%1' in lectura: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Retrocopia incremental" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Retrocopia complete" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "sin limite" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Initia retrocopia (backup)" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancella retrocopia" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Proxime retrocopia:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Etiquetta de Texto (TextLabel)" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Fortia retrocopia complete" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Objectivo" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Dossier:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Medio:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Grandor:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totales" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Files" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Duration:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avisos:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progresso:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nove Profilo" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Carga profilo ..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Salveguarda Profilo" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Salveguarda profilo como..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Preferentias de profilo ..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Habilita omne messages" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Mitte in tabuliero de systema" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Monstra files celate" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Il ha un retrocopia in progresso. Tu vole abortar lo?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Selige profilo" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Profilo de KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Il falleva aperir" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Le profilo '%1' ja existe.\n" "Tu vole superscriber lo?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Le profilo existe" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Il non pote aperir profilo '%1' in scriptura: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Files: %1 Grandor: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nomine" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Grandor" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Ultime modificate" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Aperi con" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Dele file" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Proprietates..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Tu realmente tu vole deler '%1'?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Dele" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Non pote deler dossier '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Il non pote aperir profile '%1'.\n" "Motivation: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Altere application..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gerente de File" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.7 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.7 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.7 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personalisate" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Preferentias de profilo" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Leva le marca si tu vole evitar le dialogo de confirmation pro modificar le " "medio quando un trencho esseva terminate" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Objectivo necessita cambio de medios" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Exclude filtro de percursos:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Numero de retrocopias complete de mantener" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Como multe retrocopias complete essera mantenite in le directorio objectivo " "ante que le plus vetere essera delite" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervallo inter retrocopias complete" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Quanto sovente on facera un retrocopia complete, in loco de un incremental" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Cata die" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr "dies" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefixo de archivo:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Il define metacharacteres pro nomine de files que essera ignorate pro " "retrocopias, separate per spatio. P.Ex. \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Maxime grandor de archivo:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Exclude filtro de nomine de file:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Il define un lista de patronos absolute que es usate " "pro filtrar directorios complete,
p.ex. /home/*/.mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Leva le marca si tu vole evitar comprimer files del toto" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprime files" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "Retrocopia" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Cancella" #~ msgid "File '%1' is not readable. Skipping." #~ msgstr "File '%1'non es legibile. On salta lo." #~ msgid "(c) 2006 - 2012 Martin Koller" #~ msgstr "(c) 2006-2012, Martin Koller" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Start with given profile" #~ msgstr "Initia con un date profilo" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Script to run after finishing one archive slice" #~ msgstr "" #~ "Script de executar post que on termina un trencho\n" #~ "de archivo" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "and terminate when done." #~ msgstr "" #~ "Executa automaticamente le retrocopia con le date profilo\n" #~ "e termina quando il ha facite." #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "in the background (without showing a window)\n" #~ "and terminate when done." #~ msgstr "" #~ "Executa automaticamente le retrocopia con le date profilo\n" #~ "in le fundo (sin monstrar fenestra)\n" #~ "e termina quando il ha facite." #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In autobg mode be verbose and print every\n" #~ "single filename during backup" #~ msgstr "" #~ "In modo de autobg es verbose e imprime\n" #~ "omne singule nomines de file durante le retrocopia" #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In auto/autobg mode force the backup to be a full backup\n" #~ "instead of acting on the profile settings" #~ msgstr "" #~ "In modo auto/autobg il fortia le retrocopia a esser un \n" #~ "retrocopia complete in loco de ager sur le preferentias \n" #~ "de profilo" kbackup-19.12.3/po/it/000077500000000000000000000000001363501564300143475ustar00rootroot00000000000000kbackup-19.12.3/po/it/kbackup.po000066400000000000000000000504561363501564300163410ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the kbackup package. # Luigi Toscano , 2018. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-12-01 15:47+0100\n" "Last-Translator: Luigi Toscano \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Luigi Toscano" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "luigi.toscano@tiscali.it" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Non è stato selezionato nulla per il backup" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "La cartella di destinazione «%1» non è valida" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "La cartella di destinazione «%1» deve fare parte di un filesystem locale e " "non un URL remoto" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "La cartella di destinazione «%1» non esiste.\n" "\n" "Devo crearla?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Impossibile creare la cartella di destinazione «%1».\n" "Il sistema operativo riporta: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "La cartella di destinazione non esiste" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...riduzione del totale degli archivi mantenuti a %1 mass." #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "... eliminazione in corso di %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "lettura elenco cartelle di destinazione non riuscita. Impossibile ridurre " "gli archivi mantenuti" #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "Impossibile scrivere le informazioni temporali della copia di sicurezza nel " "profilo %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- File filtrati: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "Operazione di backup completata ma dei file sono stati saltati" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Operazione di backup terminata correttamente --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "L'operazione di backup è stata completata ma dei file sono stati saltati.\n" "Cosa vuoi fare?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "L'operazione di backup è stata completata con successo.\n" "Cosa vuoi fare?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totale: file: %1, dimensione: %2, durata: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "... operazione di backup interrotta!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Backup annullato" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "... completata porzione %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...caricamento archivio %1 in %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Come procedere con il caricamento?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Caricamento non riuscito" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Riprova" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Cambia cartella" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Lo script «%1» non può essere avviato." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Il supporto dati è completo. Inserire il supporto n. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Il file «%1» non può essere aperto in scrittura." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Il file «%1» non può essere aperto in scrittura.\n" "\n" "Riprovare?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Impossibile scrivere sull'archivio. Forse il supporto è pieno." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Impossibile scrivere nell'archivio.\n" "Il sistema operativo riporta: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...esclusione della cartella filtrata %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Impossibile ottenere informazioni sulla cartella: %1\n" "Il sistema operativo riporta: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "La cartella «%1» non è leggibile. Viene saltata." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Impossibile scrivere la cartella «%1» sull'archivio.\n" "Forse il supporto è pieno." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Impossibile ottenere informazioni sul file: %1\n" "Il sistema operativo riporta: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Impossibile leggere dal file: «%1»\n" "Il sistema operativo riporta: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Impossibile aprire il file «%1» in lettura." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archiviazione del file %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Impossibile leggere il file: %1\n" "Il sistema operativo riporta: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Impossibile creare un file temporaneo per la compressione: %1\n" "Il sistema operativo riporta: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Impossibile scrivere nel file temporaneo" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...compressione file %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "AVVISO:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&File" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "Impo&stazioni" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Un programma semplice da usare per il backup" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Sviluppatore" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Avvia con il profilo fornito." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Script da eseguire dopo il completamento di una porzione di archivio." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Esegui automaticamente l'operazione di backup con il profilo indicato e " "termina al completamento." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Esegui automaticamente l'operazione di backup in background con il profilo " "indicato (senza mostrare una finestra) e termina al completamento." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "In modo autobg attiva il modo verbose e stampa ogni nome di file durante " "l'operazione di backup." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "In modo auto/autobg forza la creazione di una copia di sicurezza completa " "invece di agire sulle impostazioni del profilo." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Impossibile aprire il profilo «%1» in lettura: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Copia di sicurezza incrementale" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Copia di sicurezza completa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "illimitato" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Avvia operazione di backup" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Annulla operazione di backup" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Operazione di backup successiva:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "EtichettaDiTesto" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Forza copia di sicurezza completa." #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Destinazione" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Cartella:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Supporto:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Dimensione:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totali" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "File:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Durata:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avvisi:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Avanzamento:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nuovo profilo" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Carica profilo..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Salva profilo" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Salva profilo come..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Impostazioni del profilo..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Attiva tutti i messaggi" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Aggancia al vassoio di sistema" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Mostra i file nascosti" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "C'è un'operazione di backup in corso. Vuoi interromperla?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Seleziona profilo" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Profilo di KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Apertura non riuscita" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Il profile «%1» esiste già\n" "Vuoi sovrascriverlo?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profilo già esistente" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Impossibile aprire il profilo «%1» in scrittura: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "File: %1 dimensione: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nome" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Dimensione" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Ultima modifica" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Apri con" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Elimina file" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Proprietà..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Vuoi davvero eliminare «%1»?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Elimina" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Impossibile eliminare la cartella «%1»." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Impossibile eliminare il file «%1».\n" "Motivo: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Altra applicazione..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gestore di file" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "CD da 650 MB" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "CD da 700 MB" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "DVD da 4,7 GB" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "DVD da 8,5 GB" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "DVD da 9,4 GB" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "DVD da 17,1 GB" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personalizzato" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Impostazioni del profilo" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Togli la spunta se vuoi evitare una finestra di dialogo di conferma per " "cambiare il supporto quando una porzione viene completata." #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "La destinazione richiede un cambio di supporto" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtro per l'esclusione di percorsi:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Numero di copie di sicurezza complete da mantenere" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Quante copie di sicurezza complete vanno tenute nella cartella di " "destinazione prima di rimuovere quelle più vecchie" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervallo tra copie di sicurezza complete" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "La frequenza di creazione di copie di sicurezza complete, invece di quelle " "incrementali" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Ogni giorno" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " giorni" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefisso dell'archivio:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Definisce caratteri jolly per nomi di file che saranno ignorati nella copia " "di sicurezza, separati da spazio. Ad es.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Dimensione massima dell'archivio:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtro per l'esclusione di file:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Definisce un elenco di modelli di percorsi assoluti " "usati per filtrare delle cartelle complete,
ad es. /home/*/.mozilla/*/" "Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Togli la spunta se vuoi disabilitare le compressione dei file" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprimi file" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "backup" kbackup-19.12.3/po/ja/000077500000000000000000000000001363501564300143255ustar00rootroot00000000000000kbackup-19.12.3/po/ja/kbackup.po000066400000000000000000000360211363501564300163070ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-01-06 14:52-0800\n" "Last-Translator: Japanese KDE translation team \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "" #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "" #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "" #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "" #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "" #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "" #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "" #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "" #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "" #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "" kbackup-19.12.3/po/ko/000077500000000000000000000000001363501564300143445ustar00rootroot00000000000000kbackup-19.12.3/po/ko/kbackup.po000066400000000000000000000503011363501564300163230ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the kbackup package. # Jung Hee Lee , 2019. # Shinjo Park , 2019, 2020. # msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2020-02-16 00:38+0100\n" "Last-Translator: Shinjo Park \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 19.04.3\n" "Plural-Forms: nplurals=1; plural=0;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "이정희" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "daemul72@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "백업하도록 선택한 항목 없음" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "대상 dir '%1'이(가) 유효하지 않음" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "대상 디렉터리 '%1'은(는) 로컬 파일 시스템 디렉터리이고 원격 URL은 없어야 함" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "대상 디렉터리 '%1'이(가) 없습니다.\n" "\n" "제가 만들까요?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "대상 디렉터리 '%1'을(를) 만들 수 없습니다.\n" "운영 체제 반환값: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "대상 디렉터리가 존재하지 않습니다" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...보관된 보관 파일 수를 최대 %1개로 줄입니다." #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...%1 삭제 중" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "대상의 디렉터리 목록을 가져오지 못했습니다. 보관된 보관 파일을 줄일 수 없습니" "다." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "프로필 %1에 백업 타임 스탬프를 쓸 수 없습니다: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- 필터링된 파일: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! 백업이 완료되었지만 파일을 건너뛰었습니다 !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- 백업이 성공적으로 완료됨 --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "백업이 완료되었지만 파일을 건너뛰었습니다.\n" "무엇을 하시겠습니까?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "백업이 성공적으로 완료되었습니다.\n" "무엇을 하시겠습니까?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "합계: %1, 크기: %2, 기간: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...백업 중단됨!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "백업 취소됨" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...완료된 슬라이스 %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...보관 파일 %1을(를) %2(으)로 업로드하는 중" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "업로드를 어떻게 진행할까요?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "업로드 실패" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "다시 시도" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "대상 변경" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "'%1' 스크립트를 시작할 수 없습니다." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "매체가 꽉 찼습니다. %1번 매체를 넣으십시오." #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "쓰기 위해 '%1' 파일을 열 수 없습니다." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "쓰기 위해 '%1' 파일을 열 수 없습니다.\n" "\n" "다시 시도하시겠습니까?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "보관 파일에 쓸 수 없습니다. 매체가 가득 차 있을 수도 있습니다." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "보관 파일에 쓸 수 없습니다.\n" "운영 체제 반환값: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...필터링된 디렉터리 %1 건너뛰기" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "디렉터리 정보를 가져올 수 없음: %1\n" "운영 체제 보고서: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "'%1' 디렉터리에서 읽을 수 없습니다. 건너뛰는 중." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "'%1' 디렉터리를 파일 보관에 쓸 수 없습니다.\n" "매체가 가득 차 있을 수도 있습니다." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "파일 정보를 가져올 수 없음: %1\n" "운영 체제 반환값: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "'%1' 파일에서 읽을 수 없습니다.\n" "운영 체제 반환값: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "읽기 위해 '%1' 파일을 열 수 없습니다." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...파일 %1 보관 중" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "파일을 읽을 수 없음: %1\n" "운영 체제 반환값: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "압축할 임시 파일을 만들 수 없음: %1\n" "운영 체제 반환값: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "임시 파일에 쓸 수 없음" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "... 파일 %1 압축 중" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "경고:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "파일(&F)" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "설정(&S)" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "사용하기 쉬운 백업 프로그램" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "개발자" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "지정한 프로필로 시작합니다." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "하나의 아카이브 슬라이스를 마친 후에 실행할 스크립트." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "지정된 프로필로 백업을 자동으로 실행하고 완료되면 종료합니다." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "백그라운드에서 지정된 프로필로 백업을 자동으로 실행하고 (창이 표시되지 않음) " "완료되면 종료됩니다." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "autobg 모드에서 자세한 정보를 표시하고 백업 중에 모든 파일 이름을 표시합니다." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "auto/autobg 모드에서는 프로필 설정에 대해 작업하는 대신 백업을 전체 백업으로 " "강제 설정합니다." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "프로필 '%1'을(를) 읽을 수 없습니다: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "증분 백업" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "전체 백업" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "제한 없음" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "백업 시작" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "백업 취소" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "다음 백업:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "텍스트레이블" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "전체 백업 강제 적용" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "대상" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "폴더:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "매체:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "크기:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "합계" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "파일:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "시간:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "경고:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "진행 상황:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "새 프로필" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "프로필 불러오기..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "프로필 저장" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "다른 이름으로 프로필 저장..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "프로필 설정..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "모든 메시지 사용" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "시스템 트레이에 도킹" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "숨겨진 파일 표시" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "진행 중인 백업이 있습니다. 중단하시겠습니까?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "프로필 선택" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup 프로필 (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "열기 실패" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "'%1' 프로필이 이미 존재합니다.\n" "덮어 쓰시겠습니까?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "프로필 존재" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "프로필 '%1'에 기록하기 위해 열 수 없습니다: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "파일: %1 크기: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "이름" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "크기" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "수정한 날짜" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "연결 프로그램" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "파일 삭제" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "속성..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "'%1'을(를) 정말로 삭제하시겠습니까?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "삭제" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "%1' 디렉터리를 삭제할 수 없습니다." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "'%1' 파일을 삭제할 수 없습니다.\n" "이유: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "기타 프로그램..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "파일 관리자" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "사용자 정의" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "프로필 설정" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "슬라이스 완료 시 확인 대화 상자가 미디어를 변경하지 않도록 하려면 선택을 취소" "하십시오" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "대상 미디어 변경 필요" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "제외할 경로 필터:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "유지할 전체 백업 수" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "이전 백업이 삭제되기 전에 대상 디렉터리에 보관해야 하는 전체 백업 수입니다" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "전체 백업 간격" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "증분 백업 대신 전체 백업을 진행할 빈도수" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "매일" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " 일" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "보관 파일 접두사:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "백업에서 무시되는 파일 이름의 와일드 카드를 공백으로 구분하여 정의합니다. " "예: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "최대 보관 파일 크기:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "제외 파일 이름 필터:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

완전한 디렉터리를 필터링하는 데 사용되는 절대 경로 패턴" "의 목록을 정의합니다.
예: /home/*/.mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "파일을 압축하지 않으려면 선택을 해제하십시오" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "파일 압축" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "백업" kbackup-19.12.3/po/lt/000077500000000000000000000000001363501564300143525ustar00rootroot00000000000000kbackup-19.12.3/po/lt/kbackup.po000066400000000000000000000363241363501564300163420ustar00rootroot00000000000000# Lithuanian translations for kbackup package. # Copyright (C) 2019 This file is copyright: # This file is distributed under the same license as the kbackup package. # Automatically generated, 2019. # msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-11-29 03:19+0100\n" "Last-Translator: Automatically generated\n" "Language-Team: lt\n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" "%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "" #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "" #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "" #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "" #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "" #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "" #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "" #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "" #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "" #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "" kbackup-19.12.3/po/nl/000077500000000000000000000000001363501564300143445ustar00rootroot00000000000000kbackup-19.12.3/po/nl/docs/000077500000000000000000000000001363501564300152745ustar00rootroot00000000000000kbackup-19.12.3/po/nl/docs/kbackup/000077500000000000000000000000001363501564300167145ustar00rootroot00000000000000kbackup-19.12.3/po/nl/docs/kbackup/index.docbook000066400000000000000000000506771363501564300214040ustar00rootroot00000000000000 KBackup" > ]> Het handboek van &kbackup; Martin Koller kollix@aon.at &Freek.de.Kruijf; 2006 - 2017 Martin Koller &FDLNotice; 2018-01-05 Applications 18.04 &kbackup; is een toepassing die u reservekopieën laat maken van uw gegevens op een eenvoudige, gebruikersvriendelijke manier. KDE systeem KBackup reservekopie opslag archief zip gzip bzip2 xz Inleiding &kbackup; is een programma dat u van alle mappen of bestanden reservekopieën laat maken, waarbij het een gemakkelijk te maken boomstructuur gebruikt om om de dingen te selecteren waar een reservekopie van gemaakt moet worden. Het laat u uw instellingen opslaan in zogenaamde profielbestanden, waar een profiel een eenvoudig tekstbestand is die definities bevat voor mappen en bestanden om ingevoegd of uitgesloten worden van het backupproces. Het laat u ook definiëren waar de backup wordt opgeslagen. Het doel kan ofwel een lokale map zijn (⪚ een lokaal aangekoppeld apparaat zoals een ZIP-station, USB-stick, &etc;), maar het kan ook elke &URL; op afstand zijn (⪚ smb://remote/een_pad) om de reservekopie van uw gegevens op een centrale server, &etc;, op te slaan Het programma kan ook als een automatische backup zonder gebruik van een grafische gebruikersinterface actief worden. U kunt eenvoudig een profiel aanmaken en deze instellingen gebruiken om aan &kbackup; te vertellen wat te doen wanneer het actief wordt in niet-interactieve modus, ⪚ door het starten van een cron-job. Het programma is ontworpen om eenvoudig in gebruik te zijn zodat het gebruikt kan worden door de eenvoudige computergebruiker. Het opslagformaat is het welbekende TAR-formaat, waarbij de gegevens nog steeds opgeslagen kunnen zijn in een gecomprimeerd formaat (xz,bzip2 of gzip). De huidige implementatie biedt alleen de backup-stap. Om gegevens te herstellen in uw systeem, moet u nu ⪚, &dolphin; gebruiken om de TAR backupbestanden te openen en slepen/loslaten gebruiken om de bestanden terug op uw bestandssysteem te krijgen. Dit is ook een voordeel van het gebruik van het welbekende en goed ondersteunde TAR-bestandsformaat. Als de bestanden gecomprimeerd zijn kunt u alle bestanden recursief uitpakken uit de huidige map met het volgende commando: find . -name \*bz2 -print0 | xargs -0 bunzip2 U kunt als alternatief ook &ark; gebruiken om een volledige backup uit te pakken of gewoon een paar bestanden uit een backup. &kbackup; gebruiken Alles wat er nodig is te doen is het selecteren welke mappen u wilt opslaan. Dit wordt gedaan door alle mappen in de boomstructuurweergave aan de linkerkant van het hoofdvenster. Als u een map selecteert zal &kbackup; automatisch alle bestanden en onderliggende submappen opslaan. Als u delen van een submap wilt uitsluiten van een geselecteerde map, maak eenvoudig de selectie van deze bestanden/mappen binnen de nog steeds geselecteerde map ongedaan. Dit betekent in het algemeen: een geselecteerde map zal alles erin en eronder herstellen, behalve de niet geselecteerde delen erin. Dit betekent ook dat, wanneer u een profiel later opnieuw gebruikt (zie onderstaand) en nieuwe bestanden zijn toegevoegd aan een map die al is geselecteerd voor de backup, alle nieuwe bestanden ook opgeslagen zullen worden. Hier is een schermafdruk van &kbackup; Schermafbeelding van het hoofdvenster Profielen gebruiken Om een selectie voor later gebruik te bewaren, sla deze eenvoudig op in een &kbackup;-profielbestand. Gebruik het menu Bestand en selecteer Profiel opslaan. Om een selectie in &kbackup; te herladen, gebruik het menu-item Bestand Profiel laden.... &kbackup; slaat in een profiel de selecties op voor alle meegenomen mappen/bestanden, uitgesloten mappen/bestanden, de doelmap/&URL;, gedefinieerde archiefvoorvoegsel, de gedefinieerde maximum grootte van het bestandsgedeelte, &etc; Als u het gebruik van elke dag een reservekopie maken van dezelfde set bestanden eenvoudiger wilt maken, sla uw instellingen op in een &kbackup;-profiel (een .kbp bestand) en geeft dat bestand op op de opdrachtregel. ⪚: kbackup mijnGegevens.kbp Tip: u kunt ook een sneltoets op uw bureaublad aanmaken naar een bestand .kbp als het bestandstype geregistreerd is om &kbackup; te starten op een dubbelklik. Archiefgedeelte Omdat eem medium normaal een beperkte capaciteit heeft (⪚ 100MB ZIP-schijf), zal &kbackup; verschillende archiefgedeelten aanmaken. Elk archiefgedeelte zal zijn eigen naam krijgen, die er als volgt er uit ziet: backup_2006.08.26-13.04.44_1.tar De naam bevat de aanmaakdatum en tijd (die hetzelfde zal zijn voor alle gedeelten van één backup) en een gedeelte-volgnummer (_1 in dit voorbeeld). In het menu bestand Profielinstellingen... kunt u een ander archiefvoorvoegsel definiëren dan de standaard backup. In de dialoog Profielinstellingen kunt u ook a maximale grootte van het archiefgedeelte definiëren, die de grootte van het gedeelte beperkt zelfs als er meer ruimte op het doelapparaat over is. Dit helpt om archiefgedeelten te maken die later op een &CD;/&DVD;, &etc; gebrand kunnen worden. Als u expliciet de grootte van een archiefgedeelte beperkt, zal de beschikbare grootte gemarkeerd worden met (*) in het hoofdvenster. Maar zelfs als u een gedeelte definieert van onbegrensde grootte, zijn er andere beperkingen die de grootte van een gedeelte beperken: Beperkt door de doelmap (bij direct opslaan in een lokale map) beperkt door de map /tmp toen we een tmp-bestand voor latere upload naar een externe &URL; In de Profielinstellingen kunt u ook een maximum aantal volledige backups definiëren die in de doelmap behouden blijven en daarom automatisch alle oudere backups daar verwijderen. ⪚ als u het instelt op 3, zal &kbackup; de laatste 3 backups behouden en alle oudere verwijderen. Incrementele reservekopie Met een incrementele backup zullen niet alle bestanden elke keer dat de backup wordt uitgevoerd worden opgeslagen, maar alleen de bestanden die gewijzigd zijn sinds de laatste backup. Dit heeft het grote voordeel dat de incrementele backup heel wat minder bestanden zal meenemen dan een volledige backup en daardoor in een veel kortere tijd zal eindigen. Dit werkt als volgt: in het profiel definieert u een interval (in dagen) voor de volledige backup. ⪚ wanneer u 5 dagen definieert zal &kbackup; een volledige backup van alle bestanden elke 5 dagen doen. Wanneer u &kbackup; start voordat het interval verloopt met dit profiel - onafhankelijk van hoe vaak u een backup uitvoert - alleen de bestanden die zijn gewijzigd sinds de laatste backup worden opgeslagen. &kbackup; slaat het tijdstip van de laatste backup op in het profiel en weet daarom wat te doen wanneer het de volgende keer actief wordt. Besatnden van het archiefgedeelte gemaakt tijdens een incrementele backup zal de tekst _inc bevatten, ⪚: backup_2010.06.14-18.50.26_1_inc.tar Bestandsgedeelten van een volledige backup zullen geen _inc in de naam invoegen, ⪚: backup_2010.06.13-20.58.14_1.tar Wanneer u bestanden wilt herstellen uit een incrementele backup, is het belangrijk te kijken naar de meest recente versie van een bestand om te herstellen in alle _inc bestanden en tenslotte ook in het bestandsgedeelte van de laatste volledige backup. Dit is exact ook het nadeel van de incrementele backup (maar er is geen voordeel zonder nadeel ;-) ) Als u een volledige backup eerder wilt doen dan de gedefinieerde incrementele cyclustijd gedefinieerd in een profiel, dan kunt u dat doen door activeren van de optie Volledige backup afdwingen in het gebruikersinterface. Wanneer &kbackup; wordt gestart via de opdrachtregel kan dit worden bereikt door de optie te gebruiken Een afgedwongen volledige reservekopie zal de backupcyclus herstarten, &ie; &kbackup; telt de dagen naar de volgende volledige reservekopie vanaf de tijd van de laatste volledige reservekopie. Compressie van het archief &kbackup; zal de opgeslagen bestanden comprimeren als u dit activeert in de profielinstellingen. Afhankelijk van de beschikbaarheid op uw systeem kiest het de compressie xz,bzip2 of gzip. &kbackup; zal elk enkel bestand comprimeren en alle bestanden met een toegevoegde bestandsextensie (.xz, .bzip2) of .gz) in de het dan niet-gecomprimeerde .tar-archief opslaan. Wanneer u het maken van de backup hebt geselecteerd op enige lokale bestandssystemen (⪚ uw extra schijf, ZIP-station, &etc;) - wat betekent dat u geen doel op afstand &URL; hebt ingevoerd - kan &kbackup; de gehele backup opsplitseb in verschillende archiefgedeelten veroorzaakt door beperkingen in de capaciteit van media. ⪚: backup_2006.08.26-13.04.44_1.tar backup_2006.08.26-13.04.44_2.tar Reservekopie maken automatiseren Als u het backupproces wilt automatiseren biedt &kbackup; verschillende opties op de opdrachtregel om hiermee te helpen: Wanneer u &kbackup; uitvoert met deze optie en een gegeven .kbp-profiel, zal het starten, het gegeven profiel laden, de backup uitvoeren en eindigen indien gereed. Dit alles wordt gedaan met een zichtbaar gebruikersinterface van &kbackup;. Wanneer u &kbackup; uitvoert met deze optie en een gegeven .kbp profiel, zal het hetzelfde proces als met uitvoeren, maar zonder het tonen van een grafisch gebruikersinterface. Vandaar het achtervoegsel bg wat staat voor background - alles wordt in de achtergrond gedaan, dus dit is de juiste optie om te gebruiken wanneer u uw backups uitvoert, ⪚, gestart door een cron-job. Wanneer wordt gebruikt zal de uitvoer van &kbackup; - met het tonen van de voortgang van de backup - geschreven worden naar stderr. Standaard bevat de uitvoer maar een paar belangrijke berichten en een samenvatting aan het eind. Als u toevoegt, dan zult u ook elke bestandsnaam zien die nu een backup krijgt. Overzicht van de opdrachten Het hoofdvenster van &kbackup; Het menu Bestand Bestand Recent openen Toont een submenu met de recente gebruikte profielen voor gemakkelijkere selectie. Bestand Nieuw profiel Wist de selectie en het invoerveld met doel, om in staat te zijn een nieuw profiel te definiëren. Bestand Profiel laden... Laadt een profiel. Bestand Profiel opslaan Slaat alle instellingen op in het nu geladen profiel. Bestand Profiel opslaan als... Slaat alle instellingen op in een profiel met een neiuwe naam. Bestand Profielinstellingen... In de instellingen kunt u definiëren of de bestanden met archiefgedeelten beginnen met de standaard naam backup of met een alternatieve naam. U kunt ook de grootte van het archiefgedeelte beperken. Zie hoofdstuk Archiefgedeelten. Deze instellingen worden ook opgeslagen in het profiel. &Ctrl;Q Bestand Afsluiten Sluit &kbackup; af. Het menu Instellingen Instellingen In systeemvak vastzetten Wanneer deze optie is geactiveerd wordt een pictogram getoond in het systeemvak, die de huidige status weergeeft van een backup-bewerking. Een animatie wordt getoond wanneer een backup bezig is, anders ziet u een statisch pictogram. Als deze optie is geselecteerd zal het sluiten van het hoofdvenster &kbackup; niet beëindigen. De toepassing moet expliciet afgesloten worden door de actie Afsluiten te selecteren. Via het contextmenu van het pictogram van &kbackup; in het systeemvak kunt u een backup-bewerking starten en annuleren - wat hetzelfde is als u kan doen in het hoofdvenster. De tekstballon op dit pictogram geeft ook voortgangsinformatie (Aantal opgeslagen bestanden, grootte van de backup en het laatst opgeslagen bestand). InstellingenAlle meldingen inschakelen Dit item activeren wist alle intern opgeslagen Niet opnieuw vragen vlaggen voor de dialogen getoond in &kbackup;. Instellingen Verborgen bestanden tonen In- of uitschakelen het tonen van verborgen bestanden (voorafgegaan door een punt) in de boomstructuurweergave. Gebruik deze optie als u enige verborgen bestanden wilt uitsluiten van de backup. Als u alle verborgen bestanden, wilt uitsluiten, gebruik dan een bestandsnaamfilter in de profielinstellingen. Het menu Help &kbackup; heeft een aantal van de algemene &kde; items in het menu Help, voor meer informatie lees de sectie hierover in het Menu Help van &kde; Fundamentals. Gids voor ontwikkelaars van &kbackup; &kbackup; kan uitgebreid worden met gebruik van een shellscript (of elke ander uitvoerbaar programma) dat gestart zal worden op drie verschillende punten gedurende de backup-proces. Het idee erachter is dat het toestaat om media aan te koppelen, af te koppelen, een uit te werpen op een voor het systeem specifieke manier of andere dingen te doen met de geproduceerde archiefbestanden. Het uit te voeren script moet gegeven zijn met de optie op de opdrachtregel . Hier is een voorbeeldscript: sliceScript.sh #!/bin/sh mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) if [ "$mountPoint" != "" ] then mount /media/zip rm -f /media/zip/backup_2*.tar* fi ;; "slice_closed" ) ;; "slice_finished" ) if [ "$mountPoint" != "" ] then umount /media/zip eject /media/zip fi ;; esac Het script wordt altijd geactiveerd met vier argumenten op de opdrachtregel: activeringsmodus archief (gedeelte) bestandsnaam doelmap/&URL; aankoppelpunt van de doelmap als het een lokale map is, anders een lege tekenreeks Er zijn drie mogelijke modi van uitvoeren: slice_init aangeroepen voordat een nieuw archiefgedeelte wordt aangemaakt op schijf slice_closed aangeroepen nadat een archiefgedeelte met is aangemaakt, maar voordat het in de doelmap is geplaatst Dit kan gebruikt worden als u het archiefgedeelte wilt kopiëren naar een extra plaats, ⪚ het archief wordt verzonden naar de hoofdserver (via een doel-&URL;), maar u wilt de laatste backup ook op de lokale schijf houden. slice_finished aangeroepen nadat een archiefgedeelte met succes is overgebracht in de doelmap Dankbetuigingen en licentie &kbackup; Programma copyright © 2006 - 2009 Martin Koller kollix@aon.at Documentatie copyright © 2006 - 2009 Martin Koller &meld.fouten;&vertaling.freek; &underFDL; &underGPL; &documentation.index; kbackup-19.12.3/po/nl/kbackup.po000066400000000000000000000503141363501564300163270ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Freek de Kruijf , 2018. # Jan Mussche , 2018. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-11-26 09:43+0100\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Freek de Kruijf" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "freekdekruijf@kde.nl" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Niets geselecteerd voor reservekopie" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "De doelmap '%1' is niet geldig" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "De doelmap '%1' moet een map in een lokaal bestandssysteem zijn en geen URL " "op afstand" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "De doelmap '%1' bestaat niet.\n" "\n" "Deze aanmaken?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Kon de doelmap '%1' niet aanmaken.\n" "Het besturingssysteem meldt: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "De doelmap bestaat niet" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...het aantal bewaarde archieven wordt tot max. %1 verkleind" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...verwijderen van %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "ophalen van de lijst met mappen is mislukt. Kan bewaarde archieven niet " "verkleinen." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Kon tijdstippen van reservekopie niet in profiel '%1' schrijven: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Gefilterde bestanden: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! Reservekopie maken voltooid maart er zijn bestanden overgeslagen !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Reservekopie maken met succes voltooid --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Het maken van de reservekopie is voltooid, maar er zijn bestanden " "overgeslagen.\n" "Wat wilt u nu doen?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "De reservekopie maken is met succes voltooid.\n" "Wat wilt u nu doen?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totalen: bestanden: %1, grootte: %2, duur: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...reservekopie maken afgebroken!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Reservekopie maken geannuleerd" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...beëindigd gedeelte %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...uploaden van archief %1 naar %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Hoe gaan we verder met de upload?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Uploaden is mislukt" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Opnieuw proberen" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Doel wijzigen" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Het script %1 kon niet worden gestart." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Het medium is vol. Plaats medium nr. %1 alstublieft" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Het bestand '%1' kon niet worden geopend voor bewerken." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Het bestand '%1' kon niet worden geopend voor bewerken.\n" "\n" "Wilt u het opnieuw proberen?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Kon niet naar het archief schrijven. Misschien is het medium vol." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Kon niet naar het archief schrijven. Misschien is het medium vol.\n" "Het besturingssysteem meldt: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...overslaan van gefilterde directory %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Kon van directory: %1 geen informatie krijgen \n" "Het besturingssysteem meldt: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Directory '%1' kan niet gelezen worden. Sla over." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Kon directory '%1' niet naar het archief schrijven.\n" "Misschien is het medium vol." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Kon van bestand: %1 geen informatie krijgen\n" "Het besturingssysteem meldt: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Kon bestand '%1' niet lezen\n" "Het besturingssysteem meldt: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Kon bestand '%1' niet openen voor lezen." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archiveren van bestand %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Kon bestand: %1 niet lezen\n" "Het besturingssysteem meldt: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Kon tijdelijk bestand voor comprimeren niet aanmaken: %1\n" "Het besturingssysteem meldt: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Kon niet naar tijdelijk bestand schrijven" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...bestand %1 wordt gecomprimeerd" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "WAARSCHUWING:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Bestand" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "In&stellingen" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Een eenvoudig te gebruiken programma voor reservekopieën" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Ontwikkelaar" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Begin met gegeven profiel." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" "Na het maken van een reservekopie van een deel wordt dit script gestart." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Start het maken van de reservekopie automatisch met het gegeven profiel en " "beëindig het wanneer gereed." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Start, zonder het tonen van een venster, op de achtergrond het maken van de " "reservekopie automatisch met het gegeven profiel en beëindig het wanneer " "gereed." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "Toon alle informatie in autobg mode gedurende het maken van de reservekopie." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Forceer een complete reservekopie in auto/autobg mode in plaats van de " "profielinstellingen te volgen." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Kon profiel '%1' niet openen voor lezen: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Incrementele reservekopie" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Complete reservekopie" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "onbeperkt" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Start het maken van de reservekopie" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Breek het maken van de reservekopie af." #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Volgende reservekopie:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Tekstlabel" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Volledige reservekopie afdwingen" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Doel" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Map:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Medium:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Grootte:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totalen" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Bestanden:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Tijdsduur:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Waarschuwingen:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Voortgang:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nieuw profiel" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Profiel laden..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Profiel opslaan" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Sla profiel op als..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profielinstellingen..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Schakel alle berichten in" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "In systeemvak plaatsen" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Verborgen bestanden tonen" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Er wordt een reservekopie gemaakt. Wilt u dit afbreken?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Profiel selecteren" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup-profiel (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Openen is mislukt" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Het profiel '%1' bestaat al.\n" "Wilt u het overschrijven?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profiel bestaat" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Kon profiel '%1' niet openen voor schrijven: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Bestanden: %1 Grootte: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Naam" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Grootte" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Laatst gewijzigd" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Openen met" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Bestand verwijderen" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Eigenschappen..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Wit u werkelijk '%1' verwijderen?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Verwijderen" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Kon directory '%1' niet verwijderen." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Kon bestand '%1' niet verwijderen.\n" "Reden: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Ander programma..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Bestandsbeheer" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "aangepast" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profielinstellingen" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Haal het vinkje weg wanneer u een medium wissel niet wilt bevestigen wanneer " "een gedeelte gereed is." #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Het doel benodigt een mediumwissel" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filter om bestandspaden uit te sluiten:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Aantal te bewaren volledige reservekopieën" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Hoeveel volledige reservekopieën moeten in de doel-directory bewaard blijven " "voordat oudere exemplaren worden weggegooid?" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Complete reservekopie interval" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Hoe vaak moet een volledige reservekopie, in plaats van een incrementele, " "worden gemaakt" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Elke dag" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dagen" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Archief-voorvoegsel:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Definieert jokers voor bestandsnamen die niet mee worden gekopiëerd, " "gescheiden door een spatie. B.v.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Maximum archief grootte:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filter om bestanden uit te sluiten:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Definiëert een lijst met absolute padpatronen die " "gebruikt worden om complete directories te filteren,
b.v. /home/*/." "mozilla/*/cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Deactiveren als u het comprimeren van bestanden wilt voorkomen" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Bestanden comprimeren" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "reservekopie" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Annuleren" kbackup-19.12.3/po/nn/000077500000000000000000000000001363501564300143465ustar00rootroot00000000000000kbackup-19.12.3/po/nn/kbackup.po000066400000000000000000000524041363501564300163330ustar00rootroot00000000000000# Translation of kbackup to Norwegian Nynorsk # # Øystein Steffensen-Alværvik , 2018, 2019. # Karl Ove Hufthammer , 2018, 2019. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2019-12-19 10:49+0100\n" "Last-Translator: Øystein Steffensen-Alværvik \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 19.08.3\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Øystein Steffensen-Alværvik,Karl Ove Hufthammer" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kjake@posteo.no,karl@huftis.org" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Ingenting er merkt for kopiering" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Målmappa «%1» er ugyldig" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "Målmappa «%1» må vera på eit lokalt filsystem, ikkje på eit nettverk" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Målmappa «%1» finst ikkje.\n" "\n" "Ønskjer du å oppretta ho?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Klarte ikkje oppretta målmappa «%1».\n" "Systemet melde: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Målmappa finst ikkje" # Bruken av teikn som «...», «--» og «!!» i starten av ei setning er tydelegvis for å markera viktigare meldingar i kopieringsloggen. # Men med «...» verkar det som programmet vil gjera to ting: markera teksten i loggen *og* markera ein prosess (og ikkje berre eit resultat). #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "… reduserer talet på arkiv til %1 (maksgrensa)" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "… slettar %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "Feil ved henting av oversikt over filer/mapper i målmappa. Klarar ikkje " "avgrensa talet på lagra arkiv." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "Klarte ikkje skriva dato og klokkeslett for reservekopiering til profilen " "%1: %2" # Filtrerte? #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "– Utelatne filer: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! Reservekopieringa er fullført, men nokre filer vart hoppa over." #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "– Reservekopieringa er fullført –" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Reservekopiering er fullført, men nokre filer vart hoppa over.\n" "Kva vil du gjera?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Reservekopiering er fullført.\n" "Kva vil du gjera?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Resultat: Filer: %1. Storleik: %2. Tid: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "… reservekopieringa vart avbroten." #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Reservekopieringa vart avbroten" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "… ferdig med arkivdelen %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "… lastar opp arkiv %1 til %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Korleis vil du halda fram med opplastinga?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Feil ved opplasting" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Prøv på nytt" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Endra målmappe" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Klarte ikkje køyra skriptet «%1»." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Mediet er fullt. Set inn medium %1." #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Klarte ikkje opna fila «%1» for skriving." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Klarte ikkje opna fila «%1» for skriving.\n" "\n" "Vil du prøva på nytt?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Klarte ikkje skriva til arkiv. Det kan vera at mediet er fullt." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Klarte ikkje skriva til arkiv.\n" "Systemet melde: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "… hoppar over utelaten mappe %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Klarte ikkje henta informasjon om mappe: %1\n" "Systemet melde: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Mappa «%1» kan ikkje lesast. Ho vert hoppa over." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Klarte ikkje lagra mappa «%1» til arkivet.\n" "Det kan vera at mediet er fullt." # «%1» er ei heil filbane. #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Klarte ikkje henta informasjon om fila: %1\n" "Systemet melde: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Klarte ikkje lesa fila «%1».\n" "Systemet melde: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Klarte ikkje opna fila «%1» for lesing." # «%1» er ei heil filbane. #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "… arkiverer fila %1" # Usikker på om «%1» viser til filnamn eller filbane. Kjeldekoden seier «origName, origFile.errorString()));» #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Klarte ikkje lesa fila %1\n" "Systemet melde: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Klarte ikkje laga mellombels fil for komprimering: %1\n" "Systemet melde: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Klarte ikkje skriva til mellombels fil" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "… komprimerer fila %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "ÅTVARING:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Fil" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Innstillingar" # skip-rule: backup #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Eit brukarvennleg program for reservekopiering" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "© 2006–2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Utviklar" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Start med vald profil." # Eller «arkivdel»? #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Skript som skal køyrast ved fullføring av ein arkivdel." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Køyr reservekopieringa automatisk med vald profil, og avslutt ved fullføring." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Køyr reservekopieringa automatisk i bakgrunnen (utan å visa vindauge) med " "vald profil, og avslutt ved fullføring." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "Vis alle filnamn som vert tekne reservekopi av i «autobg»-modus." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Køyr fullstendig reservekopiering ved «auto»-/«autobg»-reservekopiering, " "uavhengig av profilinnstillingane." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Klarte ikkje opna profilen «%1» for lesing: %2" # Kjem etter teksten «Next Backup:». Tenker det ser rart ut med «reservekopiering» både før og etter kolon. #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "berre endra data" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "alle dataa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "Uavgrensa" # Breiare knapp. #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Start reservekopiering" # Knapp med liten plass. #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Avbryt kopiering" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Neste reservekopiering:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Tekstmerkelapp" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Tving fullstendig reservekopi" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Mål" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Mappe:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Medium:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Storleik:" # Kjeldekoden viser til det binære talsystemet. #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MiB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Resultat" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Filer:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" # skip-rule: einingmb # Kjeldekoden viser til det binære talsystemet. #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MiB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Tid:" # TT:MM:SS #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Åtvaringar:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Framdrift:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Ny profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Opna profil …" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Lagra profil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Lagra profil som …" #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profilinnstillingar …" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Vis alle meldingar" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Legg i systemtrauet" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Vis gøymde filer" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Ei reservekopiering pågår. Vil du avbryta ho?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Vel profil" # skip-rule: backup #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup-profil (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Feil ved opning" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Profilen «%1» finst frå før.\n" "Vil du overskriva han?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profil finst frå før" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Klarte ikkje opna profilen «%1» for skriving: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Filer: %1. Storleik: %2 MiB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Namn" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Storleik" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Sist endra" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Opna med" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Slett fil" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Eigenskapar …" #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Er du sikker på at du vil sletta «%1»?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Slett" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Klarte ikkje sletta mappa «%1»." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Klarte ikkje sletta fila «%1».\n" "Årsak: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Anna program …" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Filhandsamar" # Kjeldekoden seier at programmet brukar «MiB» for CD-ar og «GB» for DVD-ar. #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "CD (650 MiB)" # Kjeldekoden seier at programmet brukar «MiB» for CD-ar og «GB» for DVD-ar. #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "CD (700 MiB)" # Kjeldekoden seier at programmet brukar «MiB» for CD-ar og «GB» for DVD-ar. #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "DVD (4,7 GB)" # Kjeldekoden seier at programmet brukar «MiB» for CD-ar og «GB» for DVD-ar. #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "DVD (8,5 GB)" # Kjeldekoden seier at programmet brukar «MiB» for CD-ar og «GB» for DVD-ar. #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "DVD (9.4 GB)" # Kjeldekoden seier at programmet brukar «MiB» for CD-ar og «GB» for DVD-ar. #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "DVD (17,1 GB)" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "Tilpassa" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profilinnstillingar" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Viss det ikkje er kryssa av her, vert du ikkje spurd om å byta medium når " "ein arkivdel er fullført." #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Målet krev mediebyte" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Utelat mapper med mønsteret:" # – Kolon er oftast brukt i slike samanhengar. #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Kor mange fullstendige reservekopiar å ta vare på:" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Talet på fullstendige reservekopiar som skal takast vare på i målmappa før " "eldre kopiar vert sletta." # – Eller berre «kopiering»; Utvidar vindauget seg for å få plass til teksten? # # – Kolon er oftast brukt i slike samanhengar. #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Tid mellom fullstendig reservekopiering:" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Kor ofte ein fullstendig reservekopi (ikkje berre av endra data) skal takast" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Kvar dag" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dagar" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Arkivprefiks:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Filnamnmønster (med jokerteikn) for kva filer som skal hoppast over, skilde " "med mellomrom. Eksempel: «*.ogg *.wav»." #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Største arkivstorleik:" # skip-rule: einingmb # Kjeldekoden viser til det binære talsystemet. #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MiB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Utelat filer med mønsteret:" # skip-rule: klammeform #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Ei liste over mappeadresser som skal utelatast ved " "reservekopiering.
Eksempel: /home/*/.mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Viss det ikkje er kryssa av her, vert ikkje arkivfilene komprimerte." #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Komprimer filer" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "Reservekopi" kbackup-19.12.3/po/pl/000077500000000000000000000000001363501564300143465ustar00rootroot00000000000000kbackup-19.12.3/po/pl/kbackup.po000066400000000000000000000503201363501564300163260ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Łukasz Wojniłowicz , 2018, 2019. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2019-01-20 07:13+0100\n" "Last-Translator: Łukasz Wojniłowicz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 19.03.70\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Łukasz Wojniłowicz" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "lukasz.wojnilowicz@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nie wybrano niczego do stworzenia kopii zapasowej" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Katalog docelowy '%1' jest nieprawidłowy" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Katalog docelowy '%1' musi być katalogiem lokalnego systemu plików, a nie " "zdalnym adresem URL" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Katalog docelowy '%1' nie istnieje.\n" "\n" "Czy chcesz go utworzyć?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Nie można utworzyć katalogu docelowego '%1'.\n" "System operacyjny zgłasza: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Katalog docelowy nie istnieje" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...ograniczenie liczby przechowywanych archiwów do maks. %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...usuwanie %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "nie udało się pobieranie wykazu katalogów dla katalogu docelowego. Nie można " "zmniejszyć liczby przechowywanych archiwów." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Nie można zapisać znaczników czasu do profilu %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Odfiltrowane pliki: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Ukończono tworzenie kopii zapasowej lecz pominięto pliki !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Pomyślnie ukończno tworzenie kopii zapasowej --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Ukończono tworzenie kopii zapasowej, lecz są pominięte pliki.\n" "Co chcesz teraz zrobić?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Pomyślnie utworzono kopię zapasową.\n" "Co chcesz teraz zrobić?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Podsumowanie: Pliki: %1, Rozmiar: %2, Czas trwania: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...przerwano tworzenie kopii zapasowej!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Porzucono tworzenie kopii zapasowej" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...ukończno wycinek %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...wysyłanie archiwum %1 do %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "W jaki sposób kontynuować wysyłanie?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Niepowodzenie wysyłania" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Ponów" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Zmień katalog docelowy" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Nie można wykonać skryptu '%1'." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Nośnik jest pełny. Podepnij nośnik nr. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Pliku '%1' nie można otworzyc do odczytu." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Pliku '%1' nie można otworzyc do odczytu.\n" "\n" "Czy chcesz ponowić próbę?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Nie można zapisać do archiwum. Może nośnik jest pełny." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Nie można zapisać do archiwum.\n" "System operacyjny zgłasza: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...pomijanie odfiltrowanego katalogu %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Nie można pobrać danych o katalogu: '%1'\n" "System operacyjny zgłasza: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Katalog '%1' nie jest do odczytu. Pomijanie." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Nie można zapisać katalogu '%1' do archiwum.\n" "Może nośnik jest pełen." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Nie można pobrać danych o pliku: %1\n" "System operacyjny zgłasza: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Nie można odczytać pliku: '%1'\n" "System operacyjny zgłasza: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Nie można otworzyć pliku '%1' do odczytu." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archiwizowanie pliku %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Nie można odczytać pliku: %1\n" "System operacyjny zgłasza: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Nie można utworzyć tymczasowego pliku do pakowania: %1\n" "System operacyjny zgłasza: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Nie można zapisać do pliku tymczasowego" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...pakowanie pliku %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "UWAGA:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Plik" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "U&stawienia" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "łatwy w użyciu program do tworzenia kopii zapasowych" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Programista" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Rozpocznij z danym profilem" #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Skrypt do wykonania po ukończeniu każdego wycinka archiwum." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Samoczynnie wykonaj kopię przy użyciu danego profilu i wyjdź po jej " "ukończeniu." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Samoczynnie wykonaj kopię przy użyciu danego profilu w tle (bez pokazywania " "okna) i wyjdź po jej ukończeniu." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "W trybie autobg bądź szczegółowy i wyświetlaj każdą pojedynczą nazwę pliku " "podczas tworzenia kopii zapasowej." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "W trybie auto/autobg wymuś, aby kopia była pełną kopią zapasową, a nie taką " "na podstawie ustawień profilu." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Nie można otworzyć profilu '%1' do odczytu: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Przyrostowa kopia zapasowa" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Pełna kopia zapasowa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "nieograniczony" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Rozpocznij kopię zapasową" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Porzuć kopię zapasową" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Następna kopia zapasowa:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "EtykietaTekstowa" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Wymuś pełną kopię zapasową" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Miejsce docelowe" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Katalog:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Nośnik:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Rozmiar:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Podsumowanie" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Pliki:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Czas trwania:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Ostrzeżenia:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Postęp:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nowy profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Wczytaj profil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Zapisz profil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Zapisz profil jako..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Ustawienia profilu..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Włącz wszelkie powiadomienia" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Dok w tacce systemowej" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Pokaż ukryte pliki" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Obecnie tworzona jest kopia zapsowa. Czy chcesz ją przerwać?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Wybierz profil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Profil KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Nie udało się otworzyć" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Profil '%1' już istnieje\n" "Czy chcesz go zastąpić?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profil już istnieje" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Nie można otworzyć profilu '%1' do zapisu: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Pliki: %1 Rozmiar: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nazwa" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Rozmiar" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Ostatnio zmieniony" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Otwórz za pomocą" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Usuń plik" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Właściwości..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Czy na pewno chcesz usunąć '%1'?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Usuń" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Nie można usunąć katalogu '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Nie można usunąć pliku '%1'.\n" "Powód: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Inny program..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Zarządzanie plikami" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "własny" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Ustawienia profilu" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Nie zaznaczaj, jeśli chcesz uniknąć okna dialogowego potwierdzenia zmiany " "nośnika po ukończeniu wycinka" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Katalog docelowy wymaga zmiany nośnika" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtr ścieżek wykluczonych:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Liczba przechowywanych pełnych kopii zapasowych" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Określa liczbę pełnych kopii zapasowych, które powinny pozostać przed " "rozpoczęciem usuwania starych" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Okres pełnej kopii zapasowej" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Określa jak często ma być wykonywana pełna kopia zapasowa, zamiast " "przyrostowej" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Codziennie" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dni" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Przedrostek archium:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Określa znaki wieloznaczne dla nazw plików, które będą pomijane przy " "tworzeniu kopii zapasowej, znaki powinny być oddzielone znakiem odstępu, " "np.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Górna granica rozmiaru archiwum:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtr nazw plików wykluczonych:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Stanowi listę wzorców ścieżek bezwzględnych, które są " "używane do odfiltrowywania całych katalogów,
np. /home/*/.mozilla/*/" "Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Nie zaznaczaj, jeśli chcesz zupełnie pominąć pakowanie plików" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Pakuj pliki" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "kopia zapasowa" kbackup-19.12.3/po/pt/000077500000000000000000000000001363501564300143565ustar00rootroot00000000000000kbackup-19.12.3/po/pt/kbackup.po000066400000000000000000000507221363501564300163440ustar00rootroot00000000000000# translation of pt.po to Portuguese # translation of pt.po_[u3icsb].po to # This file is put in the public domain. # # Carlos Gonçalves , 2006, 2007, 2009. msgid "" msgstr "" "Project-Id-Version: pt\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-11-26 11:49+0000\n" "Last-Translator: Carlos Gonçalves \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-POFile-SpellExtra: KBackup Koller TextLabel GB kbp\n" "X-POFile-IgnoreConsistency: Name\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "José Nuno Pires" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "zepires@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nada seleccionado para salvaguardar" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "A pasta de destino '%1' não é válida" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "A pasta de destino '%1' deve ser uma pasta do sistema de ficheiros local e " "não um URL remoto" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "A pasta de destino '%1' não existe.\n" "\n" "Posso criá-la?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Não foi possível criar a pasta de destino: %1\n" "O sistema operativo devolveu: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "A pasta de destino não existe" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "... a reduzir o número de pacotes a guardar para um máximo de %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "... a remover o %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "a obtenção da listagem da pasta de destino falhou. Não foi possível reduzir " "o número de pacotes a guardar." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Não foi possível gravar as datas de salvaguarda no perfil %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Ficheiros Filtrados: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! A cópia de segurança terminou mas alguns ficheiros foram ignorados !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- A cópia de segurança terminou com sucesso --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "A cópia de segurança terminou mas alguns ficheiros foram ignorados.\n" "O que deseja fazer agora?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "A cópia de segurança terminou com sucesso.\n" "O que deseja fazer agora?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Total: Ficheiros: %1, Tamanho: %2, Duração: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Cópia de segurança interrompida!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Cópia de segurança cancelada" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...terminada a parcela %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...a enviar o pacote %1 para %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Como devemos proceder com o envio?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "O Envio Foi Mal-Sucedido" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Repetir" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Modificar o Destino" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Não foi possível iniciar o programa '%1'." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "O disco está cheio. Por favor, introduza o disco Nº. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Não foi possível abrir o ficheiro '%1' para escrita." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Não foi possível abrir o ficheiro '%1' para escrita.\n" "\n" "Deseja repetir?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Não foi possível escrever no pacote. Talvez o disco esteja cheio." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Não foi possível escrever no pacote.\n" "O sistema operativo devolveu: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...a ignorar a pasta filtrada %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível obter informações da pasta: %1\n" "O sistema operativo devolveu: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "A pasta '%1' não está acessível. A ignorar." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Não foi possível gravar a pasta '%1' no pacote.\n" "Talvez o disco esteja cheio." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível obter informações do ficheiro: %1\n" "O sistema operativo devolveu: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Não foi possível ler do ficheiro '%1'\n" "O sistema operativo devolveu: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Não foi possível aceder ao ficheiro '%1' para leitura." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...a arquivar o ficheiro %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível ler o ficheiro: %1\n" "O sistema operativo devolveu: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível criar um ficheiro temporário para comprimir: %1\n" "O sistema operativo devolveu: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Não foi possível gravar no ficheiro temporário" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "... a comprimir o ficheiro %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "ATENÇÃO:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Ficheiro" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Configuração" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Um programa de cópias de segurança fácil de usar" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Desenvolvimento" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Iniciar com o perfil indicado." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Programa a executar após terminar uma parcela do pacote." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Executar automaticamente a cópia de segurança com o perfil indicado e " "terminar quando efectuado." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Executar automaticamente a cópia de segurança com o perfil indicado em " "segundo plano (sem mostrar uma janela) e terminar quando efectuado." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "Ser detalhado e imprimir cada um dos nomes de ficheiros durante a cópia de " "segurança em modo de segundo plano." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "No modo automático/automático em segundo plano, obrigar a cópia de segurança " "a ser total em vez de usar a definição do perfil." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Não foi possível abrir o perfil '%1' para ler: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Cópia Incremental" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Cópia Completa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "ilimitado" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Iniciar a Cópia de Segurança" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancelar a Cópia de Segurança" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Próxima Cópia de Segurança:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "TextLabel" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Forçar uma Cópia Completa" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Destino" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Pasta:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Disco:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Tamanho:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totais" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Ficheiros:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Duração:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avisos:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Evolução:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Novo Perfil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Carregar um Perfil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Gravar o Perfil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Gravar o Perfil Como..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Configuração do Perfil..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Activar Todas as Mensagens" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Ícone na Bandeja de Sistema" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Mostrar os Ficheiros Escondidos" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Existe uma cópia de segurança em curso. Deseja interrompê-la?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Seleccionar o Perfil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Perfil do KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Não foi possível abrir" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "O perfil '%1' já existe.\n" "Deseja substituí-lo?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "O perfil existe" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Não foi possível abrir o perfil '%1' para escrita: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Ficheiros: %1 Tamanho: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nome" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Tamanho" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Data de Modificação" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Abrir Com" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Apagar o Ficheiro" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propriedades..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Deseja realmente apagar o '%1'?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Apagar" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Não foi possível apagar a pasta '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Não foi possível apagar o ficheiro '%1'.\n" "Razão: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Outra Aplicação..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gestor de Ficheiros" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "CD de 650 MB" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "CD de 700 MB" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "DVD de 4,7 GB" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "DVD de 8,5 GB" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "DVD de 9,4 GB" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "DVD de 17,1 GB" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personalizado" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Configuração do Perfil" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Desligue se desejar evitar uma janela de confirmação para alterar o disco " "quando uma parcela estiver completa" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "O destino necessita que altere o disco" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtro de Exclusão de Pastas:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Número de cópias de segurança completas a manter" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Quantas cópias de segurança completas devem ser guardadas na pasta de " "destino antes que outras mais antigas sejam apagadas" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervalo entre Cópias Completas" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Com que frequência deve ser feita uma cópia completa, em vez de uma " "incremental" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Todos os Dias" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dias" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefixo do Pacote:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Define sequências especiais para os nomes dos ficheiros que serão ignorados " "nas cópias de segurança, separados por espaços. P.ex.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Tamanho Máximo do Pacote:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtro de Exclusão de Ficheiros:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Define uma lista de padrões de locais no sistema de " "ficheiros que são usados para filtrar pastas completas,
p.ex. /home/*/." "mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Desligue se quiser evitar comprimir de todo os ficheiros" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprimir os Ficheiros" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "cópia-segurança" kbackup-19.12.3/po/pt_BR/000077500000000000000000000000001363501564300147415ustar00rootroot00000000000000kbackup-19.12.3/po/pt_BR/kbackup.po000066400000000000000000000513551363501564300167320ustar00rootroot00000000000000# Translation of kbackup.po to Brazilian Portuguese # Copyright (C) 2018 This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Carlos Gonçalves , 2006, 2007, 2009. # Márcio Moraes , 2009. # Luiz Fernando Ranghetti , 2018, 2019. msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2019-02-07 17:30-0200\n" "Last-Translator: Luiz Fernando Ranghetti \n" "Language-Team: Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 18.12.1\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Language: pt_BR\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Márcio Moraes, Luiz Fernando Ranghetti" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "marciopanto@gmail.com, elchevive@opensuse.org" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nada selecionado para a cópia de segurança" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "O diretório de destino %1 não é válido" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "O diretório de destino '%1' deve ser um diretório do sistema local de " "arquivos e não uma URL remota" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "O diretório de destino '%1' não existe.\n" "\n" "Devo criá-lo?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Não foi possível criar o diretório de destino '%1'.\n" "O sistema operacional reportou: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "O diretório de destino não existe" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...reduzindo o número de arquivos mantidos para um máximo de %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...excluindo %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "Falha ao obter a listagem do diretório destino. Não foi possível reduzir o " "número de arquivos a serem mantidos." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" "Não foi possível escrever a data e hora da cópia de segurança no perfil %1: " "%2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Arquivos filtrados: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! Cópia de segurança concluída, mas alguns arquivos foram pulados !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Cópia de segurança concluída com sucesso --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "A copia de segurança foi concluída, mas alguns arquivos foram pulados.\n" "O que deseja fazer agora?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "A cópia de segurança foi concluída com sucesso.\n" "O que deseja fazer agora?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Total: Arquivos: %1, Tamanho: %2, Duração: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Cópia de segurança abortada!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Cópia de segurança cancelada" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...concluída a divisão %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...enviando arquivo %1 para %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Como devemos proceder com o envio?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Falha no envio" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Tentar novamente" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Alterar Destino" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "O script '%1' não pôde ser iniciado." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "O disco está cheio. Por favor, insira o disco Nr. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "O arquivo '%1' não pode ser aberto para escrita." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "O arquivo '%1' não pode ser aberto para escrita.\n" "\n" "Você deseja tentar novamente?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Não foi possível escrever para o arquivo. Talvez o disco esteja cheio." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Não foi possível escrever no arquivo.\n" "O sistema operacional reportou: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...ignorando o diretório filtrado %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível obter informações de diretório: %1\n" "O sistema operacional reportou: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "O diretório '%1' não está acessível. Ignorando." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Não foi possível escrever no diretório '%1' para arquivar.\n" "Talvez o disco esteja cheio." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível obter informações do arquivo: %1\n" "O sistema operacional reportou: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Não foi possível ler do arquivo: '%1'\n" "O sistema operacional reportou: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Não foi possível abrir o arquivo '%1' para leitura." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...armazenando o arquivo %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível ler o arquivo: %1\n" "O sistema operacional reportou: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Não foi possível criar um arquivo temporário para compressão: %1\n" "O sistema operacional reportou: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Não foi possível escrever no arquivo temporário" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...comprimindo arquivo %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "AVISO:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Arquivo" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "Configuraçõe&s" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Um programa de cópia de segurança fácil de usar" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Desenvolvedor" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Iniciar com um determinado perfil." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Script a executar após concluída uma divisão de arquivo." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Executar automaticamente a cópia de segurança com o perfil escolhido e " "fechar quando concluído." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Executar automaticamente a cópia de segurança com o perfil escolhido em " "segundo plano (sem exibir uma janela) e fechar quando concluído." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "No modo autobg ser detalhado e imprimir cada um dos nomes dos arquivos " "durante a cópia de segurança." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "No modo auto/autobg forçar a cópia de segurança a ser uma cópia de segurança " "completa ao invés de atuar nas configurações do perfil." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Não foi possível abrir o perfil '%1' para ler: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Cópia de segurança incremental" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Cópia de segurança completa" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "ilimitado" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Iniciar Backup" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Cancelar Backup" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Próxima cópia de segurança:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Etiqueta de texto" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Forçar cópia de segurança completa" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Destino" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Pasta:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Disco:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Tamanho:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totais" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Arquivos:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Duração:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Avisos:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Progresso:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Novo Perfil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Carregar perfil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Salvar Perfil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Salvar Perfil Como..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Configurações do perfil..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Habilitar Todas as Mensagens" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Acoplar na Bandeja do Sistema" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Exibir arquivos ocultos" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Existe uma cópia de segurança em progresso. Você deseja abortá-la?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Selecionar perfil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Perfil do KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Falha ao abrir" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "O perfil '%1' já existe.\n" "Você deseja substitui-lo?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "O perfil existe" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Não foi possível abrir o perfil '%1' para escrever: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Arquivos: %1 Tamanho: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Nome" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Tamanho" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Última Modificação" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Abrir com" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Excluir arquivo" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Propriedades..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Deseja realmente excluir '%1'?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Excluir" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Não foi possível excluir o diretório '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Não foi possível excluir o arquivo '%1'.\n" "Motivo: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Outro aplicativo..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Gerenciador de arquivos" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "personalizado" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Configurações de Perfil" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Desmarque, se você deseja evitar uma janela de confirmação para alterar o " "disco quando uma divisão estiver concluída" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "O destino necessita que se altere o disco" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filtro de exclusão de caminhos:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Número de cópias de segurança completas a manter" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Quantas cópias de segurança completas devem ser mantidas no diretório de " "destino antes que outras mais antigas sejam excluídas" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervalo entre cópias de segurança completas" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Quantas vezes será feito uma cópia de segurança completa ao invés de uma " "incremental?" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Todos os dias" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dias" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prefixo do arquivo:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Define os caracteres curinga para nomes de arquivos que serão ignorados na " "cópia de segurança, separados por espaço. Ex.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Tamanho Máximo do Arquivo:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filtro de exclusão de nome de arquivo:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Define uma lista de padrões de caminhos absolutos que " "serão usados para filtrar diretórios completos,
ex.: /home/*/.mozilla/*/" "Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Desmarque, se você deseja evitar a compressão dos arquivos" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Comprimir Arquivos" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "cópia de segurança" kbackup-19.12.3/po/ru/000077500000000000000000000000001363501564300143615ustar00rootroot00000000000000kbackup-19.12.3/po/ru/kbackup.po000066400000000000000000000630671363501564300163550ustar00rootroot00000000000000# translation of ru.po_[8daEob].po to Русский # translation of ru.po_[al0GFa].po to # Russian translation of the KBackup # This file is put in the public domain. # # Alexey Kouznetsov , 2006, 2007. # Alexey Kouznetsov , 2007. # Алексей Кузнецов , 2009. # Alexander Potashev , 2018. msgid "" msgstr "" "Project-Id-Version: ru.po_[8daEob]\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-09-22 18:16+0300\n" "Last-Translator: Alexander Potashev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Алексей Кузнецов" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Alexey.Kouznetsov@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Не выбрано ни одного объекта для резервирования" #: Archiver.cxx:434 #, fuzzy, kde-format msgid "The target dir '%1' is not valid" msgstr "Неверно указан целевой каталог" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" #: Archiver.cxx:454 #, fuzzy, kde-format #| msgid "" #| "The target directory '%1' does not exist.\n" #| "\n" #| "Shall I create it?" msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Целевой каталог не существует.\n" "\n" "Создать его?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Не могу создать целевой каталог \"%1\"\n" "Сообщение операционной системы: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Целевой каталог не существует" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...уменьшение количества хранимых архивов до наиб. числа %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...удаление %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "не удалось прочесть содержимое целевого каталога. Не могу уменьшить число " "хранимых архивов." #: Archiver.cxx:647 #, fuzzy, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Не могу записать временный файл" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! Резервирование завершено, но некоторые файлы были пропущены !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Резервное копирование завершено успешно --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Резервное копирование завершено, но некоторые файлы были пропущены.\n" "Что делать?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Резервное копирование успешно завершено.\n" "Что делать?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Файлов: %1 Размер: %2, длительность: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Резервирование прервано!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Резервирование отменено" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...том %1 создан" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...выгрузка архива %1 в %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Что делать дальше с выгрузкой?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Попробовать снова" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Изменить назначение" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Не могу запустить сценарий '%1'" #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Носитель полон. Вставьте носитель № %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Файл '%1' не может быть открыт для записи." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Файл '%1' не может быть открыт для записи.\n" "\n" "Попытаться ещё раз?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Не могу произвести запись в архив. Вероятно, носитель полон." #: Archiver.cxx:974 #, fuzzy, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Не могу прочесть файл: %1\n" "Сообщение операционной системы: %2" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Не могу получить информацию о каталоге %1\n" "Сообщение операционной системы: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Невозможно прочесть каталог '%1'. Пропускаю." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Не могу записать каталог '%1' архив.\n" "Вероятно, носитель полон." #: Archiver.cxx:1151 Archiver.cxx:1232 #, fuzzy, kde-format #| msgid "" #| "Could not get information of file: %1\n" #| "The operating system reports: %2" msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Не могу получить информацию о файле: %1\n" "Сообщение операционной системы: %1" #: Archiver.cxx:1179 Archiver.cxx:1276 #, fuzzy, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Не могу прочесть файл: %1\n" "Сообщение операционной системы: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Не могу открыть для чтения файл '%1'" #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...архивирую файл '%1'" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Не могу прочесть файл: %1\n" "Сообщение операционной системы: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Не могу создать файл для сжатия: %1\n" "Сообщение операционной системы: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Не могу записать временный файл" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...сжимаю файл '%1'" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "ПРЕДУПРЖДЕНИЕ" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Файл" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Настройки" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Простая в использовании программа для резервного копирования данных" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "© Martin Koller, 2006-2018" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Разработчик" #: main.cxx:63 #, fuzzy, kde-format msgid "Start with given profile." msgstr "Запускать с указанным профилем" #: main.cxx:65 #, fuzzy, kde-format msgid "Script to run after finishing one archive slice." msgstr "" "Сценарий, который должен запускаться после создания каждого тома архива" #: main.cxx:67 #, fuzzy, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Автоматически запустить архивирование с выбранным профилем и выйти после " "завершения." #: main.cxx:70 #, fuzzy, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Автоматически запустить архивирование с выбранным профилем в фоне (окно " "программы не будет показано) и выйти после завершения." #: main.cxx:75 #, fuzzy, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "Выдавать больше информации, печатать имена всех файлов при архивировании в " "автоматическом фоновом режиме" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Не могу открыть для чтения профиль '%1': %2" #: MainWidget.cxx:68 #, fuzzy, kde-format msgid "Incremental Backup" msgstr "Прекратить архивирование" #: MainWidget.cxx:70 #, fuzzy, kde-format msgid "Full Backup" msgstr "KBackup" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "неограниченно" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Начать архивирование" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Прекратить архивирование" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, fuzzy, kde-format msgid "Next Backup:" msgstr "Начать архивирование" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, fuzzy, kde-format msgid "Force Full Backup" msgstr "Прекратить архивирование" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Назначение" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Каталог:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Носитель:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Размер:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 Мб" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Всего" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Файлов: " #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "Мб" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Длительность:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "нет" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Предупреждения:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Степень выполнения" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Новый профиль" #: MainWindow.cxx:61 #, fuzzy, kde-format #| msgid "Load Profile" msgid "Load Profile..." msgstr "Загрузить профиль" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Сохранить профиль" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Сохранить профиль как..." #: MainWindow.cxx:73 #, fuzzy, kde-format #| msgid "Profile Settings" msgid "Profile Settings..." msgstr "Параметры профиля" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Включить все сообщения" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Убирать в системный лоток" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Идёт резервирование. Прекратить его?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, fuzzy, kde-format msgid "Select Profile" msgstr "Сохранить профиль" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Профили KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Ошибка открытия" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Профиль '%1' уже существует.\n" "Перезаписать его?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Профиль уже существует" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Не могу открыть файл профиля '%1' для записи: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Файлов: %1 Размер: %2 Мб\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Название" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Размер" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Последнее изменение" #: Selector.cxx:293 #, fuzzy, kde-format msgid "Open With" msgstr "Ошибка открытия" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "" #: Selector.cxx:593 #, fuzzy, kde-format msgid "Do you really want to delete '%1'?" msgstr "Попытаться повторить выгрузку?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "" #: Selector.cxx:614 #, fuzzy, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "Не могу открыть для чтения профиль '%1': %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "КД 650 Мб" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "КД 700 Мб" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "DVD 4,7 Гб" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "DVD 8,5 Гб" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "DVD 9,4 Гб" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "DVD 17,1 Гб" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "настроить" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Параметры профиля" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Снимите отметку, если Вы хотите отключить диалог подтверждения о смене " "носителя после завершения тома." #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Необходимо сменить накопитель" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, fuzzy, kde-format #| msgid "Number of backups to keep" msgid "Number of full backups to keep" msgstr "Количество хранимых архивов" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, fuzzy, kde-format #| msgid "" #| "How many backups shall be kept in the target directory before older ones " #| "will be deleted" msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Сколько архивов может быть создано в каталоге, прежде чем самый старый из " "них будет удалён" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, fuzzy, kde-format msgid "Archive Prefix:" msgstr "Префикс архива" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Наибольший размер архива:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " МБ" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, fuzzy, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Снимите отметку, если Вы не хотите сжимать архив" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Сжимать файлы" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, fuzzy, kde-format msgid "backup" msgstr "KBackup" #~ msgid "OK" #~ msgstr "&Подтверждаю" #~ msgid "Cancel" #~ msgstr "Отменить" #~ msgid "File '%1' is not readable. Skipping." #~ msgstr "Не могу прочесть файл '%1'. Пропускаю." #, fuzzy #~ msgid "(c) 2006 - 2012 Martin Koller" #~ msgstr "(c) 2006-2009 Martin Koller" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Start with given profile" #~ msgstr "Запускать с указанным профилем" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Script to run after finishing one archive slice" #~ msgstr "" #~ "Сценарий, который должен запускаться после создания каждого тома архива" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "and terminate when done." #~ msgstr "" #~ "Автоматически запустить архивирование с выбранным профилем и выйти после " #~ "завершения." #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "in the background (without showing a window)\n" #~ "and terminate when done." #~ msgstr "" #~ "Автоматически запустить архивирование с выбранным профилем в фоне (окно " #~ "программы не будет показано) и выйти после завершения." #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In autobg mode be verbose and print every\n" #~ "single filename during backup" #~ msgstr "" #~ "Выдавать больше информации, печатать имена всех файлов при архивировании " #~ "в автоматическом фоновом режиме" #~ msgid "upload FAILED" #~ msgstr "выгрузка НЕ УДАЛАСЬ" #~ msgid "" #~ "Sorry, file '%1' (%2) is too large and cannot be archived with this KDE " #~ "version. Skipping." #~ msgstr "" #~ "Файл '%1' (%2) слишком велик и не может быть архивирован в текущей версии " #~ "KDE. Пропускаю." #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Алексей Кузнецов" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "Alexey.Kouznetsov@GMail.com" kbackup-19.12.3/po/sk/000077500000000000000000000000001363501564300143505ustar00rootroot00000000000000kbackup-19.12.3/po/sk/kbackup.po000066400000000000000000000551541363501564300163420ustar00rootroot00000000000000# Translation of KBackUp to Slovak. # This file is put in the public domain. # # Jozef Riha , 2007, 2009. # Roman Paholik , 2018. # Mthw , 2019. # Matej Mrenica , 2019, 2020. msgid "" msgstr "" "Project-Id-Version: KBackUp\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2020-02-02 09:41+0100\n" "Last-Translator: Matej Mrenica \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Slovak\n" "X-Poedit-Country: SLOVAKIA\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Lokalize 19.12.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Jozef Riha" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "jose1711@gmail.com" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Nevybrali ste nič pre zálohovanie" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Cieľový priečinok '%1' je neplatný" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Cieľový priečinok '%1' musí byť priečinok lokálneho súborového systému a nie " "vzdialená URL adresa" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Cieľový adresár '%1' neexistuje.\n" "\n" "Mám ho vytvoriť?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Nepodarilo sa vytvoriť cieľový adresár '%1'.\n" "Operačný systém hlási: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Cieľový adresár neexistuje" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...znižujem počet uchovávaných archívov na max. %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...mažem %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "získavanie výpisu cieľového adresára zlyhalo. Nepodarilo sa znížiť počet " "uchovávaných archívov." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Nepodaril sa zápis časového záznamu zálohy do profilu %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Filtrované súbory: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Záloha dokončená ale niektoré súbory boli preskočené !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Zálohovanie úspešne dokončené --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Záloha bola dokončená, ale niektoré súbory boli preskočené.\n" "Čo chcete teraz robiť?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Záloha bola úspešne dokončená.\n" "Čo chcete teraz robiť?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Celkom: Súborov: %1, Veľkosť: %2, Trvanie: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...Zálohovanie zrušené!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Zálohovanie zrušené" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...dokončená časť %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...uploadujem archív %1 na %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Ako budeme pokračovať v uploade?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Odoslanie zlyhalo" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Skúsiť znovu" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Zmeniť cieľ" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Nemôžem spustiť skript '%1'." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Médium je plné. Prosím vložte médium č. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Súbor '%1' nemožno otvoriť pre zápis." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Súbor '%1' nemožno otvoriť pre zápis.\n" "\n" "Chcete sa o to pokúsiť znovu?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Nepodaril sa zápis do archívu. Možno je médium plné." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Nepodarilo sa zapisovať do archívu.\n" "Operačný systém hlási: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...preskakujem filtrovaný priečinok %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Nepodarilo sa získať informácie o adresári: %1\n" "Operačný systém hlási: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Adresár '%1' nemožno prečítať. Preskakujem." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Nepodarilo sa zapísať adresár '%1' do archívu.\n" "Možno je médium plné." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Nepodarilo sa získať informácie súboru: %1\n" "Operačný systém hlási: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Nemožno prečítať súbor: '%1'\n" "Operačný systém hlási: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Súbor '%1' nemožno otvoriť na čítanie." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...archivujem súbor %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Nemožno prečítať súbor: %1\n" "Operačný systém hlási: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Nemožno vytvoriť dočasný súbor pre kompresiu: %1\n" "Operačný systém hlási: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Nepodaril sa zápis do dočasného súboru" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...komprimujem súbor %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "VAROVANIE:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Súbor:" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "&Nastavenia" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Zálohovací program, jednoduchý na obsluhu" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Vývojár" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Začať s vybraným profilom." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Skript, ktorý bude spustený po dokončení jednej časti archívu" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Spustiť zálohu s vybraným profilom automaticky a skončiť, keď je hotová." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Spustiť zálohu s vybraným profilom automaticky na pozadí (bez otvárania " "okna) a skončiť, keď je hotová." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "V režime autobg buď ukecaný a vypisuj počas zálohy každý názov súboru" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "V režime auto/autobg vynútite, aby bola záloha úplnou zálohou namiesto toho, " "aby sa vykonala podľa nastavení profilu." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Nepodarilo sa otvoriť profil '%1' na čítanie: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Prírastková záloha" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Úplná záloha" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "neobmedzené" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Spustiť zálohovanie" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Zrušiť zálohovanie" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Nasledujúca záloha:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "TextLabel" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Vynútiť úplnú zálohu" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Cieľ" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Priečinok:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Médium:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Veľkosť" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Celkom" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Súbory:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Dĺžka:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Varovania:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Priebeh:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Nový profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Načítať profil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Uložiť profil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Uložiť profil ako..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Nastavenia profilu..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Zapnúť všetky správy" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Dokovať v systémovej lište" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Zobraziť skryté súbory" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Záloha už prebieha. Chcete ju zrušiť?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Vyberte si profil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup profil (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Otváranie zlyhalo" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Profil '%1' už existuje.\n" "Chcete ho prepísať?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profil existuje" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Nepodarilo sa otvoriť profil '%1' na zápis: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Súborov: %1 Veľkosť: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Názov" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Veľkosť" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Posledná úprava" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Otvoriť s" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Vymazať súbor" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Vlastnosti..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Naozaj chcete vymazať '%1'?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Vymazať" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Nepodarilo sa vymazať priečinok '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Nepodarilo sa vymazať súbor '%1'.\n" "Dôvod: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Iná aplikácia..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Správca súborov" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "vlastné" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Nastavenia profilu" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Odškrtnite, ak sa chcete vyhnúť potvrdzovaciemu oknu na výmenu média po " "dokončení časti" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Cieľ potrebuje vymeniť médium" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filter na vynechanie ciest:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Počet ponechávaných úplných záloh" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Koľko záloh bude ponechaných v cieľovom adresári skôr než sa začnú staré " "mazať" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Interval úplnej zálohy" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "Ako často sa má robiť úplná záloha, namiesto prírastkovej" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Každý deň" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dni" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Prípona archívu:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Definuje zástupné znaky pre názvy súborov, ktoré budú ignorované pre " "zálohovanie, oddelené medzerou. Napr.: \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Maximálna veľkosť archívu:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filter na vynechanie súborov:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Definuje zoznam vzorov absolútnych ciestpoužívaných sa " "na filtrovanie kompletných adresárov,
napr. /home/*/.mozilla/*/Cache" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Odškrtnite, ak sa chcete vyhnúť akejkoľvek kompresie dáť" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Skomprimovať súbory" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "Zálohovať" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Zrušiť" #~ msgid "File '%1' is not readable. Skipping." #~ msgstr "Súbor '%1' nemožno prečítať. Preskakujem." #, fuzzy #~ msgid "(c) 2006 - 2012 Martin Koller" #~ msgstr "(c) 2006 - 2009 Martin Koller" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Start with given profile" #~ msgstr "Začať s vybraným profilom" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Script to run after finishing one archive slice" #~ msgstr "Skript, ktorý bude spustený po dokončení jednej časti archívu" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "and terminate when done." #~ msgstr "" #~ "Spustiť zálohu s vybraným profilom automaticky a skončiť, keď je hotová." #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "in the background (without showing a window)\n" #~ "and terminate when done." #~ msgstr "" #~ "Spustiť zálohu s vybraným profilom automaticky na pozadí (bez otvárania " #~ "okna) a skončiť, keď je hotová." #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In autobg mode be verbose and print every\n" #~ "single filename during backup" #~ msgstr "" #~ "V režime autobg buď ukecaný a vypisuj počas zálohy každý názov súboru" #~ msgid "upload FAILED" #~ msgstr "upload ZLYHAL" #~ msgid "" #~ "Sorry, file '%1' (%2) is too large and cannot be archived with this KDE " #~ "version. Skipping." #~ msgstr "" #~ "Ľutujem, súbor '%1' (%2) je príliš veľký a nedá sa archivovať v tejto " #~ "verzii KDE. Preskakujem." #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Jozef Říha" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "jose1711@gmail.com" kbackup-19.12.3/po/sv/000077500000000000000000000000001363501564300143635ustar00rootroot00000000000000kbackup-19.12.3/po/sv/docs/000077500000000000000000000000001363501564300153135ustar00rootroot00000000000000kbackup-19.12.3/po/sv/docs/kbackup/000077500000000000000000000000001363501564300167335ustar00rootroot00000000000000kbackup-19.12.3/po/sv/docs/kbackup/index.docbook000066400000000000000000000500511363501564300214050ustar00rootroot00000000000000 KBackup" > ]> Handbok &kbackup; Martin Koller kollix@aon.at Stefan Asserhäll

stefan.asserhall@bredband.net
Översättare 2006 - 2017 Martin Koller &FDLNotice; 2018-01-05 Program 18.04 &kbackup; är ett program som låter dig säkerhetskopiera data på ett enkelt, användarvänligt sätt KDE system Kbackup säkerhetskopia lagring arkiv zip gzip bzip2 xz Inledning &kbackup; är ett program som låter dig säkerhetskopiera vilka kataloger eller filer som helst, då det använder ett lättanvänt katalogträd för att välja vad som ska säkerhetskopieras. Det låter dig spara inställningar i så kallade profilfiler, där en profil är en enkel textfil som innehåller definitioner av kataloger och filer som ska inkluderas eller exkluderas från säkerhetskopieringsprocessen. Dessutom låter det dig definiera var säkerhetskopian ska sparas. Målet kan antingen vara en lokal katalog (t.ex. en lokalt monterad enhet som en ZIP-enhet, USB-sticka, etc.), men det kan också vara vilken fjärrwebbadress som helst (t.ex. smb://fjärrdator/någon_sökväg) för att säkerhetskopiera data till en central server, etc. Programmet kan också köra en automatiserad säkerhetskopiering utan att använda ett grafiskt användargränssnitt. Man kan helt enkelt skapa en profil och använda inställningarna för att tala om för &kbackup; vad som ska göras vid körning i icke-interaktivt läge, t.ex. genom att starta det från ett cron-jobb. Programmet är konstruerat för att vara mycket lättanvänt, så att det kan användas av andra än datorexperter. Lagringsformatet är det välkända TAR-formatet, så att data ändå kan lagras i komprimerad form (xz, bzip2 eller gzip). Den nuvarande implementeringen erbjuder bara säkerhetskopieringssteget. För att återställa data tillbaka i systemet, måste man för närvarande använda exempelvis &dolphin; för att öppna TAR-säkerhetskopieringsfilerna och dra och släppa filerna tillbaka i filsystemet. Det är också en fördel med att använda det välkända TAR-filformatet med bra stöd. Om filerna komprimeras, kan alla filer packas upp från aktuell katalog rekursivt neråt med följande kommando: find . -name \*bz2 -print0 | xargs -0 bunzip2 Som alternativ kan du använda &ark; för att extrahera en fullständig säkerhetskopiering eller bara några få filer från en säkerhetskopia. Använda &kbackup; Allt du behöver göra är att välja vilka filer du vill lagra. Det görs genom att markera alla katalogerna i trädvyn på vänster sida i huvudfönstret. Om du markerar en katalog, lagrar &kbackup; automatiskt alla filer och underkataloger nedanför den. Om du vill undanta delar av en markerad katalog, avmarkera helt enkelt filerna eller katalogerna inne i katalogen som fortfarande är markerad. I allmänhet betyder det att allting i en markerad katalog och nedanför den lagras, utom de avmarkerade delarna i den. Det betyder också att så snart en profil återanvänds (se nedan) och nya filer har lagts till i en katalog som redan är vald för säkerhetskopiering, så lagras också alla de nya filerna. Här är en skärmbild av &kbackup; Skärmbild av huvudfönster Använda profiler För att behålla ett urval för senare användning, spara det helt enkelt i en &kbackup; profilfil. Använd menyn Arkiv och välj Spara profil. För att läsa in ett urval i &kbackup;, använd menyalternativet Arkiv Läs in profil.... &kbackup; sparar urvalet av alla inkluderade kataloger och filer, exkluderade kataloger och filer, målkatalogen eller webbadressen, definierat arkivprefix, definierad maximal delfilstorlek, etc. i en profil. Om du vill förenkla användning för att säkerhetskopiera samma uppsättning filer varje dag, lagra helt enkelt inställningarna i en &kbackup; profil (en .kbp-fil) och ange filen på kommandoraden. t.ex. kbackup min-data.kbp Tips: Det går också att skapa en genväg på skrivbordet till en .kbp-fil eftersom filtypen är registrerad att starta &kbackup; vid dubbelklick. Delarkiv Eftersom medium normalt har begränsad kapacitet (t.ex. 100 MB Zip-disk), skapar &kbackup; flera delarkiv. Varje delarkiv får sitt eget namn, som ser ut så här: backup_2006.08.26-13.04.44_1.tar Namnet innehåller datum och tid då filen skapades (vilket är samma för alla delar av säkerhetskopian) och ett avslutande delsekvensnummer (_1 i exemplet). Ett annat arkivprefix än standardvärdet backup kan definieras i menyn Arkiv Profilinställningar.... I dialogrutan Profilinställningar kan också en maximal storlek på delarkiv definieras, vilket begränsar delstorleken även om det skulle finnas mer plats kvar på målenheten. Det hjälper till att skapa delarkiv som senare kan brännas på en cd, dvd, etc. Om du explicit begränsar storleken på ett delarkiv, markeras den tillgängliga storleken med (*) i huvudfönstret. Men även om en del definieras att ha obegränsad storlek, finns det andra restriktioner som begränsar en delstorlek: Begränsat av målkatalogen (när den lagras direkt i en lokal katalog) Begränsad av katalogen /tmp när en temporär fil skapas för senare uppladdning till en fjärrwebbadress. I Profilinställningar kan också det maximala antalet fullständiga säkerhetskopior som behålls i målkatalogen, och därför automatiskt ta bort alla äldre säkerhetskopior som finns där. Om du exempelvis ställer in det till tre, behåller &kbackup; de tre senaste säkerhetskopiorna och tar bort alla äldre. Inkrementell säkerhetskopiering Alla filer sparas inte varje gång säkerhetskopieringen görs vid en inkrementell säkerhetskopiering, utan bara filerna som har ändrats sedan den senaste säkerhetskopieringen. Det har den stora fördelen att den inkrementella säkerhetskopian oftast innehåller mycket färre filer än en fullständig säkerhetskopia och därför blir färdig på mycket kortare tid. Det fungerar på följande sätt: Du definierar ett intervall (i dagar) för den fullständiga säkerhetskopieringen i profilen. Om du exempelvis definierar fem dagar, gör &kbackup; en fullständig säkerhetskopiering var femte dag. Så fort du startar &kbackup; med profilen innan intervallet gått ut, oberoende av hur ofta du gör en säkerhetskopia, sparas bara filerna som har ändrats sedan den senaste säkerhetskopieringen. &kbackup; lagrar tidsstämpeln för den senaste säkerhetskopieringen i profilen, och vet därför vad som ska göras nästa gång det körs. Delarkivens filer som skapas under en inkrementell säkerhetskopiering innehåller texten _inc, t.ex.: backup_2010.06.14-18.50.26_1_inc.tar Delfiler för fullständiga säkerhetskopieringar innehåller inte _inc i namnet, t.ex.: backup_2010.06.13-20.58.14_1.tar När man vill återställa filer från en inkrementell säkerhetskopia är det viktigt att leta rätt på den senaste versionen av en fil att återställa i alla _inc filer, och till sist också den senaste fullständiga säkerhetskopieringens delfil. Just detta är också nackdelen med den inkrementella säkerhetskopieringen (men ingen fördel utan någon nackdel). Om du vill göra en fullständig säkerhetskopiering tidigare än den definierade inkrementella cykeltiden i en profil, kan du göra det genom att markera alternativet Tvinga fullständig säkerhetskopiering i användargränssnittet. När &kbackup; startas via kommandoraden, kan det åstadkommas genom att använda väljaren . En framtvingad fullständig säkerhetskopiering återstartar säkerhetskopieringscykeln, dvs. &kbackup; räkar dagarna till nästa fullständiga säkerhetskopiering från tiden för den senaste fullständiga säkerhetskopieringen. Arkivkomprimering &kbackup; komprimerar filerna som lagras om du aktiverar det i profilinställningarna. Beroende tillgänglighet på systemet väljer det komprimering med xz, bzip2 eller gzip. &kbackup; komprimerar varje enskild fil och lagrar alla filer med en tillagd filändelse (.xz, .bzip2 eller .gzip) i det okomprimerade .tar-arkivet. När du har valt att skapa säkerhetskopian på något lokalt filsystem (t.ex. en extra disk, ZIP-enhet, etc.), vilket betyder att du inte matat in en fjärrwebbadress, kan &kbackup; dela upp hela säkerhetskopieringen i flera delarkiv beroende på begränsningar i mediakapacitet. t.ex. backup_2006.08.26-13.04.44_1.tar backup_2006.08.26-13.04.44_2.tar Automatisk säkerhetskopiering Om du vill automatisera säkerhetskopieringsprocessen, erbjuder &kbackup; olika kommandoradsväljare för att hjälpa till med det: När &kbackup; körs med väljaren och en angiven .kbp-profil, startar det, läser in angiven profil, utför säkerhetskopieringen och avslutar när den är klar. Allt detta görs med ett synligt &kbackup; användargränssnitt. När &kbackup; körs med väljaren och en angiven .kbp-profil, utförs samma process som med , men utan att visa något användargränssnitt. Det är orsaken till suffixet bg som står för bakgrund: allt görs i bakgrunden. Alltså är det rätt väljare att använda när du exempelvis utför säkerhetskopieringar startade av ett cron-jobb. När används skrivs utmatningen från &kbackup; som visar säkerhetskopieringens förlopp till standardfelutmatningen. Normalt innehåller utmatningen bara några få viktiga meddelanden och en sammanfattning på slutet. Om du dessutom skickar med , visas också varje filnamn som för närvarande säkerhetskopieras. Kommandoreferens Huvudfönstret i &kbackup; Menyn Arkiv Arkiv Öppna senaste Visar en undermeny med senast använda profiler för att enkelt kunna välja. Arkiv Ny profil Rensar markeringen och inmatningsfältet för målet, för att kunna definiera en ny profil. Arkiv Läs in profil... Läser in en profil. Arkiv Spara profil Sparar alla inställningar i profilen som för närvarande är inläst. Arkiv Spara profil som... Sparar alla inställningar i en profil med ett nytt namn. Arkiv Profilinställningar... Du kan definiera om delarkivfiler börjar med standardnamnet backup eller med ett alternativt namn. Dessutom kan du begränsa delarkivens storlek. Se kapitlet Delarkiv. Inställningarna lagras också i profilen. &Ctrl;Q Arkiv Avsluta Avslutar &kbackup;. Menyn Inställningar Inställningar Minimera i systembrickan När alternativet aktiveras visas en ikon i systembrickan, som anger aktuell status för en säkerhetskopieringsoperation. En animering visas när en säkerhetskopiering pågår, annars visas en statisk ikon. Om alternativet är markerat, avslutas inte &kbackup; när huvudfönstret stängs. Programmet måste explicit avslutas genom att välja alternativet Avsluta. En säkerhetskopieringsoperation kan startas eller avbrytas via den sammanhangsberoende menyn i &kbackup;s ikon i systembrickan, vilket är samma sak som går att göra i huvudfönstret. Verktygstipset på ikonen ger också förloppsinformation (antal sparade filer, säkerhetskopians storlek och den senast sparade filen). Inställningar Aktivera alla meddelanden Aktiveras alternativet rensas alla internt lagrade flaggor för Fråga inte igen för dialogrutor som visas i &kbackup;. Inställningar Visa dolda filer Aktivera eller inaktivera visning av dolda filer (som inleds med tecknet punkt) i trädvyn. Använd alternativet om du vill undanta vissa dolda filer från säkerhetskopieringen. Använd ett filnamnsfilter i profilinställningarna om du vill undanta alla dolda filer, Menyn Hjälp &kbackup; har &kde;:s vanliga menyalternativ i menyn Hjälp. För mer information läs avsnittet om hjälpmenyn i &kde;:s grunder. Utvecklingsguide för &kbackup; &kbackup; kan utökas genom att använda ett skalskript (eller vilket annat körbart program som helst), som startas vid tre olika tidpunkter under säkerhetskopieringsprocessen. Idén bakom det är att tillåta att media monteras, avmonteras, och matas ut på ett systemspecifikt sätt, eller göra andra saker med de skapade arkivfilerna. Skriptet att köra måste ges med kommandoradsväljaren . Här är ett exempelskript: sliceScript.sh #!/bin/sh mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) if [ "$mountPoint" != "" ] then mount /media/zip rm -f /media/zip/backup_2*.tar* fi ;; "slice_closed" ) ;; "slice_finished" ) if [ "$mountPoint" != "" ] then umount /media/zip eject /media/zip fi ;; esac Scriptet anropas alltid med fyra kommandoradsväljaren: anropsmetod (del)arkivfilnamn målkatalog eller webbadress monteringsplats för målkatalog om den är en lokal katalog, annars en tom sträng Det finns tre möjliga anropsmetoder: slice_init anropas innan ett nytt delarkiv skapas på disk slice_closed anropas efter ett delarkiv har skapats, men innan det har placerats i målkatalogen Det kan användas om du vill kopiera delarkivet till någon ytterligare plats, t.ex. om arkivet skickas till huvudservern (via en målwebbadress), men du vill också behålla den senaste säkerhetskopian på den lokala disken. slice_finished anropas efter ett delarkiv har överförts till målkatalogen med lyckat resultat Tack till och licens &kbackup; Program copyright © 2006 - 2009 Martin Koller kollix@aon.at Dokumentation Copyright © 2006 - 2009 Martin Koller Översättning Stefan Asserhäll stefan.asserhall@bredband.net &underFDL; &underGPL; &documentation.index; kbackup-19.12.3/po/sv/kbackup.po000066400000000000000000000554221363501564300163530ustar00rootroot00000000000000# translation of sv.po to Svenska # translation of sv.po to # This file is put in the public domain. # # Martin Koller , 2007. # Mikael Martinsson , 2007. # Stefan Asserhäll , 2018. msgid "" msgstr "" "Project-Id-Version: sv\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-11-27 07:27+0100\n" "Last-Translator: Stefan Asserhäll \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Mikael Martinsson,Stefan Asserhäll" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "mikael.martinsson@jamtnet.se,stefan.asserhall@bredband.net" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Inget valt för säkerhetskopiering" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Målkatalogen '%1' är inte giltig" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Målkatalogen '%1' måste vara en lokal filsystemskatalog och inte en " "fjärrwebbadress" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Målkatalogen '%1' finns inte.\n" "\n" "Ska den skapas?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Kunde inte skapa målkatalogen: %1\n" "Operativsystemet lämnar följande rapport: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Målkatalogen finns inte" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "... reducerar antalet sparade arkiv till maximalt %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "... tar bort %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "Misslyckades hämta listning av målkatalog. Kan inte reducera antal sparade " "arkiv." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Kunde inte skriva tidsstämplar för säkerhetskopiering i profil %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- Filtrerade filer: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!! Säkerhetskopieringen klar men filer hoppades över !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- Säkerhetskopieringen avslutades korrekt --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Säkerhetskopieringen avslutades men det finns filer som hoppades över.\n" "Vad vill du göra nu?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Säkerhetskopieringen avslutades korrekt.\n" "Vad vill du göra nu?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Totalt: Filer: %1, Storlek: %2, Varaktighet: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "... Säkerhetskopieringen avbröts." #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Säkerhetskopiering avbruten" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "... del %1 är klar" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "... laddar upp arkivet %1 till %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Hur ska uppladdningen fortsätta?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Uppladdning misslyckades" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Försök igen" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Ändra mål" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Skriptet '%1' kunde inte startas." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Mediet är fullt. Var god och byt till media nr. %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Filen '%1' kan inte öppnas för skrivning." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Filen '%1' kan inte öppnas för skrivning.\n" "\n" "Vill du försöka igen?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Kunde inte skriva i arkivet. Kanske är mediet fullt." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Kunde inte skriva i arkivet.\n" "Operativsystemet lämnar följande rapport: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "... hoppar över filtrerad katalog %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Kunde inte hämta information om katalogen: %1\n" "Operativsystemet lämnar följande rapport: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Katalogen '%1' är inte läsbar. Hoppar över." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Kunde inte skriva katalogen '%1' i arkivet.\n" "Kanske är mediet fullt." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Kan inte hämta information om filen: %1\n" "Operativsystemet lämnar följande rapport: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Kunde inte läsa från filen '%1'\n" "Operativsystemet lämnar följande rapport: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Kunde inte öppna filen '%1' för läsning." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "... arkiverar filen %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Kunde inte läsa filen: %1\n" "Operativsystemet lämnar följande rapport: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Kunde inte skapa en temporär fil för komprimering: %1\n" "Operativsystemet lämnar följande rapport: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Kunde inte skriva till temporär fil" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "... komprimerar filen %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "Varning:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Arkiv" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "In&ställningar" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "Kbackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Ett lättanvänt säkerhetskopieringsprogram" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "© 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Utvecklare" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Starta med angiven profil." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "Skript att köra efter avslutad del av arkivet." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Kör automatiskt säkerhetskopieringen med angiven profil och avsluta när den " "är klar." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Kör automatiskt säkerhetskopieringen med angiven profil i bakgrunden (utan " "att visa ett fönster) och avsluta när den är klar." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "Ge detaljerad utskrift med varje enskilt filnamn i automatiskt bakgrundsläge " "under säkerhetskopieringen." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "Tvinga säkerhetskopieringen att vara fullständig i automatiskt och " "automatiskt bakgrundsläge, istället för att följa profilinställningarna." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Kunde inte öppna profilen '%1' för läsning: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Inkrementell säkerhetskopiering" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Fullständig säkerhetskopiering" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "obegränsad" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Starta säkerhetskopiering" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Avbryt säkerhetskopiering" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Nästa säkerhetskopiering:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "Textetikett" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Tvinga fullständig säkerhetskopiering" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Mål" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Katalog:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Media:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Storlek:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MiB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Totalt" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Filer:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MiB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Varaktighet:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Varningar:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Förlopp:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Ny profil" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Läs in profil..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Spara profil" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Spara profil som..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Profilinställningar..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Tillåt alla meddelanden " #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Minimera i systembrickan" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Visa dolda filer" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "En säkerhetskopiering pågår. Vill du avbryta den?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Välj profil" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "Kbackup-profil (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Misslyckades öppna" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Profilen '%1' finns redan.\n" "Vill du skriva över den?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Profilen finns" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Kunde inte öppna profilen '%1' för skrivning: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Filer: %1 Storlek: %2 MiB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Namn" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Storlek" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Senast ändrad" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Öppna med" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Ta bort fil" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Egenskaper..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Vill du verkligen ta bort '%1?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Ta bort" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Kunde inte ta bort katalogen '%1'." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Kunde inte ta bort filen '%1'.\n" "Orsak: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Annat program..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Filhanterare" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MiB cd" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MiB cd" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4,7 GiB dvd" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8,5 GiB dvd" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9,4 GiB dvd" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17,1 GiB dvd" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "annat" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Profilinställningar" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Avmarkera för att undvika en bekräftelsedialogruta om att byta media när en " "del är klar." #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Mediabyte behövs för valt mål" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Filter för undantagna kataloger:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Antal fullständiga säkerhetskopior att behålla" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Hur många fullständiga säkerhetskopior ska behållas i målkatalogen innan " "äldre tas bort" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Intervall för fullständig säkerhetskopiering" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Hur ofta ska en fullständig säkerhetskopiering utföras istället för en " "inkrementell" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Varje dag" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " dagar" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Arkivprefix:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Definierar jokertecken för filnamn som ska ignoreras vid säkerhetskopiering, " "åtskilda med mellanslag, exempelvis \"*.ogg *.wav\"" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Maximal storlek på arkivdelarna: " #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MiB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Filter för undantagna filnamn:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Definierar en lista över absoluta sökvägsmönster som " "används för att filtrera hela kataloger,
t.ex. /home/*/.mozilla/*/Cache" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "Avmarkera för att undvika att filer komprimeras över huvud taget" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Komprimera filer" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "säkerhetskopia" #~ msgid "OK" #~ msgstr "Ok" #~ msgid "Cancel" #~ msgstr "Avbryt" #~ msgid "File '%1' is not readable. Skipping." #~ msgstr "Filen '%1' är inte läsbar. Hoppar över." #, fuzzy #~ msgid "(c) 2006 - 2012 Martin Koller" #~ msgstr "(c) 2006 - 2009 Martin Koller" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Start with given profile" #~ msgstr "Starta med angiven profil" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "Script to run after finishing one archive slice" #~ msgstr "Skript att köra efter avslutad del av arkivet" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "and terminate when done." #~ msgstr "" #~ "Kör automatiskt backupen med den givna profilen och avsluta när den är " #~ "färdig" #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "Automatically run the backup with the given profile\n" #~ "in the background (without showing a window)\n" #~ "and terminate when done." #~ msgstr "" #~ "Kör backup med den givna profilen i bakgrunden (utan att visa ett " #~ "fönster) och avsluta när backupen är färdig." #, fuzzy #~ msgctxt "" #~ "TRANSLATORS: this is the description of a command line option. If your " #~ "translation is longer than 50 caracters, you are encouraged to add " #~ "breaklines to keep the limit" #~ msgid "" #~ "In autobg mode be verbose and print every\n" #~ "single filename during backup" #~ msgstr "" #~ "I autobg-läget ge feedback och skriv ut varje enskilt filnamn under " #~ "backupen" #~ msgid "upload FAILED" #~ msgstr "uppladdningen MISSLYCKADES" #~ msgid "" #~ "Sorry, file '%1' (%2) is too large and cannot be archived with this KDE " #~ "version. Skipping." #~ msgstr "" #~ "Tyvärr, filen %1 (%2) är för stor och kan inte arkiveras med den här " #~ "versionen av KDE. Hoppar över." #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Mikael Martinsson" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "mikael.martinsson@jamtnet.se" kbackup-19.12.3/po/uk/000077500000000000000000000000001363501564300143525ustar00rootroot00000000000000kbackup-19.12.3/po/uk/docs/000077500000000000000000000000001363501564300153025ustar00rootroot00000000000000kbackup-19.12.3/po/uk/docs/kbackup/000077500000000000000000000000001363501564300167225ustar00rootroot00000000000000kbackup-19.12.3/po/uk/docs/kbackup/index.docbook000066400000000000000000000775501363501564300214110ustar00rootroot00000000000000 KBackup" > ]> Підручник з &kbackup; Martin Koller kollix@aon.at ЮрійЧорноіван

yurchor@ukr.net
Переклад українською 2006 - 2017 Martin Koller &FDLNotice; 5 січня 2018 року Програми 18.04 &kbackup; — програма, за допомогою якої ви зможете створювати резервні копії своїх даних у простий і зручний спосіб. KDE система KBackup резервне копіювання сховище даних архів zip gzip bzip2 xz Вступ &kbackup; — програма за допомогою якої ви зможете створювати резервні копії будь-яких тек або файлів. Вибрати об'єкт резервного копіювання можна за допомогою простого у користуванні дерева тек. У програмі передбачено можливість збереження вказаних вами параметрів до так званих файлів профілю. Файл профілю є простим текстовим файлом, у якому містяться визначення тек та файлів, які має бути включено до резервної копії або виключено з неї. Крім того, програма надає вам змогу визначити, куди слід зберігати резервні копії. Сховищем призначення таких копії може бути або локальна тека (наприклад локально змонтований пристрій, зокрема диск ZIP, флеш-накопичувач USB тощо), або будь-яка віддалена адреса (наприклад smb://віддалений_вузол/якась_тека), або певний центральний сервер тощо. Програма також здатна налаштовувати автоматичне створення резервних копії за допомогою графічного інтерфейсу користувача. Можна просто створити профіль і скористатися параметрами для того, щоб повідомити &kbackup; про дії у неінтерактивному режимі, наприклад шляхом запуску програми як завдання cron. Програму створено простою у користуванні, тому нею можуть користуватися зовсім недосвідчені користувачі. Форматом зберігання даних ж добре відомий формат TAR, також дані можна зберігати і у стисненому форматі (xz, bzip2 або gzip). У поточній реалізації можна скористатися лише створенням резервних копій. Щоб відновити дані, вам доведеться скористатися, наприклад, &dolphin;, щоб відкрити файли резервних копій TAR і перетягти і скинути розпаковані файли назад до основної файлової системи. Це також перевага використання добре відомого і загальнопідтримуваного формату файлів TAR. Якщо файли резервних копій стиснено, ви можете розпакувати усі файли з поточної теки рекурсивно за допомогою такої команди: find . -name \*bz2 -print0 | xargs -0 bunzip2 Крім того, ви можете скористатися &ark; для видобування усіх файлів із резервної копії або лише їх частини. Користування &kbackup; Достатньо просто вибрати, резервні копії яких тек ви хочете створити. Зробити це можна, позначивши усі теки на панелі ієрархії тек у лівій частині головного вікна програми. Якщо ви позначите теку, &kbackup; автоматично створити резервну копію усіх файлів і підтек цієї теки. Якщо ви хочете виключити певні шлях и з позначеної теки, просто зніміть позначення з відповідних файлів і тек всередині позначеної на панелі теки. Загалом, це означає ось що: буде створено резервну копію позначеної теки і усього, що у ній зберігається, окрім частин, позначення з яких було знято. Це також означає, що кожного разу, коли ви повторно використовуватимете профіль (див. нижче) після додавання до теки, вже позначеної для резервного копіювання, нових файлів, усі нові файли також буде збережено до резервної копії. Ось знімок вікна &kbackup; Знімок головного вікна програми Користування профілями Щоб зберегти позначені записи для наступного використання, просто збережіть дані до файла профілю &kbackup;. Відкрийте меню Файл і виберіть у ньому пункт Зберегти профіль. Щоб повторно завантажити позначені записи до &kbackup;, скористайтеся пунктом меню Файл Завантажити профіль. &kbackup; зберігає у файлі профілю дані щодо усіх включених до резервної копії тек і файлів, усіх виключених тек і файлів, теки або адреси призначення резервної копії, визначеного префікса архівів, визначеного максимального розміру файла зрізу тощо. Якщо ви хочете спростити щоденне резервне копіювання однакового набору файлів, просто збережіть ваші параметри до профілю &kbackup; (файла .kbp) і передайте назву цього профілю програмі за допомогою рядка команди. Приклад: kbackup myData.kbp Підказка: ви також можете створити на стільниці піктограму із посиланням на файл .kbp, який, якщо його зареєстровано у системі, відкриватиме профіль у &kbackup; у відповідь на подвійне клацання лівою кнопкою миші на піктограмі. Зрізи архівів Оскільки носій даних, зазвичай, має доволі обмежене місткість (наприклад, 100 МБ для диска ZIP), &kbackup; може створювати декілька зрізів для одного архіву. Кожен зі зрізів архіву матиме власну назву, яка виглядатиме ось так: резервування_2006.08.26-13.04.44_1.tar У назві містяться дані щодо дати і часу створення (які будуть однаковими для усіх зрізів однієї резервної копії) та номера зрізу у послідовності зрізів (_1 наприкінці запису у нашому прикладі). За допомогою пункту меню Файл Параметри профілю, ви можете визначити префікс назви архіву, який відрізнятиметься від типового, «резервування». Крім того, за допомогою діалогового вікна Параметри профілю, ви можете визначити максимальний розмір зрізу архіву, значення яке обмежуватиме розміри зрізів, навіть якщо на носіях даних для цих зрізів ще залишатиметься місце. Так ви зможете створювати зрізи архіву, які згодом можна буде записати на &CD;/&DVD; або інший носій даних. Якщо ви явним чином обмежите розмір зрізу архіву, доступний розмір у головному вікні програми буде позначено за допомогою послідовності символів «(*)». Але навіть якщо ви вкажете, що розмір зрізу є «необмеженим», існують інші обмеження, якими не можна знехтувати під час створення зрізів: обмеження теки призначення (якщо дані зберігаються безпосередньо до локальної теки); обмеження теки /tmp, під час створення тимчасового файла для наступного вивантаження на віддалену адресу. У вікні Параметри профілю ви також можете визначити максимальну кількість повних резервних копій, які зберігатимуться у теці призначення. При перевищенні цього значення, застарілі копії вилучатимуться. Наприклад, якщо ви вкажете значення 3, &kbackup; зберігатиме лише останні 3 резервні копії, усі старіші копії буде вилучено. Нарощувальне копіювання Якщо використовується створення нарощувальних резервних копій, під час резервного копіювання до копій включатимуться не усі файли, а лише ті файли, до яких було внесено зміни з часу створення останньої копії. Перевагою є те, що до нарощувальних копій, зазвичай, включається набагато менше файлів, ніж до повних копій, тому їхнє створення потребуватиме набагато менше часу. Це працює так: у профілі ви визначаєте інтервал (у днях) для створення повної копії. Наприклад, ви можете визначити 5 днів, тоді &kbackup; виконуватиме повне резервне копіювання кожні 5 днів. Якщо ж ви запустите &kbackup; з використанням того самого профілю до того, як мине цей термін — незалежно від того, наскільки часто ви створюватимете резервні копії — до копії буде збережено лише файли, які було змінено з часу збереження останньої резервної копії. &kbackup; зберігає часову позначку останньої резервної копії до профілю і тому знає, що саме слід зробити, коли програму викликають наступного разу. Назви файлів зрізів архіву, створені під час нарощувального копіювання, міститимуть суфікс _inc. Приклад: резервування_2010.06.14-18.50.26_1_inc.tar До назв файлів зрізів архіву повної резервної копії не буде включено суфікс _inc. Приклад: резервування_2010.06.13-20.58.14_1.tar Якщо виникне потреба у відновленні файлів із нарощувальної резервної копії, доведеться знайти найсвіжішу збережену копію серед усіх файлів _inc та самого файла повної резервної копії. У цьому і полягає недолік нарощувального резервного копіювання (втім, немає переваг без недоліків ;-) ). Якщо у вас виникне потреба у створенні повної резервної копії до моменту часу, визначеного у параметрі циклу нарощувального резервного копіювання у файлі профілю, ви можете зробити це, позначивши пункт Примусове повне копіювання у головному вікні програми. Якщо ви запускаєте &kbackup; з командного рядка, того самого можна досягти за допомогою параметра Примусове резервне копіювання перезапустить цикл створення копій, тобто &kbackup; відлічуватиме дні до моменту наступного повного резервного копіювання з моменту часу останнього створення повної резервної копії. Стискання архівів &kbackup; стискатиме збережені файли, якщо ви задієте цю можливість у параметрах профілю. Залежно від доступності відповідних компонентів у вашій системі, програма вибере стискання за допомогою xz, bzip2 або gzip. &kbackup; стисне усі файли і збереже ці файли із додаванням відповідного суфікса архіву (.xz, .bzip2 або .gz) до нестиснутого архіву .tar. Якщо ви вибрали створення резервної копії на якійсь локальній файловій системі (наприклад на додатковому диску, на диску ZIP тощо) — тобто ви не вказували віддаленої адреси призначення — &kbackup; може поділити цілу резервну копію на декілька зрізів архіву, врахувавши обмеження на місткість носія даних. Приклад: резервування_2006.08.26-13.04.44_1.tar резервування_2006.08.26-13.04.44_2.tar Автоматизація резервного копіювання Якщо ви хочете автоматизувати процес створення резервних копій, ви можете скористатися можливостями керування &kbackup; за допомогою різноманітних параметрів рядка команди: Якщо &kbackup; буде запущено із цим параметром і буде вказано профіль .kbp, програма запуститься, завантажить вказаний профіль, виконає резервне копіювання і завершить роботу, щойно копіювання буде завершено. Усе це буде зроблено із показом головного вікна &kbackup; користувачу. Якщо ви запустите &kbackup; із цим параметром командного рядка і вказаним профілем .kbp, буде виконано ту саму послідовність дій, що і з параметром , але без показу графічного інтерфейсу користувача. Тому використано суфікс bg, скорочення від background («тло») — усе робиться у тлі, тому це саме той параметр, яким слід скористатися для автоматичного резервного копіювання, наприклад, за допомогою cron. Якщо буде використано , виведені &kbackup; дані — вони показують поступ резервного копіювання — записуються до stderr. Типово, до виведених даних буде включено лише декілька важливих повідомлень та резюме дій наприкінці. Якщо ви додасте до команди параметр , буде виведено також дані щодо назв усіх файлів, резервні копії яких створюються програмою. Довідка щодо команд меню Головне вікно &kbackup; Меню «Файл» Файл Відкрити недавні Для полегшення типового вибору показує підменю із списком нещодавно використаних профілів. Файл Новий профіль Спорожнює поля введення вибору і цілі, щоб можна було розпочати визначення нового профілю. Файл Завантажити профіль Завантажує профіль. Файл Зберегти профіль Зберігає усі параметри до поточного завантаженого профілю. Файл Зберегти профіль як... Зберігає усі параметри до профілю з новою назвою. Файл Параметри профілю У вікні параметрів ви можете визначити, будуть назви зрізів архівів починатися з типової назви, резервування, чи з іншої назви. Крім того, ви можете обмежити розмір зрізів архіву. Див. розділ щодо зрізів архівів. Ці параметри також зберігаються до профілю. &Ctrl;Q Файл Вийти Завершує роботу &kbackup; Меню «Параметри» Параметри Пришвартувати у системному лотку Якщо позначити цей пункт, у системному лотку буде показано піктограму, яка відображатиме поточний стан дії з резервного копіювання. Анімацію буде показано, лише якщо виконується копіювання, інакше буде показано статичну піктограму. Якщо пункт позначено, закриття головного вікна не призводитиме до завершення роботи програми &kbackup;. Роботу програми доведеться явно завершувати за допомогою пункту меню Вийти. За допомогою контекстного меню піктограми системного лотка &kbackup; ви можете запускати або скасовувати дію з резервного копіювання — те саме, що ви можете робити і за допомогою головного вікна програми. На панелі підказки піктограми буде показано дані щодо поступу дії (кількість збережених файлів, розмір резервної копії і назва останнього збереженого файла). Параметри Увімкнути всі повідомлення Позначення цього пункту вилучить усі збережені програмою дані щодо прапорців Більше не питати у діалогових вікнах, які показує &kbackup;. Параметри Показувати приховані файли Увімкнути або вимкнути показ прихованих файлів (файлів, назви яких починаються з крапки) на панелі ієрархічного перегляду тек. Скористайтеся цим пунктом, якщо ви хочете виключити деякі приховані файли з резервної копії. Якщо ви хочете виключити усі приховані файли, скористайтеся фільтруванням файлів за назвою у параметрах профілю. Меню «Довідка» У &kbackup; передбачено типовий пункт меню Довідка &kde;. Щоб дізнатися більше, ознайомтеся з розділом, присвяченим меню «Довідка» підручника з основ роботи у &kde;. Інструкція розробника для &kbackup; Можливості &kbackup; можна розширити за допомогою скриптів командної оболонки (або будь-яких інших виконуваних файлів), які буде запущено у три різних моменти під час процесу резервного копіювання. Ідея полягає у тому, щоб уможливити монтування, демонтування на виштовхування носіїв даних у специфічний для системи спосіб або виконання інших дій над створеними файлами архівів. Скрипт, який слід виконати, слід вказати за допомогою параметра рядка команди . Ось зразок скрипту: sliceScript.sh #!/bin/sh mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) if [ "$mountPoint" != "" ] then mount /media/zip rm -f /media/zip/backup_2*.tar* fi ;; "slice_closed" ) ;; "slice_finished" ) if [ "$mountPoint" != "" ] then umount /media/zip eject /media/zip fi ;; esac Скрипт завжди викликається із чотирма аргументами рядка команди: режим виклику назва файла архіву (зрізу) каталог або адреса призначення точка монтування каталогу призначення, якщо він є локальним, інакше порожній рядок Передбачено три можливих режими виклику: slice_init викликається до того, як на диску буде створено новий зріз архіву slice_closed викликається після створення зрізу архіву, але перед тим, якщо цей зріз буде перенесено до каталогу призначення Може бути корисним, якщо ви хочете скопіювати зріз архіву до якогось додаткового місця, наприклад, надіслати архів на основний сервер (вказавши адресу призначення), але також хочете зберегти останню резервну копію на локальному диску. slice_finished викликається після того, як зріз архіву буде успішно перенесено до каталогу призначення Авторські права та ліцензування &kbackup; Авторські права на програму належать Martin Koller kollix@aon.at, 2006–2009 Авторські права на документацію до програми належать Martin Koller, 2006–2009 Переклад українською: Юрій Чорноіван yurchor@ukr.net &underFDL; &underGPL; &documentation.index; kbackup-19.12.3/po/uk/docs/kbackup/mainwindow.png000066400000000000000000000570401363501564300216120ustar00rootroot00000000000000PNG  IHDR40+JbPLTE(4.֚ӘԤͷΑ˹ʼnÿ~ݽ¸ov<믭}R񢨥ɦ~`ߋߢfGޗz{њdQӐ̑Z\IȬdDK}ds}~x{lzvG^um;uYqpBFnOiLiB"e#9caTOatU`hT^gS]fT]gR]dQ\dR\dQ[cPZbYAOYaPY`NX`NW^MV]KU]KU]JT[7TISZHRYFPWGPVGPW@NbgL=q6<n播\p[! }zP4[X̧|0j{[V`bhɁt3tͭ Z(K ]E,9uvF&!i=7̄)"U-\gMQ!3BVowvJHq֋v{#ӣIԞ2fÇ{{{4]"*L̤qca,LCGc+"[a#7^*h" y+Tm* V%붌n?-X4|ˍ.05l2{la\b!B~>Lu4f ~78XHYQmr/]j)TVJ,P {ꁫAX4 ƨl-AnSi]ާy3al(N^JJO;MMiDR4v]v^yG1gЦŧ@;F>_f.PA\4)(?4QgU]fs \0~mF곋չ-4JV.+RNN]&+zpEݬa%ia$J}PμG;ޫd{ߝ GwN42yj4]%i]$J۳O*5UrisƣA4:I%'۳_&L''ViMwIA7?.1 t48D OV㏏|("5qLnsQ{wNW/3@4Ҵh":)hB²DhhH)hhBM֣褾x y m棉W8Ds4V,s0 8ILgׁcTh|W-h8ku= <_:I yχ(2Ò*2oJ5$h.mhDO*y@peL>TQ McM9}r]ه| ,P;Kd yS3$EyRaf LMhB˥{x\A?JNEU kfLdR\$m\r6kDo c)!17K};]ai wRpT(p*i;D'cj:Π"w}μwHr, !3?4Q$v ݊95| eKm wDgd- ^EA<(CWPH26=h*m)hOhj&ASW}g.ؕ2筋m{yE2"#HhImD2+x4#A%Vļ|کoj$(Z=[Kr|~HU?Gҹ5|ܢJCrYkAeů(i>* 8!y4 dD3O1F, 4H NfТJs +- :3F4h q4aSc9;ʈX>$M5H[K\43z!i.iorxeʧ!iHg ICҐ4Z4 !ij!iH!iH!iH!i>|@\0/lmFM̧ۧv[v<m,6;q:kr:k¦j4!گ_LWD.¦jVTJGK 6QD+lri\4ͣP 6/c 唓F>T~ƒhYn9wIB6Q4(p aɡffMN^r|94 wwv"i *VDWkYap,n,\^J &G7J+؇[\ҸHU$ G4C JsVp8²g $QGِ5X?>:'xדx0s$M*l"Gץ#Fƺ Q@x43x'3]$M*lw"My,X:qqy3JH3z i_[ͣWO9=4xd8=Rsn"ݍy%dBit/Pec#FsYmI/l+E߼=o#"wHR 5@WZ0k4U4W5Ǐ=T }JLN]ִA#熿 x2S.͸5dfkms1™{̛6$ͱ ++b0o;Kv 3W4A0f(0n_;n[TLꯢ۫I ,^׊Eس&共/n6LfJ#n _W޳۬s .5 a3= 6֛f0rB3r*l mZҘ_8 o{>qAL8s'.Sq4@aod$ ^@6MpBߕ`28s^U'p^7$??vLc  x|Q@ltM lˑ𭙬ẇB\Əเ})*੨ >;W4 5E3r6=w{ip6Y F&i &ykH:3Ҭʛ/Ua&Mj'RSq%NV.Sʣ!]W_3|UN O lQ ȮJyY0룙^M<Yiu/ vjƸ!4k?ICkvJ*l4U$i*A6I*lԪ!J*l<|IID&5nz^@ب 6T~ S#4ûNR{!ނ m놿񏎞hVAm/i|3pXK8 Xz&IC6T! LkWmȯ43 o>28JQ O:lF \5L ب#Vmh+٨UQɘZ{iQ =OlM :.FclC^1͆ɸtO[',,A(jMɵVD-x k!//˗mOҐ4| :ᤇz{e o2Js7;ATG5ICHizFp@[o]8: 0 '"+ *N^0O0qmi"g_H"J@$3#< , 7iGYwDǩ HcMj><#i֦I@irj|yVr3SKc :H(_Iڥ $M!iʯI$M6oMf iJLMH⭐淿WDNn"c#p: TS쒾?n~QU2a* i+ηNIϧM Ks| xDiN-hU! AҠ.+lqhR!OgҀUu%82I_ <9Cs,# A%NWigGN4| e@#vՏ@í!Cj4<#(Sjx`/\HB"@>HMyH- N I]rk (:CYAyU$iITa!HI4M iHϊz4*ͽ+!i.U'qeyX{r!Mqn8Y?f*/ /V~MIpK's::CcVH3o+dw]x*-DnzFiGFf##}<ҴĜof2|%!if*Ӕ]v1oĿ|:ҵĂv;$IJHױsiC{x6i[|gɢL*z֕i(Sn}  \sIqrzn.z3$vL);uԡ4-f+,<&ƞ xu} ΂ mpg*/ ܲ7L o2${u L9uVv7W)Mw_34S/gG4K )#彀sg7HV\jmfݻRR@6Eee1#LT,jiK=Rس:i4IөΡ3C֔-4n@dNguǜv¤IpR πKҀ.& uֲid.HStڕҸՍ8jxX4/bO.ͨvo`g$M'rhCOе5[mru ^ Z/J*UYT 4s:\i+$xү5)'?xbiEo`dUy;r0lI`h"zHCpʓ^JzF#uzH:Y4!Q@ +)w8渤K^gH(MJKsc!_wc9GI|f72o&F4]*iyagya)9W֤HUifV&6R&gʓc-6tP@z\ ]=xxZ6r3,Z`α%3TUr`jYQҠ3K(MDM:m=8/WFa` F[3 kn{ץYw?;fAh\679&Fn[o YԞl9k\; xg=֖:t^iЙA!l?]˦url)Kg=ރE{nH|Ȋ씳YIݚi A*ǥy$7D履S{ICAً`>kIC/ IC4$ APM Qm6[_\i*lj+X\4Qe6+/ ATYMjQ Xץa!Xy}=ԫ`PEt{UbVkJCUUakGBK] &S%G9bj]kUG &V*:#_-v&ͱڒ i8Q&gҠ+ݻ- AiJ!,ƨ$CA[`M^Nxӽ+MNW҈ =܍a6GDꗎ#1X2ałL\8Iq=YȼRNV^X_*+lh -w'DRu>#R5۱|iJf a L$ װ0' A}ai"#Dy+#́{g_/VahM<\q/s3k}c{#*V@aTfV1i ~'s`Ayr$LFֿX"ߦͣN(v]qRhyҜ# ަLa6'ư ޒFOZi>8w~a Kɥ0Vwši"a0 g 0Iqg#4( ~QUăs,:Y0L4q<@ʑAQiaѢ_C9O"00 #8,i@#*zrjBDh*l3hN)48L0f Fᾢ ގ&/7/ZbLLP"/Fi<A纸4pQ7JHOT,`&=bOn,m ěSrp1,"$0>4& |P8= {^BҌϧH)g9Gir6Иo8Q%s Qtgi)gs4rVڹ4I7~V*<"Όj;K4Io4sgq E5@Ґ4$M!i|iICOH!i*l4U$iI$M6?HPa풆 i~[~_nͩSF6dB7uJ# A`Y ~Wϝq=}}?]g?N'nMZjDM6Q`s,WKhp1|-i5'ͭSIrs\ ء!hր g)dy^$ d4K- I'A)S>HMy^T'Oz('U%Mry_fJYX4O>&RxY+61hF;Q56IɯYUA/75@$ A4$ AҐ4IS1M>$i4~T4TXg$ AҐ4D i\spW}$ܔK-!hfepKHC4y>}$4*ˠIqn6'&ei~ɓ4r3@T4XF4&&o$u,CK_G4Is${Ak4HIf7[ߝ17T=c6n.({3GP34EwVM -9DUKDQE')Y401& Ic-]xSRk A*-J۴! }Y\lʙ5zrNǞ%IC҈pFr|Bn4|)P!iHF&)!iJBd8'0'RKم"ډų| F8ֽTgΨi(΄[/s|*@͢oqGuH*w7}l93<&jbHQ[_40$Ǎ^~2>4AO"!hG{w,\ԏN8?4G cdOp;c +FH/X#P7Hjx"їUv2d-Q´J3)/9#^QP xZٔ 4m9-ѽ=F}m̠d+/?+ +!=tMݜ%_)X+~!1. dX-a+Xc,I|XCRo|,HZi$upy8zc>Ph ^4捠óY"9yPBjuiocF "#V\1ф2"7)yzMSksz Xo (eUc_;+v.$;Z2,:T{@皒a"-;PŹPΩLia4.DUE +K( -o)7$2,cgS৺5Wdc5KGgđtviՍ4sM4jBc$9=Ps,;>4椗(K3d]w,7<(B~U!x@~YsQ.oR.Ǹ@5 J3t,fkgsE<( Ru|rx¦1Q3ɸo3o4p( o) 4#A8Fxh8O^i2\-xkMOHkHc@i2sz@dT+o/*M;09" L&Wp"2*.a ?2JW6"xOu_3q1(+2̉ u0-9ijBYCsz(ɵѿ1<Tan{/p{Ec3yϩ4"oܙ#Ϙril"i֕iB޼34Bqq\_K#t~ f샵k*4NpѺqd1(ѳD gҸ:t~M߱qM9+4GK~X3-&GEɀI@ixKn̼<_&r6G3)gKtk"Ϟ7W \M㇛'^D=S;$X}uh[䦜4x<{y%.S~~"|դ;D.8wH!iH!!H iH!i*lV IS ,HKy$͕OWV F{a $a9.1lHG(yR# f+RX;Vmi:|\ *HsFu*{@p ]N`GKCک4I'cw{_b{t:\T 4Lƥ{ ӗ& ALJ.D(<#HG5T4a"CHޘ 3_4)gXH3V2-1/ICԼ4Va|H֥ (Dו$M>&ROY~]D4*/#ziQC=((@$ۊՊѴ |obv3 [u9$hJ;M\X %)Z^˴~Z+tbG!%MD~gW4µ8n,L[0;>3,d)8&:̆ʟ> ქyBSL.6znhccnSYj2}md/VKm-8E>LL7$5fXe8Fc@Tk㡑~6()hCG!2&B2MVA<GvnP-TہK.hxi7^0 8F(Ic/0eM6YAM~(5xTtJ 4/V:FBSдtFFܜlЄSHR~dC; [2kD%L(s6cA{ʦi6ݤCr?@S9]2{`rwY@p\@#u( JnZ778;O{Vq>4q*95Kհ|Ff8*4 5<*;Smи@*rd1h3z(pX}9>^^ʀFl*Q *{9[jӏc߁2n}}ZcИ6[)=ߤdhފcׯ Sk- OڍBSДF.)t6hO <;}9L%,* MnWH?/7&C/04@(4'QDY4 Ju(4x/Rf~E+˰靳ss6 W")zS|*I՚g4Z3GДVMcL?҇'V`r}a# k?DjOi7Ws=i5|QɮCM½I(dơΤW1Mgؔќ74XoɦPvhd7FF伖*ьo@74,6746X\hDh?Bv zuB+"4p(|Yh&؅K;Q Gg񹗉&^8- #ΤH6YN^-'< q?,n:#+ptcq"meO)~wԅcvzfYwG~{ ùmcukaaW?C7S!&gƙz.z|_vg&da.6Y*&+܀M桰;^iuhUTҵ [-!DP uh^θI3zR?C`Ykh.rў|0gjյӋ5ٞ4~u5\ +#>=K) Dž_s۳OHAmӄ20/4ɗ&l^CXCbMG5awܽ[ǡuzYh[%,6bpš"nv ;|K{ NזF{i^-MҏLh0@˱Є# q]Ԅ@Cs繳7iMkLW9lz5"){9{ F6|?ih}I47ݭ{_ %c4Lҧk=<wO݁C+sVH73z0vm|x?l4NzL=}.y T9᫱n 5N{g64gLЋOgǮ}Wc'jNO<Ӱ]&4GhpX([(_X<'Y3=wOP:atvῆOO< h|lжG7' ';4lNnk~vhNM<݉NC!j)4^ؕ!` }u'%Fqiq־8dPXHlr3͉@tn"g4@OI<л?JV~ /4G;Ň)D,A)k= g,n>rW_].' L 4CSO47ߴ„Y&<{ڲK&jsJi4R|o|y?:sGe:%aQa>T24O̧?Cx) uiphTxYiflXWױs (w}['8eC H}1# rF=SBY0=m37wWROZøfbpfEʧ#X4G\VgG\{S vñ-קuc vŃCkGp b]rc簴.r'<_s 7foVq CZ: MhʇolFMn&  ~X3*ꇆOJrzc6ġ,-Ѝyt[sݵ7sZ=8 ¹@./{zhV瑎Wg>rOfF7@bah$ƈNk #BB3p°g %4Gwwh8WxKI6!;4o-drB(`WNPPF3s^h>hVmZ"h8mLC&kdݵ6H4|PwP2bxoᑏ^@̸r1)'oRh3M.5,AIFCux)4'0L%%6~c1ih?0Tyj;Cm?FZ6.+U8{ 똒\4zIѢ^h$Y(D ~{!6"ѸscF}SZLh[×It)$@*Q o;~`PdBS'h1MoV&hxih&(&p@A,䅆x7Ap =jgqM絿@hA#5WfLL3=3$6oc2$KО/;4ɀBSم1kgr=k'IG6Vs( mS .lddzơ6Gӳ0T>\Ml4dzf};Qy)q|Z㙛a܆~go=y4&J>3=s= \+()4ŁfAS4nX쯯_iEi&2975cٷۥ%d]I7n6h/n"!^.LH 2ܘ$؇YDL4l+Z[+ͰY3KC[xA2#"]ɡӞaЖpIH B#aeԭr(fe)4ZjCOBkS^y_!o-*4I#NY𲪂sozph$Cʕ~:<B2lS,ȶlXR(Y5~J g|L6i?w䠓?S6) HZf"ɲuBA-</CDU)4YNY8p*+νRI\Rk22kOo$.2= O\ۚha?j竢RhNb`,ӳ_DDGבzɀ\# Y]9q2Fj +V YכN#[<>'J4ЄiCl7*@iTv×Z/U?o$'-"ӊ-5ߟ@*fLuQ4{.4B09VHLWǡDRjQ1ȰVth`,4:4*^*'wԍxj4&#[hPV>h*

ՀQ)4 D0(|3: 뫪B{ƯJ#N·>oYV㱍E(4u c_YJgXa:jl,bJ˙!Kp%Ys ɡ nPT /|dЋjycظ #JLV77i.ekl"@:b8)#CxܶWhJ(f˜~z3Qoq$5=Ʉ&h~c1RɆRCr9ν.AlYʎ[hd @]= 5:KO)5b8 ‘uDJͰٰ!mw1S`h`w&4}1\&]/#I= /b bz_ێȣZpjcDyB8r:-,Yh4fvhR;T{8G%Id:;`rgČD-ǫli:'z|>7]nUY/tCE˙8 A+Ex|H!ҵkonhJ!Y Fs4<=B@H{ Ñ#hhjN%cPS/svtM*>MAp߁BGb5hB2MF d~ۧ?\ H L8IArHAY eSQ~pdio)!9٧gW3S>_űN>=C=)[V-_&B#pޝ!1.RȰibr^g3CC')pv-reB3)#l> -_8$xCUa! ;4D6xWjpm]5hU߼}G$!p@ S QfrCS6IS&CÁ4lr$(K)Y/ J6\/|O69g]xVjr:)[#&g$v&b7DB8g jLnhJ"f=?Pױh \y?;6RmF M3a37S(4ɰ z4FOɰٺ7vEQ)4a||BY3l0H*hJ;'T۟M)gT PvhJ2æJU:BRhBШFRhTFQ)4 JQhT*f~JU|hJ2_~9~P|hT Mf؜O4a@c3J|~irhnbf|&b>жSRLKMGt)P !mV)44&'4F~j7T !"(NtGOi m}CLhcW yڪRhNe@@^Lc8Ddȷ (0۶i7-,6Z=B!$^M/_ywh&4SOhtI 14ME{GC|A'$Z CӶͭv MH4\cԅF|5)kg2N-5#@iCN>/m34hihRRnZwuuQ{LwWi(xgFO$YCc#D6L=K)@Sl{44haMt=wgN3ֳ(4?kMlv  lV<c`` f֕Y@Mh@4D!ML^f;vd4. @4 Ǣ  őh7"Y8~z>7x:/n^9wt_YgQ<+3^?Ǔ%u{:UTͨhl1AÛ8bGat4~8b fT4 TnFE)*2ՌFT6T2)WˆFIFEc@[DijeIENDB`kbackup-19.12.3/po/uk/kbackup.po000066400000000000000000000603761363501564300163460ustar00rootroot00000000000000# Translation of kbackup.po to Ukrainian # Copyright (C) 2018 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Yuri Chornoivan , 2018. msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2018-11-26 07:51+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Юрій Чорноіван" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "yurchor@ukr.net" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "Нічого не вибрано для резервного копіювання" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "Каталог призначення, «%1», є некоректним" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" "Каталог призначення «%1» має бути каталогом призначення у локальній файловій " "системі, а не адресою віддаленого комп'ютера" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "Каталогу призначення «%1» не існує.\n" "\n" "Створити цей каталог?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "Не вдалося створити каталог призначення, «%1».\n" "Повідомлення від операційної системи: %2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "Каталогу призначення не існує" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "…зменшуємо кількість збережених архівів до максимальної %1" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "…вилучаємо %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" "не вдалося отримати список каталогів призначення. Зменшення кількості " "збережених архівів неможливе." #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "Не вдалося записати часові позначки резервних копій до профілю %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "— Фільтровані файли: %1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" "!! Створення резервної копії завершено, але деякі файли було пропущено !!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "— Створення резервної копії успішно завершено —" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "Створення резервної копії завершено, але деякі файли було пропущено.\n" "Що слід робити далі?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "Створення резервної копії успішно завершено.\n" "Що слід робити далі?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "Підсумки: файлів: %1, розмір: %2, тривалість: %3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "…Створення резервної копії перервано!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "Резервне копіювання скасовано" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "…завершено зріз %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "…вивантажуємо архів %1 до %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "Як слід опрацювати вивантаження?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "Невдала спроба вивантаження" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "Повторити" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "Змінити призначення" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "Не вдалося запустити скрипт «%1»." #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "Носій даних переповнено. Будь ласка, вставте носій даних №%1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "Не вдалося відкрити файл «%1» для запису даних." #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "Не вдалося відкрити файл «%1» для запису даних.\n" "\n" "Хочете повторити спробу?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "Не вдалося записати дані до архіву. Можливо, носій переповнено." #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "Не вдалося записати дані до архіву.\n" "Повідомлення від операційної системи: %1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "…пропускаємо фільтрований каталог %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "Не вдалося отримати дані щодо каталогу: %1\n" "Повідомлення від операційної системи: %2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "Каталог «%1» є недоступним для читання. Пропускаємо його." #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" "Не вдалося записати дані каталогу «%1» до архіву.\n" "Можливо, носій переповнено." #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "Не вдалося отримати дані щодо файла: %1\n" "Повідомлення від операційної системи: %2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "Не вдалося прочитати дані з файла «%1»\n" "Повідомлення від операційної системи: %2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "Не вдалося відкрити файл «%1» для читання." #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "…архівуємо файл %1" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "Не вдалося прочитати дані з файла: %1\n" "Повідомлення від операційної системи: %2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "Не вдалося створити тимчасовий файл для стискання: %1\n" "Повідомлення від операційної системи: %2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "Помилка запису до тимчасового файла" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "…стискаємо файл %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "Попередження:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "&Файл" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "П&араметри" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "Проста у користуванні програма для створення резервних копій" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "© Martin Koller, 2006–2018" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "Розробник" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "Запустити із вказаним профілем." #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" "Скрипт, який слід запустити після завершення створення одного зрізу архіву." #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" "Автоматично запустити резервне копіювання із вказаним профілем і перервати " "роботу після його завершення." #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" "Автоматично запустити резервне копіювання із вказаним профілем у фоновому " "режимі (без показу головного вікна) і перервати роботу після його завершення." #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" "У режимі autobg виводити докладні повідомлення щодо кожного файла під час " "резервного копіювання." #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" "У режимі auto/autobg примусово створити повну резервну копію, ігноруючи " "параметри профілю." #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "Не вдалося відкрити профіль «%1» для читання: %2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "Нарощувальне копіювання" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "Повне копіювання" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "без обмежень" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "Розпочати копіювання" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "Скасувати копіювання" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "Наступне копіювання:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "TextLabel" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "Примусове повне копіювання" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "Призначення" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "Тека:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "Носій:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "Розмір:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 МБ" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "Підсумки" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "Файли:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "МБ" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "Тривалість:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "Попередження:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "Поступ:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "Новий профіль" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "Завантажити профіль…" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "Зберегти профіль" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "Зберегти профіль як…" #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "Параметри профілю…" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "Увімкнути всі повідомлення" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "Пришвартувати у системному лотку" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "Показувати приховані файли" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "Виконується резервне копіювання. Хочете його перервати?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "Виберіть профіль" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "профіль KBackup (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "Не вдалося відкрити" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "Профіль із назвою «%1» вже існує.\n" "Хочете його перезаписати?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "Профіль вже існує" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "Не вдалося відкрити профіль «%1» для запису: %2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "Файли: %1 Розмір: %2 МБ\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "Назва" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "Розмір" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "Остання зміна" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "Відкрити за допомогою" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "Вилучити файл" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "Властивості…" #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "Ви дійсно хочете вилучити «%1»?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "Вилучити" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "Не вдалося вилучити каталог «%1»." #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "Не вдалося вилучити файл «%1».\n" "Причина: %2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "Інша програма…" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "Керування файлами" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 МБ, КД" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 МБ, КД" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4,7 ГБ, DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8,5 ГБ, DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9,4 ГБ, DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17,1 ГБ, DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "нетиповий" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "Параметри профілю" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" "Зніміть позначку, якщо ви не хочете появи діалогового вікна підтвердження " "заміни носія після створення зрізу" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "Запис потребує зміни носія" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "Фільтр виключення шляхів:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "Кількість повних резервних копій" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" "Гранична кількість повних резервних копій, які слід зберігати у каталозі " "призначення, перш ніж розпочнеться вилучення застарілих копій" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "Інтервал повного копіювання" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" "Наскільки часто слід створювати повну резервну копію, замість нарощувальної" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "Щодня" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " днів" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "Префікс архівів:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" "Визначає замінники назв файлів, які буде проігноровано під час створення " "резервної копії. Записи слід відокремлювати пробілами. Приклад: «*.ogg *.wav»" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "Максимальний розмір архіву:" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " МБ" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "Фільтр виключення назв файлів:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

Визначає список взірців абсолютних шляхів, яким " "програма скористається для фільтрування цілих каталогів.
Приклад: /home/" "*/.mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "" "Зніміть позначку, якщо ви хочете щоб програма взагалі не стискала файли" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "Стискати файли" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "резервування" #~ msgid "OK" #~ msgstr "Гаразд" #~ msgid "Cancel" #~ msgstr "Скасувати" kbackup-19.12.3/po/zh_CN/000077500000000000000000000000001363501564300147345ustar00rootroot00000000000000kbackup-19.12.3/po/zh_CN/kbackup.po000066400000000000000000000461361363501564300167260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: 2020-01-20 21:57\n" "Last-Translator: FULL NAME \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: kdeorg\n" "X-Crowdin-Language: zh-CN\n" "X-Crowdin-File: /kf5-stable/messages/kdeutils/kbackup.pot\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "KDE 中国" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kde-china@kde.org" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "没有为备份选择任何项目" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "目标文件夹 “%1” 无效" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "目标文件夹 “%1” 必须为本地文件系统而不是远程 URL。" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" "目标文件夹 “%1” 不存在。\n" "是否创建它?" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" "无法创建目标文件夹 “%1”。\n" "操作系统报告为:%2" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "目标文件夹不存在" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "...降低保存的存档数量到最多 %1 个" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "...正在删除 %1" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "获取目标的目录列表失败。无法降低保存的存档数量。" #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "无法将备份时间戳写入配置文件 %1: %2" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "-- 已过滤的文件:%1" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "!!备份完成 但有些文件被跳过!!" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "-- 备份成功完成 --" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" "备份已完成,不过有些文件被跳过了。\n" "您现在想做什么?" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" "当前备份已成功完成\n" "您现在想做什么?" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "总共:文件:%1, 大小:%2, 用时:%3" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "...备份已中止!" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "备份已取消" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "...已完成分片 %1" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "...正在上传存档 %1 到 %2" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "我们要怎么上传?" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "上传失败" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "重试" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "更改目标" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "无法启动脚本 \"%1\"。" #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "介质已满。请插入介质编号 %1" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "无法写入文件 “%1”。" #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" "无法写入文件 “%1”。\n" "\n" "是否需要重试?" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "无法写入存档。媒体可能已满。" #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" "无法写入存档。\n" "操作系统报告为:%1" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "...跳过了过滤掉的目录 %1" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" "无法获取目录的信息: %1\n" "操作系统报告为:%2" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "文件夹 “%1” 无法读取。已跳过。" #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "无法保存文件 “%1”。媒体可能已满。" #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" "无法获取文件信息:%1\n" "操作系统报告为:%2" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" "无法读取文件 “%1”\n" "操作系统报告为:%2" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "无法读取文件 “%1”。" #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "...正在保存文件 “%1”" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" "无法读取文件:%1\n" "操作系统报告为:%2" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" "无法创建用于压缩的临时文件: %1\n" "操作系统报告为:%2" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "无法写入临时文件" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "...正在压缩文件 %1" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "警告:" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "文件(&F)" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "设置(&S)" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "KBackup" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "一款易用的备份程序" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "(c) 2006 - 2018 Martin Koller" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "Martin Koller" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "开发者" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "从给定的配置文件开始。" #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "完成一个存档分片之后要运行的脚本。" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "使用给定的配置文件自动运行备份, 并在完成时终止。" #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "在后台自动运行具有给定配置文件的备份 (不显示窗口) 并在完成时终止。" #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "在自动后台模式给出详细信息,备份时输出每个文件名。" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "在自动/自动后台模式,强制备份为完整备份,而不是基于配置设置行动。" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "无法读取配置文件 “%1”:%2" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "增量备份" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "完整备份" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "不限制" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "开始备份" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "取消备份" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "下一个备份:" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "文字标签" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "强制完整备份" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "目标文本" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "文件夹:" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "介质:" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "1" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "大小:" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "0 MB" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "总计" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "文件:" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "0" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "MB" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "间隔:" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "00:00:00" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "警告:" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "进度:" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "新建配置方案" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "加载配置文件..." #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "保存方案" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "另存为..." #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "配置文件设置..." #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "启用所有消息" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "停靠在系统托盘" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "显示隐藏文件" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "正在进行备份。您确定要中止吗?" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "选择配置文件" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "KBackup 配置文件 (*.kbp)" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "打开失败" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" "已经存在文件“%1”。\n" "您想要覆盖吗?" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "配置文件已存在" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "无法写入配置文件 “%1”:%2" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" "文件: %1 大小: %2 MB\n" "%3" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "名称" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "大小" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "最后更新" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "打开方式" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "删除文件" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "属性..." #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "您真的想删除 “%1” 吗?" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "删除" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "无法删除文件夹 “%1”。" #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" "无法删除文件“%1”。\n" "原因:%2" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "其它应用程序..." #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "文件管理器" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "650 MB CD" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "700 MB CD" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "4.7 GB DVD" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "8.5 GB DVD" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "9.4 GB DVD" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "17.1 GB DVD" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "自定义" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "配置文件设置" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "如果您想要跳过在一个分片完成后弹出更换介质的确认对话框,勾选此项" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "目标需要更换介质。" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "排出的路径过滤器:" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "保持完整备份的数目" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "删除旧备份之前要在目标目录中保留多少完整备份" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "完整备份间隔:" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "每过多久要进行一次完整备份,而不是使用增量备份" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "每天" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr " 天" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "存档前缀:" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "定义指定备份时忽略的文件名的通配符,用空格分隔,例如:“*.ogg *.wav”" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "最大文件大小" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr " MB" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "排除文件名过滤器:" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" "

定义绝对路径列表,用于过滤整个目录,
例如 /home/*/." "mozilla/*/Cache

" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "如果您完全不想压缩文件,那请取消勾选" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "压缩文件" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "备份" kbackup-19.12.3/po/zh_TW/000077500000000000000000000000001363501564300147665ustar00rootroot00000000000000kbackup-19.12.3/po/zh_TW/kbackup.po000066400000000000000000000362041363501564300167530ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the kbackup package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: kbackup\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2019-09-18 03:18+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: Chinese \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: Archiver.cxx:428 #, kde-format msgid "Nothing selected for backup" msgstr "" #: Archiver.cxx:434 #, kde-format msgid "The target dir '%1' is not valid" msgstr "" #: Archiver.cxx:441 #, kde-format msgid "The target dir '%1' must be a local file system dir and no remote URL" msgstr "" #: Archiver.cxx:454 #, kde-format msgid "" "The target directory '%1' does not exist.\n" "\n" "Shall I create it?" msgstr "" #: Archiver.cxx:459 #, kde-format msgid "" "Could not create the target directory '%1'.\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:466 #, kde-format msgid "The target dir does not exist" msgstr "" #: Archiver.cxx:539 #, kde-format msgid "...reducing number of kept archives to max. %1" msgstr "" #: Archiver.cxx:600 #, kde-format msgid "...deleting %1" msgstr "" #: Archiver.cxx:624 #, kde-format msgid "" "fetching directory listing of target failed. Can not reduce kept archives." msgstr "" #: Archiver.cxx:647 #, kde-format msgid "Could not write backup timestamps into profile %1: %2" msgstr "" #: Archiver.cxx:651 #, kde-format msgid "-- Filtered Files: %1" msgstr "" #: Archiver.cxx:654 #, kde-format msgid "!! Backup finished but files were skipped !!" msgstr "" #: Archiver.cxx:656 #, kde-format msgid "-- Backup successfully finished --" msgstr "" #: Archiver.cxx:662 #, kde-format msgid "" "The backup has finished but files were skipped.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:664 #, kde-format msgid "" "The backup has finished successfully.\n" "What do you want to do now?" msgstr "" #: Archiver.cxx:681 #, kde-format msgid "Totals: Files: %1, Size: %2, Duration: %3" msgstr "" #: Archiver.cxx:692 #, kde-format msgid "...Backup aborted!" msgstr "" #: Archiver.cxx:720 #, kde-format msgid "Backup cancelled" msgstr "" #: Archiver.cxx:737 #, kde-format msgid "...finished slice %1" msgstr "" #: Archiver.cxx:752 #, kde-format msgid "...uploading archive %1 to %2" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "How shall we proceed with the upload?" msgstr "" #: Archiver.cxx:770 #, kde-format msgid "Upload Failed" msgstr "" #: Archiver.cxx:771 #, kde-format msgid "Retry" msgstr "" #: Archiver.cxx:771 #, kde-format msgid "Change Target" msgstr "" #: Archiver.cxx:865 #, kde-format msgid "The script '%1' could not be started." msgstr "" #: Archiver.cxx:904 #, kde-format msgid "The medium is full. Please insert medium Nr. %1" msgstr "" #: Archiver.cxx:940 #, kde-format msgid "The file '%1' can not be opened for writing." msgstr "" #: Archiver.cxx:944 #, kde-format msgid "" "The file '%1' can not be opened for writing.\n" "\n" "Do you want to retry?" msgstr "" #: Archiver.cxx:970 #, kde-format msgid "Could not write to archive. Maybe the medium is full." msgstr "" #: Archiver.cxx:974 #, kde-format msgid "" "Could not write to archive.\n" "The operating system reports: %1" msgstr "" #: Archiver.cxx:993 #, kde-format msgid "...skipping filtered directory %1" msgstr "" #: Archiver.cxx:1004 #, kde-format msgid "" "Could not get information of directory: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1014 #, kde-format msgid "Directory '%1' is not readable. Skipping." msgstr "" #: Archiver.cxx:1030 #, kde-format msgid "" "Could not write directory '%1' to archive.\n" "Maybe the medium is full." msgstr "" #: Archiver.cxx:1151 Archiver.cxx:1232 #, kde-format msgid "" "Could not get information of file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1179 Archiver.cxx:1276 #, kde-format msgid "" "Could not read from file '%1'\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1246 #, kde-format msgid "Could not open file '%1' for reading." msgstr "" #: Archiver.cxx:1309 #, kde-format msgid "...archiving file %1" msgstr "" #: Archiver.cxx:1347 #, kde-format msgid "" "Could not read file: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1361 #, kde-format msgid "" "Could not create temporary file for compressing: %1\n" "The operating system reports: %2" msgstr "" #: Archiver.cxx:1386 #, kde-format msgid "Could not write to temporary file" msgstr "" #: Archiver.cxx:1407 #, kde-format msgid "...compressing file %1" msgstr "" #: Archiver.cxx:1451 #, kde-format msgid "WARNING:" msgstr "" #. i18n: ectx: Menu (file) #: kbackupui.rc:4 #, kde-format msgid "&File" msgstr "" #. i18n: ectx: Menu (settings) #: kbackupui.rc:12 #, kde-format msgid "&Settings" msgstr "" #. i18n: ectx: property (windowTitle), widget (QWidget, MainWidgetBase) #: main.cxx:46 MainWidgetBase.ui:16 #, kde-format msgid "KBackup" msgstr "" #: main.cxx:47 #, kde-format msgid "An easy to use backup program" msgstr "" #: main.cxx:48 #, kde-format msgid "(c) 2006 - 2018 Martin Koller" msgstr "" #: main.cxx:52 #, kde-format msgid "Martin Koller" msgstr "" #: main.cxx:52 #, kde-format msgid "Developer" msgstr "" #: main.cxx:63 #, kde-format msgid "Start with given profile." msgstr "" #: main.cxx:65 #, kde-format msgid "Script to run after finishing one archive slice." msgstr "" #: main.cxx:67 #, kde-format msgid "" "Automatically run the backup with the given profile and terminate when done." msgstr "" #: main.cxx:70 #, kde-format msgid "" "Automatically run the backup with the given profile in the background " "(without showing a window) and terminate when done." msgstr "" #: main.cxx:75 #, kde-format msgid "" "In autobg mode be verbose and print every single filename during backup." msgstr "" #: main.cxx:78 #, kde-format msgid "" "In auto/autobg mode force the backup to be a full backup instead of acting " "on the profile settings." msgstr "" #: main.cxx:152 MainWindow.cxx:208 #, kde-format msgid "Could not open profile '%1' for reading: %2" msgstr "" #: MainWidget.cxx:68 #, kde-format msgid "Incremental Backup" msgstr "" #: MainWidget.cxx:70 #, kde-format msgid "Full Backup" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, numBackups) #. i18n: ectx: property (specialValueText), widget (QSpinBox, maxSliceSize) #: MainWidget.cxx:165 SettingsDialog.cxx:21 SettingsDialog.ui:67 #: SettingsDialog.ui:136 #, kde-format msgid "unlimited" msgstr "" #. i18n: ectx: property (text), widget (QPushButton, startButton) #: MainWidgetBase.ui:41 MainWindow.cxx:114 #, kde-format msgid "Start Backup" msgstr "" #. i18n: ectx: property (text), widget (QPushButton, cancelButton) #: MainWidgetBase.ui:69 MainWindow.cxx:117 #, kde-format msgid "Cancel Backup" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: MainWidgetBase.ui:92 #, kde-format msgid "Next Backup:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, backupType) #: MainWidgetBase.ui:99 #, kde-format msgid "TextLabel" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, forceFullBackup) #: MainWidgetBase.ui:106 #, kde-format msgid "Force Full Backup" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox3) #: MainWidgetBase.ui:121 #, kde-format msgid "Target" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel2) #: MainWidgetBase.ui:127 #, kde-format msgid "Folder:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, sliceLabel) #: MainWidgetBase.ui:143 #, kde-format msgid "Medium:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, sliceNum) #: MainWidgetBase.ui:165 #, kde-format msgid "1" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #. i18n: ectx: property (text), widget (QLabel, textLabel6) #: MainWidgetBase.ui:185 MainWidgetBase.ui:277 #, kde-format msgid "Size:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, capacity) #: MainWidgetBase.ui:201 #, kde-format msgid "0 MB" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: MainWidgetBase.ui:236 #, kde-format msgid "Totals" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel4) #: MainWidgetBase.ui:248 #, kde-format msgid "Files:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, totalFiles) #. i18n: ectx: property (text), widget (QLabel, totalSize) #: MainWidgetBase.ui:258 MainWidgetBase.ui:287 #, kde-format msgid "0" msgstr "" #. i18n: ectx: property (text), widget (QLabel, totalSize_2) #: MainWidgetBase.ui:300 #, kde-format msgid "MB" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel8) #: MainWidgetBase.ui:335 #, kde-format msgid "Duration:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, elapsedTime) #: MainWidgetBase.ui:345 #, kde-format msgid "00:00:00" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1_2) #: MainWidgetBase.ui:387 #, kde-format msgid "Warnings:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, fileProgressLabel) #: MainWidgetBase.ui:413 #, kde-format msgid "Progress:" msgstr "" #: MainWindow.cxx:57 #, kde-format msgid "New Profile" msgstr "" #: MainWindow.cxx:61 #, kde-format msgid "Load Profile..." msgstr "" #: MainWindow.cxx:65 #, kde-format msgid "Save Profile" msgstr "" #: MainWindow.cxx:69 #, kde-format msgid "Save Profile As..." msgstr "" #: MainWindow.cxx:73 #, kde-format msgid "Profile Settings..." msgstr "" #: MainWindow.cxx:76 #, kde-format msgid "Enable All Messages" msgstr "" #: MainWindow.cxx:78 #, kde-format msgid "Dock in System Tray" msgstr "" #: MainWindow.cxx:82 #, kde-format msgid "Show Hidden Files" msgstr "" #: MainWindow.cxx:144 #, kde-format msgid "There is a backup in progress. Do you want to abort it?" msgstr "" #: MainWindow.cxx:186 MainWindow.cxx:232 MainWindow.cxx:249 #, kde-format msgid "Select Profile" msgstr "" #: MainWindow.cxx:187 MainWindow.cxx:233 MainWindow.cxx:250 #, kde-format msgid "KBackup Profile (*.kbp)" msgstr "" #: MainWindow.cxx:211 MainWindow.cxx:279 #, kde-format msgid "Open failed" msgstr "" #: MainWindow.cxx:260 #, kde-format msgid "" "The profile '%1' does already exist.\n" "Do you want to overwrite it?" msgstr "" #: MainWindow.cxx:263 #, kde-format msgid "Profile exists" msgstr "" #: MainWindow.cxx:276 #, kde-format msgid "Could not open profile '%1' for writing: %2" msgstr "" #: MainWindow.cxx:352 #, kde-format msgid "" "Files: %1 Size: %2 MB\n" "%3" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Name" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Size" msgstr "" #: Selector.cxx:249 #, kde-format msgid "Last Modified" msgstr "" #: Selector.cxx:293 #, kde-format msgid "Open With" msgstr "" #: Selector.cxx:301 #, kde-format msgid "Delete File" msgstr "" #: Selector.cxx:307 #, kde-format msgid "Properties..." msgstr "" #: Selector.cxx:593 #, kde-format msgid "Do you really want to delete '%1'?" msgstr "" #: Selector.cxx:594 #, kde-format msgid "Delete" msgstr "" #: Selector.cxx:605 #, kde-format msgid "Could not delete directory '%1'." msgstr "" #: Selector.cxx:614 #, kde-format msgid "" "Could not delete file '%1'.\n" "Reason: %2" msgstr "" #: Selector.cxx:682 #, kde-format msgid "Other Application..." msgstr "" #: Selector.cxx:684 #, kde-format msgid "File Manager" msgstr "" #: SettingsDialog.cxx:22 #, kde-format msgid "650 MB CD" msgstr "" #: SettingsDialog.cxx:23 #, kde-format msgid "700 MB CD" msgstr "" #: SettingsDialog.cxx:24 #, kde-format msgid "4.7 GB DVD" msgstr "" #: SettingsDialog.cxx:25 #, kde-format msgid "8.5 GB DVD" msgstr "" #: SettingsDialog.cxx:26 #, kde-format msgid "9.4 GB DVD" msgstr "" #: SettingsDialog.cxx:27 #, kde-format msgid "17.1 GB DVD" msgstr "" #: SettingsDialog.cxx:28 #, kde-format msgid "custom" msgstr "" #. i18n: ectx: property (windowTitle), widget (QDialog, SettingsDialog) #: SettingsDialog.ui:16 #, kde-format msgid "Profile Settings" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:38 #, kde-format msgid "" "Uncheck if you want to avoid a confirmation dialog to change the medium when " "a slice was finished" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, mediaNeedsChange) #: SettingsDialog.ui:41 #, kde-format msgid "Target needs media change" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_4) #: SettingsDialog.ui:48 #, kde-format msgid "Exclude Paths Filter:" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label) #: SettingsDialog.ui:57 #, kde-format msgid "Number of full backups to keep" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, numBackups) #: SettingsDialog.ui:64 #, kde-format msgid "" "How many full backups shall be kept in the target directory before older " "ones will be deleted" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_2) #: SettingsDialog.ui:77 #, kde-format msgid "Full Backup Interval" msgstr "" #. i18n: ectx: property (toolTip), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:84 #, kde-format msgid "How often shall a full backup, instead of an incremental one, be done" msgstr "" #. i18n: ectx: property (specialValueText), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:87 #, kde-format msgid "Every Day" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, fullBackupInterval) #: SettingsDialog.ui:90 #, kde-format msgid " days" msgstr "" #. i18n: ectx: property (text), widget (QLabel, textLabel1) #: SettingsDialog.ui:105 #, kde-format msgid "Archive Prefix:" msgstr "" #. i18n: ectx: property (toolTip), widget (QLineEdit, filter) #: SettingsDialog.ui:115 #, kde-format msgid "" "Defines wildcards for filenames which will be ignored for backup, separated " "by a space. E.g.: \"*.ogg *.wav\"" msgstr "" #. i18n: ectx: property (title), widget (QGroupBox, groupBox2) #: SettingsDialog.ui:122 #, kde-format msgid "Maximum Archive Size:" msgstr "" #. i18n: ectx: property (suffix), widget (QSpinBox, maxSliceSize) #: SettingsDialog.ui:139 #, kde-format msgid " MB" msgstr "" #. i18n: ectx: property (text), widget (QLabel, label_3) #: SettingsDialog.ui:157 #, kde-format msgid "Exclude Filename Filter:" msgstr "" #. i18n: ectx: property (toolTip), widget (QPlainTextEdit, dirFilter) #: SettingsDialog.ui:164 #, kde-format msgid "" "

Defines a list of absolute path patterns which are " "used to filter complete directories,
e.g. /home/*/.mozilla/*/Cache

" msgstr "" #. i18n: ectx: property (toolTip), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:171 #, kde-format msgid "Uncheck if you want to avoid compressing files at all" msgstr "" #. i18n: ectx: property (text), widget (QCheckBox, compressFiles) #: SettingsDialog.ui:174 #, kde-format msgid "Compress Files" msgstr "" #. i18n: ectx: property (placeholderText), widget (QLineEdit, prefix) #: SettingsDialog.ui:181 #, kde-format msgid "backup" msgstr "" kbackup-19.12.3/src/000077500000000000000000000000001363501564300141045ustar00rootroot00000000000000kbackup-19.12.3/src/16-apps-kbackup.png000066400000000000000000000013441363501564300174210ustar00rootroot00000000000000PNG  IHDRa pHYsodtEXtComment̖IDAT8mKTQ?o9j:>%H,"`RÕRZUa6Bv-s'a(Efpa(59ޝi1:cց/˽sc@c Kȋ9xQy?qcLM g&Mf477Kم7 *ǃN^:=@r.w0cR @֞彯LXUI-$-# x;%WڔԻ""kpeγNGG4מ]'?3V \8HtNy͊X r9bQO8F? S:RqN/q)S"ބA}n8Navm--lf3D@ʁE)ˈFJ?vﳛeïra.pTH7qI~ DŽBPB49Iʯw2DD":m.iTIaB "b444_ T{n0xy?x=lr*" u|UR0==뺸.Zk Q m'$ !F=,۶ڸe۶ErHIENDB`kbackup-19.12.3/src/16-mimetypes-text-x-kbp.png000066400000000000000000000012541363501564300210550ustar00rootroot00000000000000PNG  IHDRabKGD pHYs  @AtIME 2$fp>9IDAT8˕1OSQJkZd ՘ 8b/ ,Lt䀉`,bBm{o9 &g9sy/*J9 8ߚ>}c}c9R4+}u&aK/. >|>O2dww?T*c3VfggTT9k[8>>CZlRT+SSS,=^v0BEH2rW[[|=n_gc 0J)YN8OkYܾEB|UED06~wu!t>U<dYDg"b}}Z-DPUĄ:y QQשjdYF8=@BU11tm&''r  f`CĆ磘18HRE6N z!Jl1aj=yyLk-FC|'1Q 2888XŢ>jBtWՈ7;d^I .[23.p+Y"Kj޺`sמ(m {``>'8y ^—;7S6&&82n\)`F4%/KW`VtuLȠҗѽʶ#H$ބGvH} ן#1Mf{8iEBLL Lz_i IZ0f돻C RճG%W%RBHů.Nz;I dGԦAހrko г3aF 3Q`ݛ6C(/qtoV9s4h D@*lV`e`˸^ oM+vjSPDTJ}җQ@hnڬQj]A *Ͷj<f惚p'=glr^ahV`VpH'}領ڗ]djVq@"Ě[,A}~ Yexd|(xT.|ArWD&+$̥/).R<]l;RDh оDǚj( dmqPNJTB0Yz 45N=55D]PoNDmJݻsLMMqMvEXDiuvvH$d2l(ٳQyFgbD"qSe<-a~REP.i "FVܺu-:grCCC4Kjx7tt:ݹsO8+Wd!9A'D߿Ofll\.G:P(perdY֯_OZ%͎,D CъOTbxCٵ3phߩKRɓ';e3;,.8ίѕo(F/_u`sZJJ@oo/m՝`- xsV|}ԁ7DžϚ*U7[$ ҩ$= @Wm>0`rܻ֕k*V]`R K]j6 }VzETמ_SǢfRHzR +)<?RUcmA|F@Y]\+Vڶm["b0ZAsźN:#VkEDݻwc +qPz!yM;F,Zf7 hDF+ό533ׁlٜBayfmHxW4M""<_Ҏ b4Q܍vԩSA~=vB5gϞeӦMuGDAvQ uhO۶9|0ضmj`hs('0ց<"x9I?}ζ"U1kin 4.19su?^ RV'4>A_$kXF!in}ՙoA f4hwΨ:YKsxцP ;R.X.fPҪ0HT*= 䀴_[ُx-O`'{Cc@PC*c$! "g+O,KנK }k#@7TE#J#"~(w'.3)nOH% c کe˰Q"s&N RK/Vd#?>9۷dxčGELQUEʊŠh#P z*TSK`hP WEqSX sop?k~ᅵ Lq+7>"E4-DK IENDB`kbackup-19.12.3/src/Archiver.cxx000066400000000000000000001211021363501564300163700ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2018 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // For INT64_MAX: // The ISO C99 standard specifies that in C++ implementations these // macros (stdint.h,inttypes.h) should only be defined if explicitly requested. // ISO C99: 7.18 Integer types #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS #endif #include #include //-------------------------------------------------------------------------------- QString Archiver::sliceScript; Archiver *Archiver::instance; const KIO::filesize_t MAX_SLICE = INT64_MAX; // 64bit max value //-------------------------------------------------------------------------------- Archiver::Archiver(QWidget *parent) : QObject(parent), archive(nullptr), totalBytes(0), totalFiles(0), filteredFiles(0), sliceNum(0), mediaNeedsChange(false), fullBackupInterval(1), incrementalBackup(false), forceFullBackup(false), sliceCapacity(MAX_SLICE), compressionType(KCompressionDevice::None), interactive(parent != nullptr), cancelled(false), runs(false), skippedFiles(false), verbose(false), jobResult(0) { instance = this; maxSliceMBs = Archiver::UNLIMITED; numKeptBackups = Archiver::UNLIMITED; setCompressFiles(false); if ( !interactive ) { connect(this, &Archiver::logging, this, &Archiver::loggingSlot); connect(this, &Archiver::warning, this, &Archiver::warningSlot); } } //-------------------------------------------------------------------------------- void Archiver::setCompressFiles(bool b) { if ( b ) { ext = QStringLiteral(".xz"); compressionType = KCompressionDevice::Xz; KFilterBase *base = KCompressionDevice::filterForCompressionType(compressionType); if ( !base ) { ext = QStringLiteral(".bz2"); compressionType = KCompressionDevice::BZip2; base = KCompressionDevice::filterForCompressionType(compressionType); if ( !base ) { ext = QStringLiteral(".gz"); compressionType = KCompressionDevice::GZip; } } delete base; } else { ext = QString(); } } //-------------------------------------------------------------------------------- void Archiver::setTarget(const QUrl &target) { targetURL = target; calculateCapacity(); } //-------------------------------------------------------------------------------- void Archiver::setMaxSliceMBs(int mbs) { maxSliceMBs = mbs; calculateCapacity(); } //-------------------------------------------------------------------------------- void Archiver::setKeptBackups(int num) { numKeptBackups = num; } //-------------------------------------------------------------------------------- void Archiver::setFilter(const QString &filter) { filters.clear(); QStringList list = filter.split(QLatin1Char(' '), QString::SkipEmptyParts); foreach (const QString &str, list) filters.append(QRegExp(str, Qt::CaseSensitive, QRegExp::Wildcard)); } //-------------------------------------------------------------------------------- QString Archiver::getFilter() const { QString filter; foreach (const QRegExp ®, filters) { filter += reg.pattern(); filter += QLatin1Char(' '); } return filter; } //-------------------------------------------------------------------------------- void Archiver::setDirFilter(const QString &filter) { dirFilters.clear(); QStringList list = filter.split(QLatin1Char('\n'), QString::SkipEmptyParts); foreach (const QString &str, list) { QString expr = str.trimmed(); if ( !expr.isEmpty() ) dirFilters.append(QRegExp(expr, Qt::CaseSensitive, QRegExp::Wildcard)); } } //-------------------------------------------------------------------------------- QString Archiver::getDirFilter() const { QString filter; foreach (const QRegExp ®, dirFilters) { filter += reg.pattern(); filter += QLatin1Char('\n'); } return filter; } //-------------------------------------------------------------------------------- void Archiver::setFullBackupInterval(int days) { fullBackupInterval = days; if ( fullBackupInterval == 1 ) { setIncrementalBackup(false); lastFullBackup = QDateTime(); lastBackup = QDateTime(); } } //-------------------------------------------------------------------------------- void Archiver::setForceFullBackup(bool force) { forceFullBackup = force; emit backupTypeChanged(isIncrementalBackup()); } //-------------------------------------------------------------------------------- void Archiver::setIncrementalBackup(bool inc) { incrementalBackup = inc; emit backupTypeChanged(isIncrementalBackup()); } //-------------------------------------------------------------------------------- void Archiver::setFilePrefix(const QString &prefix) { filePrefix = prefix; } //-------------------------------------------------------------------------------- void Archiver::calculateCapacity() { if ( targetURL.isEmpty() ) return; // calculate how large a slice can actually be // - limited by the target directory (when we store directly into a local dir) // - limited by the "tmp" dir when we create a tmp file for later upload via KIO // - limited by Qt (64bit int) // - limited by user defined maxSliceMBs KIO::filesize_t totalBytes = 0; if ( targetURL.isLocalFile() ) { if ( ! getDiskFree(targetURL.path(), totalBytes, sliceCapacity) ) return; } else { getDiskFree(QDir::tempPath() + QLatin1Char('/'), totalBytes, sliceCapacity); // as "tmp" is also used by others and by us when compressing a file, // don't eat it up completely. Reserve 10% sliceCapacity = sliceCapacity * 9 / 10; } // limit to what Qt can handle sliceCapacity = qMin(sliceCapacity, MAX_SLICE); if ( maxSliceMBs != UNLIMITED ) { KIO::filesize_t max = static_cast(maxSliceMBs) * 1024 * 1024; sliceCapacity = qMin(sliceCapacity, max); } sliceBytes = 0; // if the disk is full (capacity == 0), don't tell the user "unlimited" // sliceCapacity == 0 has a special meaning as "unlimited"; see MainWidget.cxx if ( sliceCapacity == 0 ) sliceCapacity = 1; emit targetCapacity(sliceCapacity); } //-------------------------------------------------------------------------------- bool Archiver::loadProfile(const QString &fileName, QStringList &includes, QStringList &excludes, QString &error) { QFile file(fileName); if ( ! file.open(QIODevice::ReadOnly) ) { error = file.errorString(); return false; } loadedProfile = fileName; QString target; QChar type, blank; QTextStream stream(&file); // back to default (in case old profile read which does not include these) setFilePrefix(QString()); setMaxSliceMBs(Archiver::UNLIMITED); setFullBackupInterval(1); // default as in previous versions filters.clear(); dirFilters.clear(); while ( ! stream.atEnd() ) { stream.skipWhiteSpace(); stream >> type; // read a QChar without skipping whitespace stream >> blank; // read a QChar without skipping whitespace if ( type == QLatin1Char('M') ) { target = stream.readLine(); // include white space } else if ( type == QLatin1Char('P') ) { QString prefix = stream.readLine(); // include white space setFilePrefix(prefix); } else if ( type == QLatin1Char('R') ) { int max; stream >> max; setKeptBackups(max); } else if ( type == QLatin1Char('F') ) { int days; stream >> days; setFullBackupInterval(days); } else if ( type == QLatin1Char('B') ) // last dateTime for backup { QString dateTime; stream >> dateTime; lastBackup = QDateTime::fromString(dateTime, Qt::ISODate); } else if ( type == QLatin1Char('L') ) // last dateTime for full backup { QString dateTime; stream >> dateTime; lastFullBackup = QDateTime::fromString(dateTime, Qt::ISODate); } else if ( type == QLatin1Char('S') ) { int max; stream >> max; setMaxSliceMBs(max); } else if ( type == QLatin1Char('C') ) { int change; stream >> change; setMediaNeedsChange(change); } else if ( type == QLatin1Char('X') ) { setFilter(stream.readLine()); // include white space } else if ( type == QLatin1Char('x') ) { dirFilters.append(QRegExp(stream.readLine(), Qt::CaseSensitive, QRegExp::Wildcard)); } else if ( type == QLatin1Char('Z') ) { int compress; stream >> compress; setCompressFiles(compress); } else if ( type == QLatin1Char('I') ) { includes.append(stream.readLine()); } else if ( type == QLatin1Char('E') ) { excludes.append(stream.readLine()); } else stream.readLine(); // skip unknown key and rest of line } file.close(); setTarget(QUrl::fromUserInput(target)); setIncrementalBackup( (fullBackupInterval > 1) && lastFullBackup.isValid() && (lastFullBackup.daysTo(QDateTime::currentDateTime()) < fullBackupInterval)); return true; } //-------------------------------------------------------------------------------- bool Archiver::saveProfile(const QString &fileName, const QStringList &includes, const QStringList &excludes, QString &error) { QFile file(fileName); if ( ! file.open(QIODevice::WriteOnly) ) { error = file.errorString(); return false; } QTextStream stream(&file); stream << "M " << targetURL.toString(QUrl::PreferLocalFile) << endl; stream << "P " << getFilePrefix() << endl; stream << "S " << getMaxSliceMBs() << endl; stream << "R " << getKeptBackups() << endl; stream << "F " << getFullBackupInterval() << endl; if ( getLastFullBackup().isValid() ) stream << "L " << getLastFullBackup().toString(Qt::ISODate) << endl; if ( getLastBackup().isValid() ) stream << "B " << getLastBackup().toString(Qt::ISODate) << endl; stream << "C " << static_cast(getMediaNeedsChange()) << endl; stream << "Z " << static_cast(getCompressFiles()) << endl; if ( !filters.isEmpty() ) stream << "X " << getFilter() << endl; foreach (const QRegExp &exp, dirFilters) stream << "x " << exp.pattern() << endl; foreach (const QString &str, includes) stream << "I " << str << endl; foreach (const QString &str, excludes) stream << "E " << str << endl; file.close(); return true; } //-------------------------------------------------------------------------------- bool Archiver::createArchive(const QStringList &includes, const QStringList &excludes) { if ( includes.isEmpty() ) { emit warning(i18n("Nothing selected for backup")); return false; } if ( !targetURL.isValid() ) { emit warning(i18n("The target dir '%1' is not valid", targetURL.toString())); return false; } // non-interactive mode only allows local targets as KIO needs $DISPLAY if ( !interactive && !targetURL.isLocalFile() ) { emit warning(i18n("The target dir '%1' must be a local file system dir and no remote URL", targetURL.toString())); return false; } // check if the target dir exists and optionally create it if ( targetURL.isLocalFile() ) { QDir dir(targetURL.path()); if ( !dir.exists() ) { if ( !interactive || (KMessageBox::warningYesNo(static_cast(parent()), i18n("The target directory '%1' does not exist.\n\n" "Shall I create it?", dir.absolutePath())) == KMessageBox::Yes) ) { if ( !dir.mkpath(QStringLiteral(".")) ) { emit warning(i18n("Could not create the target directory '%1'.\n" "The operating system reports: %2", dir.absolutePath(), QString::fromLatin1(strerror(errno)))); return false; } } else { emit warning(i18n("The target dir does not exist")); return false; } } } excludeDirs.clear(); excludeFiles.clear(); // build map for directories and files to be excluded for fast lookup foreach (const QString &name, excludes) { QFileInfo info(name); if ( !info.isSymLink() && info.isDir() ) excludeDirs.insert(name); else excludeFiles.insert(name); } baseName = QString(); sliceNum = 0; totalBytes = 0; totalFiles = 0; filteredFiles = 0; cancelled = false; skippedFiles = false; sliceList.clear(); QDateTime startTime = QDateTime::currentDateTime(); runs = true; emit inProgress(true); QTimer runTimer; if ( interactive ) // else we do not need to be interrupted during the backup { connect(&runTimer, &QTimer::timeout, this, &Archiver::updateElapsed); runTimer.start(1000); } elapsed.start(); if ( ! getNextSlice() ) { runs = false; emit inProgress(false); return false; } for (QStringList::const_iterator it = includes.constBegin(); !cancelled && (it != includes.constEnd()); ++it) { QString entry = *it; if ( (entry.length() > 1) && entry.endsWith(QLatin1Char('/')) ) entry.chop(1); QFileInfo info(entry); if ( !info.isSymLink() && info.isDir() ) { QDir dir(info.absoluteFilePath()); addDirFiles(dir); } else addFile(info.absoluteFilePath()); } finishSlice(); // reduce the number of old backups to the defined number if ( !cancelled && (numKeptBackups != UNLIMITED) ) { emit logging(i18n("...reducing number of kept archives to max. %1", numKeptBackups)); if ( !targetURL.isLocalFile() ) // KIO needs $DISPLAY; non-interactive only allowed for local targets { QPointer listJob; listJob = KIO::listDir(targetURL, KIO::DefaultFlags, false); connect(listJob.data(), &KIO::ListJob::entries, this, &Archiver::slotListResult); while ( listJob ) qApp->processEvents(QEventLoop::WaitForMoreEvents); } else // non-intercative. create UDSEntryList on our own { QDir dir(targetURL.path()); targetDirList.clear(); foreach (const QString &fileName, dir.entryList()) { KIO::UDSEntry entry; #if (KIO_VERSION >= QT_VERSION_CHECK(5, 48, 0)) entry.fastInsert(KIO::UDSEntry::UDS_NAME, fileName); #else entry.insert(KIO::UDSEntry::UDS_NAME, fileName); #endif targetDirList.append(entry); } jobResult = 0; } if ( jobResult == 0 ) { std::sort(targetDirList.begin(), targetDirList.end(), Archiver::UDSlessThan); QString prefix = filePrefix.isEmpty() ? QStringLiteral("backup_") : (filePrefix + QLatin1String("_")); QString sliceName; int num = 0; foreach (const KIO::UDSEntry &entry, targetDirList) { QString entryName = entry.stringValue(KIO::UDSEntry::UDS_NAME); if ( entryName.startsWith(prefix) && // only matching current profile entryName.endsWith(QLatin1String(".tar")) ) // just to be sure { if ( (num < numKeptBackups) && (sliceName.isEmpty() || !entryName.startsWith(sliceName)) ) // whenever a new backup set (different time) is found { sliceName = entryName.left(prefix.length() + strlen("yyyy.MM.dd-hh.mm.ss_")); if ( !entryName.endsWith(QLatin1String("_inc.tar")) ) // do not count partial (differential) backup files num++; if ( num == numKeptBackups ) num++; // from here on delete all others } if ( (num > numKeptBackups) && // delete all other files !entryName.startsWith(sliceName) ) // keep complete last matching archive set { QUrl url = targetURL; url = url.adjusted(QUrl::StripTrailingSlash); url.setPath(url.path() + QLatin1Char('/') + entryName); emit logging(i18n("...deleting %1", entryName)); // delete the file using KIO if ( !targetURL.isLocalFile() ) // KIO needs $DISPLAY; non-interactive only allowed for local targets { QPointer delJob; delJob = KIO::file_delete(url, KIO::DefaultFlags); connect(delJob.data(), &KJob::result, this, &Archiver::slotResult); while ( delJob ) qApp->processEvents(QEventLoop::WaitForMoreEvents); } else { QDir dir(targetURL.path()); dir.remove(entryName); } } } } } else { emit warning(i18n("fetching directory listing of target failed. Can not reduce kept archives.")); } } runs = false; emit inProgress(false); runTimer.stop(); updateElapsed(); // to catch the last partly second if ( !cancelled ) { lastBackup = startTime; if ( !isIncrementalBackup() ) { lastFullBackup = lastBackup; setIncrementalBackup(fullBackupInterval > 1); // after a full backup, the next will be incremental } if ( (fullBackupInterval > 1) && !loadedProfile.isEmpty() ) { QString error; if ( !saveProfile(loadedProfile, includes, excludes, error) ) { emit warning(i18n("Could not write backup timestamps into profile %1: %2", loadedProfile, error)); } } emit logging(i18n("-- Filtered Files: %1", filteredFiles)); if ( skippedFiles ) emit logging(i18n("!! Backup finished but files were skipped !!")); else emit logging(i18n("-- Backup successfully finished --")); if ( interactive ) { int ret = KMessageBox::questionYesNoList(static_cast(parent()), skippedFiles ? i18n("The backup has finished but files were skipped.\n" "What do you want to do now?") : i18n("The backup has finished successfully.\n" "What do you want to do now?"), sliceList, QString(), KStandardGuiItem::cont(), KStandardGuiItem::quit(), QStringLiteral("showDoneInfo")); if ( ret == KMessageBox::No ) // quit qApp->quit(); } else { std::cerr << "-------" << std::endl; foreach (QString slice, sliceList) std::cerr << slice.toUtf8().constData() << std::endl; std::cerr << "-------" << std::endl; std::cerr << i18n("Totals: Files: %1, Size: %2, Duration: %3", totalFiles, KIO::convertSize(totalBytes), QTime(0, 0).addMSecs(elapsed.elapsed()).toString(QStringLiteral("HH:mm:ss"))) .toUtf8().constData() << std::endl; } return true; } else { emit logging(i18n("...Backup aborted!")); return false; } } //-------------------------------------------------------------------------------- void Archiver::cancel() { if ( !runs ) return; if ( job ) { job->kill(); job = nullptr; } if ( !cancelled ) { cancelled = true; if ( archive ) { archive->close(); // else I can not remove the file - don't know why delete archive; archive = nullptr; } QFile(archiveName).remove(); // remove the unfinished tar file (which is now corrupted) emit warning(i18n("Backup cancelled")); } } //-------------------------------------------------------------------------------- void Archiver::finishSlice() { if ( archive ) archive->close(); if ( ! cancelled ) { runScript(QStringLiteral("slice_closed")); if ( targetURL.isLocalFile() ) { emit logging(i18n("...finished slice %1", archiveName)); sliceList << archiveName; // store name for display at the end } else { QUrl source = QUrl::fromLocalFile(archiveName); QUrl target = targetURL; while ( true ) { // copy to have the archive for the script later down job = KIO::copy(source, target, KIO::DefaultFlags); connect(job.data(), &KJob::result, this, &Archiver::slotResult); emit logging(i18n("...uploading archive %1 to %2", source.fileName(), target.toString())); while ( job ) qApp->processEvents(QEventLoop::WaitForMoreEvents); if ( jobResult == 0 ) { target = target.adjusted(QUrl::StripTrailingSlash); target.setPath(target.path() + QLatin1Char('/') + source.fileName()); sliceList << target.toLocalFile(); // store name for display at the end break; } else { enum { ASK, CANCEL, RETRY } action = ASK; while ( action == ASK ) { int ret = KMessageBox::warningYesNoCancel(static_cast(parent()), i18n("How shall we proceed with the upload?"), i18n("Upload Failed"), KGuiItem(i18n("Retry")), KGuiItem(i18n("Change Target"))); if ( ret == KMessageBox::Cancel ) { action = CANCEL; break; } else if ( ret == KMessageBox::No ) // change target { target = QFileDialog::getExistingDirectoryUrl(static_cast(parent())); if ( target.isEmpty() ) action = ASK; else action = RETRY; } else action = RETRY; } if ( action == CANCEL ) break; } } if ( jobResult != 0 ) cancel(); } } if ( ! cancelled ) runScript(QStringLiteral("slice_finished")); if ( !targetURL.isLocalFile() ) QFile(archiveName).remove(); // remove the tmp file delete archive; archive = nullptr; } //-------------------------------------------------------------------------------- void Archiver::slotResult(KJob *theJob) { if ( (jobResult = theJob->error()) ) { theJob->uiDelegate()->showErrorMessage(); emit warning(theJob->errorString()); } } //-------------------------------------------------------------------------------- void Archiver::slotListResult(KIO::Job *theJob, const KIO::UDSEntryList &entries) { if ( (jobResult = theJob->error()) ) { theJob->uiDelegate()->showErrorMessage(); emit warning(theJob->errorString()); } targetDirList = entries; } //-------------------------------------------------------------------------------- void Archiver::runScript(const QString &mode) { // do some extra action via external script (program) if ( sliceScript.length() ) { QString mountPoint; if ( targetURL.isLocalFile() ) { KMountPoint::Ptr ptr = KMountPoint::currentMountPoints().findByPath(targetURL.path()); if ( ptr ) mountPoint = ptr->mountPoint(); } KProcess proc; proc << sliceScript << mode << archiveName << targetURL.toString(QUrl::PreferLocalFile) << mountPoint; connect(&proc, &KProcess::readyReadStandardOutput, this, &Archiver::receivedOutput); proc.setOutputChannelMode(KProcess::MergedChannels); if ( proc.execute() == -2 ) { QString message = i18n("The script '%1' could not be started.", sliceScript); if ( interactive ) KMessageBox::error(static_cast(parent()), message); else emit warning(message); } } } //-------------------------------------------------------------------------------- void Archiver::receivedOutput() { KProcess *proc = static_cast(sender()); QByteArray buffer = proc->readAllStandardOutput(); QString msg = QString::fromUtf8(buffer); if ( msg.endsWith(QLatin1Char('\n')) ) msg.chop(1); emit warning(msg); } //-------------------------------------------------------------------------------- bool Archiver::getNextSlice() { sliceNum++; if ( archive ) { emit sliceProgress(100); finishSlice(); if ( cancelled ) return false; if ( interactive && mediaNeedsChange && KMessageBox::warningContinueCancel(static_cast(parent()), i18n("The medium is full. Please insert medium Nr. %1", sliceNum)) == KMessageBox::Cancel ) { cancel(); return false; } } emit newSlice(sliceNum); if ( baseName.isEmpty() ) { QString prefix = filePrefix.isEmpty() ? QStringLiteral("backup") : filePrefix; if ( targetURL.isLocalFile() ) baseName = targetURL.path() + QLatin1Char('/') + prefix + QDateTime::currentDateTime().toString(QLatin1String("_yyyy.MM.dd-hh.mm.ss")); else baseName = QDir::tempPath() + QLatin1Char('/') + prefix + QDateTime::currentDateTime().toString(QStringLiteral("_yyyy.MM.dd-hh.mm.ss")); } archiveName = baseName + QStringLiteral("_%1").arg(sliceNum); if ( isIncrementalBackup() ) archiveName += QStringLiteral("_inc.tar"); // mark the file as being not a full backup else archiveName += QStringLiteral(".tar"); runScript(QStringLiteral("slice_init")); calculateCapacity(); // don't create a bz2 compressed file as we compress each file on its own archive = new KTar(archiveName, QStringLiteral("application/x-tar")); while ( (sliceCapacity < 1024) || !archive->open(QIODevice::WriteOnly) ) // disk full ? { if ( !interactive ) emit warning(i18n("The file '%1' can not be opened for writing.", archiveName)); if ( !interactive || (KMessageBox::warningYesNo(static_cast(parent()), i18n("The file '%1' can not be opened for writing.\n\n" "Do you want to retry?", archiveName)) == KMessageBox::No) ) { delete archive; archive = nullptr; cancel(); return false; } calculateCapacity(); // try again; maybe the user freed up some space } return true; } //-------------------------------------------------------------------------------- void Archiver::emitArchiveError() const { QString err; if ( archive->device() ) err = archive->device()->errorString(); if ( err.isEmpty() ) { emit warning(i18n("Could not write to archive. Maybe the medium is full.")); } else { emit warning(i18n("Could not write to archive.\n" "The operating system reports: %1", err)); } } //-------------------------------------------------------------------------------- void Archiver::addDirFiles(QDir &dir) { QString absolutePath = dir.absolutePath(); if ( excludeDirs.contains(absolutePath) ) return; foreach (const QRegExp &exp, dirFilters) { if ( exp.exactMatch(absolutePath) ) { if ( interactive || verbose ) emit logging(i18n("...skipping filtered directory %1", absolutePath)); return; } } // add the dir itself struct stat status; memset(&status, 0, sizeof(status)); if ( ::stat(QFile::encodeName(absolutePath).constData(), &status) == -1 ) { emit warning(i18n("Could not get information of directory: %1\n" "The operating system reports: %2", absolutePath, QString::fromLatin1(strerror(errno)))); return; } QFileInfo dirInfo(absolutePath); if ( ! dirInfo.isReadable() ) { emit warning(i18n("Directory '%1' is not readable. Skipping.", absolutePath)); skippedFiles = true; return; } totalFiles++; emit totalFilesChanged(totalFiles); if ( interactive || verbose ) emit logging(absolutePath); qApp->processEvents(QEventLoop::AllEvents, 5); if ( cancelled ) return; if ( ! archive->writeDir(QStringLiteral(".") + absolutePath, dirInfo.owner(), dirInfo.group(), status.st_mode, dirInfo.lastRead(), dirInfo.lastModified(), dirInfo.birthTime()) ) { emit warning(i18n("Could not write directory '%1' to archive.\n" "Maybe the medium is full.", absolutePath)); return; } dir.setFilter(QDir::AllEntries | QDir::Hidden | QDir::System | QDir::NoDotAndDotDot); const QFileInfoList list = dir.entryInfoList(); for (int i = 0; !cancelled && (i < list.count()); i++) { if ( !list[i].isSymLink() && list[i].isDir() ) { QDir dir(list[i].absoluteFilePath()); addDirFiles(dir); } else addFile(list[i].absoluteFilePath()); } } //-------------------------------------------------------------------------------- bool Archiver::fileIsFiltered(const QString &fileName) const { foreach (const QRegExp &exp, filters) if ( exp.exactMatch(fileName) ) return true; return false; } //-------------------------------------------------------------------------------- void Archiver::addFile(const QFileInfo &info) { if ( (isIncrementalBackup() && (info.lastModified() < lastBackup)) || fileIsFiltered(info.fileName()) ) { filteredFiles++; return; } if ( excludeFiles.contains(info.absoluteFilePath()) ) return; // avoid including my own archive file // (QFileInfo to have correct path comparison even in case archiveName contains // etc.) // startsWith() is needed as KDE4 KTar does not create directly the .tar file but until it's closed // the file is named "...tarXXXX.new" if ( info.absoluteFilePath().startsWith(QFileInfo(archiveName).absoluteFilePath()) ) return; if ( cancelled ) return; /* don't skip. We probably do not need to read it anyway, since it might be empty if ( ! info.isReadable() ) { emit warning(i18n("File '%1' is not readable. Skipping.").arg(info.absoluteFilePath())); skippedFiles = true; return; } */ // emit before we do the compression, so that the receiver can already show // with which file we work // show filename + size if ( interactive || verbose ) emit logging(info.absoluteFilePath() + QStringLiteral(" (%1)").arg(KIO::convertSize(info.size()))); qApp->processEvents(QEventLoop::AllEvents, 5); if ( cancelled ) return; if ( info.isSymLink() ) { archive->addLocalFile(info.absoluteFilePath(), QStringLiteral(".") + info.absoluteFilePath()); totalFiles++; emit totalFilesChanged(totalFiles); return; } if ( !getCompressFiles() ) { AddFileStatus ret = addLocalFile(info); // this also increases totalBytes if ( ret == Error ) { cancel(); // we must cancel as the tar-file is now corrupt (file was only partly written) return; } else if ( ret == Skipped ) { skippedFiles = true; return; } } else // add the file compressed { // as we can't know which size the file will have after compression, // we create a compressed file and put this into the archive QTemporaryFile tmpFile; if ( ! compressFile(info.absoluteFilePath(), tmpFile) || cancelled ) return; // here we have the compressed file in tmpFile tmpFile.open(); // size() only works if open if ( (sliceBytes + tmpFile.size()) > sliceCapacity ) if ( ! getNextSlice() ) return; // to be able to create the exact same metadata (permission, date, owner) we need // to fill the file into the archive with the following: { struct stat status; memset(&status, 0, sizeof(status)); if ( ::stat(QFile::encodeName(info.absoluteFilePath()).constData(), &status) == -1 ) { emit warning(i18n("Could not get information of file: %1\n" "The operating system reports: %2", info.absoluteFilePath(), QString::fromLatin1(strerror(errno)))); skippedFiles = true; return; } if ( ! archive->prepareWriting(QStringLiteral(".") + info.absoluteFilePath() + ext, info.owner(), info.group(), tmpFile.size(), status.st_mode, info.lastRead(), info.lastModified(), info.birthTime()) ) { emitArchiveError(); cancel(); return; } const int BUFFER_SIZE = 8*1024; static char buffer[BUFFER_SIZE]; qint64 len; int count = 0; while ( ! tmpFile.atEnd() ) { len = tmpFile.read(buffer, BUFFER_SIZE); if ( len < 0 ) // error in reading { emit warning(i18n("Could not read from file '%1'\n" "The operating system reports: %2", info.absoluteFilePath(), tmpFile.errorString())); cancel(); return; } if ( ! archive->writeData(buffer, len) ) { emitArchiveError(); cancel(); return; } count = (count + 1) % 50; if ( count == 0 ) { qApp->processEvents(QEventLoop::AllEvents, 5); if ( cancelled ) return; } } if ( ! archive->finishWriting(tmpFile.size()) ) { emitArchiveError(); cancel(); return; } } // get filesize sliceBytes = archive->device()->pos(); // account for tar overhead totalBytes += tmpFile.size(); emit sliceProgress(static_cast(sliceBytes * 100 / sliceCapacity)); } totalFiles++; emit totalFilesChanged(totalFiles); emit totalBytesChanged(totalBytes); qApp->processEvents(QEventLoop::AllEvents, 5); } //-------------------------------------------------------------------------------- Archiver::AddFileStatus Archiver::addLocalFile(const QFileInfo &info) { struct stat sourceStat; memset(&sourceStat, 0, sizeof(sourceStat)); if ( ::stat(QFile::encodeName(info.absoluteFilePath()).constData(), &sourceStat) == -1 ) { emit warning(i18n("Could not get information of file: %1\n" "The operating system reports: %2", info.absoluteFilePath(), QString::fromLatin1(strerror(errno)))); return Skipped; } QFile sourceFile(info.absoluteFilePath()); // if the size is 0 (e.g. a pipe), don't open it since we will not read any content // and Qt hangs when opening a pipe if ( (info.size() > 0) && !sourceFile.open(QIODevice::ReadOnly) ) { emit warning(i18n("Could not open file '%1' for reading.", info.absoluteFilePath())); return Skipped; } if ( (sliceBytes + info.size()) > sliceCapacity ) if ( ! getNextSlice() ) return Error; if ( ! archive->prepareWriting(QStringLiteral(".") + info.absoluteFilePath(), info.owner(), info.group(), info.size(), sourceStat.st_mode, info.lastRead(), info.lastModified(), info.birthTime()) ) { emitArchiveError(); return Error; } const int BUFFER_SIZE = 8*1024; static char buffer[BUFFER_SIZE]; qint64 len; int count = 0, progress; QElapsedTimer timer; timer.start(); bool msgShown = false; qint64 written = 0; while ( info.size() && !sourceFile.atEnd() && !cancelled ) { len = sourceFile.read(buffer, BUFFER_SIZE); if ( len < 0 ) // error in reading { emit warning(i18n("Could not read from file '%1'\n" "The operating system reports: %2", info.absoluteFilePath(), sourceFile.errorString())); return Error; } if ( ! archive->writeData(buffer, len) ) { emitArchiveError(); return Error; } totalBytes += len; written += len; progress = static_cast(written * 100 / info.size()); // stay responsive count = (count + 1) % 50; if ( count == 0 ) { if ( msgShown ) emit fileProgress(progress); emit totalBytesChanged(totalBytes); qApp->processEvents(QEventLoop::AllEvents, 5); } if ( !msgShown && (timer.elapsed() > 3000) && (progress < 50) ) { emit fileProgress(progress); if ( interactive || verbose ) emit logging(i18n("...archiving file %1", info.absoluteFilePath())); if ( interactive ) QApplication::setOverrideCursor(QCursor(Qt::BusyCursor)); qApp->processEvents(QEventLoop::AllEvents, 5); msgShown = true; } } emit fileProgress(100); sourceFile.close(); if ( !cancelled ) { // get filesize sliceBytes = archive->device()->pos(); // account for tar overhead emit sliceProgress(static_cast(sliceBytes * 100 / sliceCapacity)); } if ( msgShown && interactive ) QApplication::restoreOverrideCursor(); if ( !cancelled && !archive->finishWriting(info.size()) ) { emitArchiveError(); return Error; } return cancelled ? Error : Added; } //-------------------------------------------------------------------------------- bool Archiver::compressFile(const QString &origName, QFile &comprFile) { QFile origFile(origName); if ( ! origFile.open(QIODevice::ReadOnly) ) { emit warning(i18n("Could not read file: %1\n" "The operating system reports: %2", origName, origFile.errorString())); skippedFiles = true; return false; } else { KCompressionDevice filter(&comprFile, false, compressionType); if ( !filter.open(QIODevice::WriteOnly) ) { emit warning(i18n("Could not create temporary file for compressing: %1\n" "The operating system reports: %2", origName, filter.errorString())); return false; } const int BUFFER_SIZE = 8*1024; static char buffer[BUFFER_SIZE]; qint64 len; int count = 0, progress; QElapsedTimer timer; timer.start(); bool msgShown = false; KIO::filesize_t fileSize = origFile.size(); KIO::filesize_t written = 0; while ( fileSize && !origFile.atEnd() && !cancelled ) { len = origFile.read(buffer, BUFFER_SIZE); qint64 wrote = filter.write(buffer, len); if ( len != wrote ) { emit warning(i18n("Could not write to temporary file")); return false; } written += len; progress = static_cast(written * 100 / fileSize); // keep the ui responsive count = (count + 1) % 50; if ( count == 0 ) { if ( msgShown ) emit fileProgress(progress); qApp->processEvents(QEventLoop::AllEvents, 5); } if ( !msgShown && (timer.elapsed() > 3000) && (progress < 50) ) { emit fileProgress(progress); emit logging(i18n("...compressing file %1", origName)); if ( interactive ) QApplication::setOverrideCursor(QCursor(Qt::BusyCursor)); qApp->processEvents(QEventLoop::AllEvents, 5); msgShown = true; } } emit fileProgress(100); origFile.close(); if ( msgShown && interactive ) QApplication::restoreOverrideCursor(); } return true; } //-------------------------------------------------------------------------------- bool Archiver::getDiskFree(const QString &path, KIO::filesize_t &capacityB, KIO::filesize_t &freeB) { struct statvfs vfs; memset(&vfs, 0, sizeof(vfs)); if ( ::statvfs(QFile::encodeName(path).constData(), &vfs) == -1 ) return false; capacityB = static_cast(vfs.f_blocks) * static_cast(vfs.f_frsize); freeB = static_cast(vfs.f_bavail) * static_cast(vfs.f_frsize); return true; } //-------------------------------------------------------------------------------- void Archiver::loggingSlot(const QString &message) { std::cerr << message.toUtf8().constData() << std::endl; } //-------------------------------------------------------------------------------- void Archiver::warningSlot(const QString &message) { std::cerr << i18n("WARNING:").toUtf8().constData() << message.toUtf8().constData() << std::endl; } //-------------------------------------------------------------------------------- void Archiver::updateElapsed() { emit elapsedChanged(QTime(0, 0).addMSecs(elapsed.elapsed())); } //-------------------------------------------------------------------------------- // sort by name of entries in descending order (younger names are first) bool Archiver::UDSlessThan(const KIO::UDSEntry &left, const KIO::UDSEntry &right) { return left.stringValue(KIO::UDSEntry::UDS_NAME) > right.stringValue(KIO::UDSEntry::UDS_NAME); } //-------------------------------------------------------------------------------- kbackup-19.12.3/src/Archiver.hxx000066400000000000000000000145211363501564300164030ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #ifndef _ARCHIVER_H_ #define _ARCHIVER_H_ // the class which does the archiving #include #include #include #include #include #include #include #include #include #include #include #include #include class KTar; class QDir; class QFileInfo; class QFile; class Archiver : public QObject { Q_OBJECT public: explicit Archiver(QWidget *parent); static Archiver *instance; // always call after you have already set maxSliceMBs, as the sliceCapacity // might be limited with it void setTarget(const QUrl &target); const QUrl &getTarget() const { return targetURL; } enum { UNLIMITED = 0 }; void setMaxSliceMBs(int mbs); int getMaxSliceMBs() const { return maxSliceMBs; } void setFilePrefix(const QString &prefix); const QString &getFilePrefix() const { return filePrefix; } void setMediaNeedsChange(bool b) { mediaNeedsChange = b; } bool getMediaNeedsChange() const { return mediaNeedsChange; } void setCompressFiles(bool b); bool getCompressFiles() const { return !ext.isEmpty(); } // number of backups to keep before older ones will be deleted (UNLIMITED or 1..n) void setKeptBackups(int num); int getKeptBackups() const { return numKeptBackups; } // define a filename filter in wildcard format each separated with a space // e.g. "*.png *.ogg" void setFilter(const QString &filter); QString getFilter() const; // define a list of path wildcards to filter complete dirs, separated by newline void setDirFilter(const QString &filter); QString getDirFilter() const; // interval for a full backup instead differential backup; when 1 given == full backup void setFullBackupInterval(int days); int getFullBackupInterval() const { return fullBackupInterval; } const QDateTime &getLastFullBackup() const { return lastFullBackup; } const QDateTime &getLastBackup() const { return lastBackup; } // print every single file/dir in non-interactive mode void setVerbose(bool b) { verbose = b; } // loads the profile into the Archiver and returns includes/excludes lists // return true if loaded, false on file open error bool loadProfile(const QString &fileName, QStringList &includes, QStringList &excludes, QString &error); void setLoadedProfile(const QString &fileName) { loadedProfile = fileName; } bool saveProfile(const QString &fileName, const QStringList &includes, const QStringList &excludes, QString &error); // return true if the backup completed successfully, else false bool createArchive(const QStringList &includes, const QStringList &excludes); KIO::filesize_t getTotalBytes() const { return totalBytes; } int getTotalFiles() const { return totalFiles; } bool isInProgress() const { return runs; } static bool getDiskFree(const QString &path, KIO::filesize_t &capacityBytes, KIO::filesize_t &freeBytes); // TODO: put probably in some global settings object static QString sliceScript; public Q_SLOTS: void cancel(); // cancel a running creation void setForceFullBackup(bool force = true); Q_SIGNALS: void inProgress(bool runs) const; void logging(const QString &) const; void warning(const QString &) const; void targetCapacity(KIO::filesize_t bytes) const; void sliceProgress(int percent) const; void fileProgress(int percent) const; void newSlice(int) const; void totalFilesChanged(int) const; void totalBytesChanged(KIO::filesize_t) const; void elapsedChanged(const QTime &) const; void backupTypeChanged(bool incremental) const; private Q_SLOTS: void slotResult(KJob *); void slotListResult(KIO::Job *, const KIO::UDSEntryList &); void receivedOutput(); void loggingSlot(const QString &message); // for non-interactive output void warningSlot(const QString &message); // for non-interactive output void updateElapsed(); private: void calculateCapacity(); // also emits signals void addDirFiles(QDir &dir); void addFile(const QFileInfo &info); enum AddFileStatus { Error, Added, Skipped }; AddFileStatus addLocalFile(const QFileInfo &info); bool compressFile(const QString &origName, QFile &comprFile); void finishSlice(); bool getNextSlice(); void runScript(const QString &mode); void setIncrementalBackup(bool inc); // returns true if the next backup will be an incremental one, false for a full backup bool isIncrementalBackup() const { return !forceFullBackup && incrementalBackup; } // return true if given fileName matches any of the defined filters bool fileIsFiltered(const QString &fileName) const; void emitArchiveError() const; static bool UDSlessThan(const KIO::UDSEntry &left, const KIO::UDSEntry &right); private: QSet excludeFiles; QSet excludeDirs; QString archiveName; QString filePrefix; // default = "backup" QStringList sliceList; QString loadedProfile; KTar *archive; KIO::filesize_t totalBytes; int totalFiles; int filteredFiles; // filter or time filter (incremental backup) QElapsedTimer elapsed; QList filters; QList dirFilters; QUrl targetURL; QString baseName; int sliceNum; int maxSliceMBs; bool mediaNeedsChange; bool compressFiles; int numKeptBackups; KIO::UDSEntryList targetDirList; QDateTime lastFullBackup; QDateTime lastBackup; int fullBackupInterval; bool incrementalBackup; bool forceFullBackup; KIO::filesize_t sliceBytes; KIO::filesize_t sliceCapacity; QString ext; KCompressionDevice::CompressionType compressionType; bool interactive; bool cancelled; bool runs; bool skippedFiles; // did we skip files during backup ? bool verbose; QPointer job; int jobResult; }; #endif kbackup-19.12.3/src/CMakeLists.txt000066400000000000000000000026021363501564300166440ustar00rootroot00000000000000add_subdirectory(pics) set(kbackup_SRCS Archiver.cxx MainWindow.cxx Selector.cxx main.cxx MainWidget.cxx SettingsDialog.cxx ) ki18n_wrap_ui(kbackup_SRCS MainWidgetBase.ui SettingsDialog.ui) add_executable(kbackup ${kbackup_SRCS}) target_link_libraries(kbackup Qt5::Core Qt5::Widgets KF5::I18n KF5::KIOCore KF5::KIOFileWidgets KF5::KIOWidgets KF5::WidgetsAddons KF5::XmlGui KF5::Notifications KF5::IconThemes KF5::Archive ) install(TARGETS kbackup ${INSTALL_TARGETS_DEFAULT_ARGS}) find_package(SharedMimeInfo REQUIRED) install(FILES kbackup.xml DESTINATION ${XDG_MIME_INSTALL_DIR}) update_xdg_mimetypes(${XDG_MIME_INSTALL_DIR}) install(FILES org.kde.kbackup.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install(FILES kbackupui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/kbackup) install(FILES org.kde.kbackup.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) ecm_install_icons(ICONS 16-apps-kbackup.png 32-apps-kbackup.png 16-mimetypes-text-x-kbp.png 32-mimetypes-text-x-kbp.png DESTINATION ${ICON_INSTALL_DIR} THEME hicolor) kbackup-19.12.3/src/MainWidget.cxx000066400000000000000000000132431363501564300166630ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #include #include #include #include #include #include #include //krazy:excludeall=normalize //-------------------------------------------------------------------------------- MainWidget::MainWidget(QWidget *parent) : QWidget(parent), selector(nullptr) { ui.setupUi(this); ui.startButton->setIcon(SmallIcon(QStringLiteral("kbackup_start"), 22)); ui.cancelButton->setIcon(SmallIcon(QStringLiteral("kbackup_cancel"), 22)); ui.folder->setIcon(SmallIcon(QStringLiteral("folder"))); connect(ui.startButton, &QAbstractButton::clicked, this, &MainWidget::startBackup); connect(ui.cancelButton, &QAbstractButton::clicked, Archiver::instance, &Archiver::cancel); connect(ui.forceFullBackup, &QAbstractButton::clicked, Archiver::instance, &Archiver::setForceFullBackup); connect(Archiver::instance, &Archiver::logging, ui.log, &QTextEdit::append); connect(Archiver::instance, &Archiver::warning, ui.warnings, &QTextEdit::append); connect(Archiver::instance, &Archiver::targetCapacity, this, &MainWidget::setCapacity); connect(Archiver::instance, SIGNAL(totalFilesChanged(int)), ui.totalFiles, SLOT(setNum(int))); connect(Archiver::instance, &Archiver::totalBytesChanged, this, &MainWidget::updateTotalBytes); connect(Archiver::instance, &Archiver::sliceProgress, ui.progressSlice, &QProgressBar::setValue); connect(Archiver::instance, SIGNAL(newSlice(int)), ui.sliceNum, SLOT(setNum(int))); connect(Archiver::instance, &Archiver::fileProgress, this, &MainWidget::setFileProgress); connect(Archiver::instance, &Archiver::elapsedChanged, this, &MainWidget::updateElapsed); connect(Archiver::instance, &Archiver::backupTypeChanged, this, &MainWidget::setIsIncrementalBackup); connect(ui.folder, &QAbstractButton::clicked, this, &MainWidget::getMediaSize); connect(ui.targetDir, SIGNAL(returnPressed(const QString &)), this, SLOT(setTargetURL(const QString &))); KUrlCompletion *kc = new KUrlCompletion(KUrlCompletion::DirCompletion); ui.targetDir->setCompletionObject(kc); ui.targetDir->setAutoDeleteCompletionObject(true); Archiver::instance->setForceFullBackup(ui.forceFullBackup->isChecked()); } //-------------------------------------------------------------------------------- void MainWidget::setIsIncrementalBackup(bool incremental) { if ( incremental ) ui.backupType->setText(i18n("Incremental Backup")); else ui.backupType->setText(i18n("Full Backup")); } //-------------------------------------------------------------------------------- void MainWidget::startBackup() { ui.log->clear(); ui.warnings->clear(); ui.cancelButton->setEnabled(true); ui.startButton->setEnabled(false); Archiver::instance->setTarget(QUrl::fromUserInput(ui.targetDir->text())); QStringList includes, excludes; selector->getBackupList(includes, excludes); Archiver::instance->createArchive(includes, excludes); ui.forceFullBackup->setChecked(false); Archiver::instance->setForceFullBackup(false); ui.cancelButton->setEnabled(false); ui.startButton->setEnabled(true); } //-------------------------------------------------------------------------------- void MainWidget::setSelector(Selector *s) { setCapacity(0); setFileProgress(100); // to hide file progress bar selector = s; } //-------------------------------------------------------------------------------- void MainWidget::getMediaSize() { QUrl url = QFileDialog::getExistingDirectoryUrl(this); if ( url.isEmpty() ) return; // cancelled ui.targetDir->setText(url.toLocalFile()); Archiver::instance->setTarget(QUrl::fromUserInput(ui.targetDir->text())); } //-------------------------------------------------------------------------------- void MainWidget::updateElapsed(const QTime &elapsed) { ui.elapsedTime->setText(elapsed.toString(QStringLiteral("HH:mm:ss"))); } //-------------------------------------------------------------------------------- void MainWidget::setTargetURL(const QString &url) { ui.targetDir->setText(url); Archiver::instance->setTarget(QUrl::fromUserInput(ui.targetDir->text())); } //-------------------------------------------------------------------------------- void MainWidget::updateTotalBytes() { // don't use KIO::convertSize() as this would not show good progress // after reaching 1 GB; always show MBs ui.totalSize->setText( QString::number(Archiver::instance->getTotalBytes() / 1024.0 / 1024.0, 'f', 2)); } //-------------------------------------------------------------------------------- void MainWidget::setFileProgress( int percent ) { if ( percent == 100 ) { ui.fileProgressLabel->hide(); ui.fileProgress->hide(); } else { ui.fileProgressLabel->show(); ui.fileProgress->show(); ui.fileProgress->setValue(percent); } } //-------------------------------------------------------------------------------- void MainWidget::setCapacity(KIO::filesize_t bytes) { if ( bytes == 0 ) ui.capacity->setText(i18n("unlimited")); else { QString txt = KIO::convertSize(bytes); if ( Archiver::instance->getMaxSliceMBs() != Archiver::UNLIMITED ) txt += QStringLiteral(" (*)"); ui.capacity->setText(txt); } } //-------------------------------------------------------------------------------- kbackup-19.12.3/src/MainWidget.hxx000066400000000000000000000022521363501564300166660ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #ifndef _MAIN_WIDGET_H_ #define _MAIN_WIDGET_H_ #include #include #include "kio/global.h" #include class Selector; class MainWidget : public QWidget { Q_OBJECT public: explicit MainWidget(QWidget *parent); void setSelector(Selector * s); KLineEdit *getTargetLineEdit() const { return ui.targetDir; } public Q_SLOTS: void setTargetURL(const QString &url); void startBackup(); void setIsIncrementalBackup(bool incremental); private: Selector *selector; Ui::MainWidgetBase ui; private Q_SLOTS: void getMediaSize(); void updateElapsed(const QTime &); void updateTotalBytes(); void setFileProgress(int percent); void setCapacity(KIO::filesize_t bytes); }; #endif kbackup-19.12.3/src/MainWidgetBase.ui000066400000000000000000000336411363501564300172750ustar00rootroot00000000000000 Martin Koller (c) 2006 MainWidgetBase 0 0 501 455 KBackup 0 0 0 50 14 Start Backup 22 22 false 0 0 0 50 Cancel Backup 22 22 0 0 Next Backup: TextLabel Force Full Backup 0 0 Target Folder: false 0 0 Medium: false 0 0 21 0 1 false 0 0 Size: false 90 0 0 MB false 0 0 0 0 Totals 0 0 Files: false 0 Qt::AlignVCenter false 0 0 Size: false 0 Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter false MB Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter false Qt::Horizontal QSizePolicy::Expanding 10 10 0 0 Duration: false 00:00:00 false 0 2 0 80 false QTextEdit::NoWrap true Warnings: false Qt::Horizontal QSizePolicy::Expanding 40 10 Progress: false 32767 18 0 1 0 50 255 0 0 255 0 0 122 123 125 false QTextEdit::NoWrap true SmallIcon KLineEdit QLineEdit
klineedit.h
klineedit.h
kbackup-19.12.3/src/MainWindow.cxx000066400000000000000000000362071363501564300167140ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //using namespace std; //-------------------------------------------------------------------------------- MainWindow::MainWindow() : sysTray(nullptr), autorun(false) { new Archiver(this); quitAction = KStandardAction::quit(this, SLOT(maybeQuit()), actionCollection()); KStandardAction::keyBindings(guiFactory(), SLOT(configureShortcuts()), actionCollection()); QAction *action; action = actionCollection()->addAction(QStringLiteral("newProfile"), this, SLOT(newProfile())); action->setText(i18n("New Profile")); action->setIcon(QIcon::fromTheme(QStringLiteral("document-new"))); action = actionCollection()->addAction(QStringLiteral("loadProfile"), this, SLOT(loadProfile())); action->setText(i18n("Load Profile...")); action->setIcon(QIcon::fromTheme(QStringLiteral("document-open"))); action = actionCollection()->addAction(QStringLiteral("saveProfile"), this, SLOT(saveProfile())); action->setText(i18n("Save Profile")); action->setIcon(QIcon::fromTheme(QStringLiteral("document-save"))); action = actionCollection()->addAction(QStringLiteral("saveProfileAs"), this, SLOT(saveProfileAs())); action->setText(i18n("Save Profile As...")); action->setIcon(QIcon::fromTheme(QStringLiteral("document-save-as"))); action = actionCollection()->addAction(QStringLiteral("profileSettings"), this, SLOT(profileSettings())); action->setText(i18n("Profile Settings...")); action = actionCollection()->addAction(QStringLiteral("enableAllMessages"), this, SLOT(enableAllMessages())); action->setText(i18n("Enable All Messages")); KToggleAction *docked = new KToggleAction(i18n("Dock in System Tray"), this); actionCollection()->addAction(QStringLiteral("dockInSysTray"), docked); connect(docked, &QAction::toggled, this, &MainWindow::dockInSysTray); KToggleAction *showHidden = new KToggleAction(i18n("Show Hidden Files"), this); actionCollection()->addAction(QStringLiteral("showHiddenFiles"), showHidden); connect(showHidden, &QAction::toggled, this, &MainWindow::showHiddenFiles); recentFiles = KStandardAction::openRecent(this, SLOT(recentProfileSelected(const QUrl &)), actionCollection()); recentFiles->setObjectName(QStringLiteral("recentProfiles")); recentFiles->loadEntries(KSharedConfig::openConfig()->group("")); createGUI(); splitter = new QSplitter(Qt::Horizontal, this); selector = new Selector(splitter, actionCollection()); mainWidget = new MainWidget(splitter); mainWidget->setSelector(selector); splitter->setCollapsible(splitter->indexOf(mainWidget), false); setCentralWidget(splitter); splitter->restoreState(KSharedConfig::openConfig()->group("geometry").readEntry("splitter", QByteArray())); selector->header()->restoreState(KSharedConfig::openConfig()->group("geometry").readEntry("tree", QByteArray())); // save/restore window settings and size setAutoSaveSettings(); connect(Archiver::instance, &Archiver::totalFilesChanged, this, &MainWindow::changeSystrayTip); connect(Archiver::instance, &Archiver::logging, this, &MainWindow::loggingSlot); connect(Archiver::instance, &Archiver::inProgress, this, &MainWindow::inProgress); startBackupAction = actionCollection()->addAction(QStringLiteral("startBackup"), mainWidget, SLOT(startBackup())); startBackupAction->setIcon(QIcon::fromTheme(QStringLiteral("kbackup_start"))); startBackupAction->setText(i18n("Start Backup")); cancelBackupAction = actionCollection()->addAction(QStringLiteral("cancelBackup"), Archiver::instance, SLOT(cancel())); cancelBackupAction->setText(i18n("Cancel Backup")); cancelBackupAction->setIcon(QIcon::fromTheme(QStringLiteral("kbackup_cancel"))); cancelBackupAction->setEnabled(false); showHidden->setChecked(KSharedConfig::openConfig()->group("settings").readEntry("showHiddenFiles", false)); showHiddenFiles(showHidden->isChecked()); docked->setChecked(KSharedConfig::openConfig()->group("settings").readEntry("dockInSysTray", false)); dockInSysTray(docked->isChecked()); changeSystrayTip(); } //-------------------------------------------------------------------------------- void MainWindow::runBackup() { autorun = true; QTimer::singleShot(0, mainWidget, &MainWidget::startBackup); } //-------------------------------------------------------------------------------- bool MainWindow::stopAllowed() { if ( Archiver::instance->isInProgress() ) { if ( KMessageBox::warningYesNo(this, i18n("There is a backup in progress. Do you want to abort it?")) == KMessageBox::No ) return false; Archiver::instance->cancel(); } KSharedConfig::openConfig()->group("geometry").writeEntry("splitter", splitter->saveState()); KSharedConfig::openConfig()->group("geometry").writeEntry("tree", selector->header()->saveState()); return true; } //-------------------------------------------------------------------------------- void MainWindow::maybeQuit() { if ( stopAllowed() ) qApp->quit(); } //-------------------------------------------------------------------------------- bool MainWindow::queryClose() { if ( qApp->isSavingSession() || !sysTray ) return stopAllowed(); hide(); return false; } //-------------------------------------------------------------------------------- void MainWindow::recentProfileSelected(const QUrl &url) { loadProfile(url.path()); } //-------------------------------------------------------------------------------- void MainWindow::loadProfile() { QString fileName = QFileDialog::getOpenFileName(this, i18n("Select Profile"), QString(), i18n("KBackup Profile (*.kbp)")); if ( fileName.isEmpty() ) return; loadProfile(fileName); } //-------------------------------------------------------------------------------- void MainWindow::loadProfile(const QString &fileName, bool adaptTreeWidth) { QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QStringList includes, excludes; QString error; if ( ! Archiver::instance->loadProfile(fileName, includes, excludes, error) ) { QApplication::restoreOverrideCursor(); KMessageBox::error(this, i18n("Could not open profile '%1' for reading: %2", fileName, error), i18n("Open failed")); return; } setLoadedProfile(fileName); // now fill the Selector tree with those settings selector->setBackupList(includes, excludes); mainWidget->getTargetLineEdit()->setText(Archiver::instance->getTarget().toDisplayString(QUrl::PreferLocalFile)); if ( adaptTreeWidth ) selector->resizeColumnToContents(0); QApplication::restoreOverrideCursor(); } //-------------------------------------------------------------------------------- void MainWindow::saveProfileAs() { QString fileName = QFileDialog::getSaveFileName(this, i18n("Select Profile"), QString(), i18n("KBackup Profile (*.kbp)")); if ( fileName.isEmpty() ) return; saveProfile(fileName); } //-------------------------------------------------------------------------------- void MainWindow::saveProfile(QString fileName) { if ( fileName.isEmpty() ) fileName = loadedProfile; if ( fileName.isEmpty() ) { fileName = QFileDialog::getSaveFileName(this, i18n("Select Profile"), QString(), i18n("KBackup Profile (*.kbp)")); if ( fileName.isEmpty() ) return; } QFile file(fileName); if ( file.exists() && (fileName != loadedProfile) ) { if ( KMessageBox::warningYesNo(this, i18n("The profile '%1' does already exist.\n" "Do you want to overwrite it?", fileName), i18n("Profile exists")) == KMessageBox::No ) return; } QStringList includes, excludes; selector->getBackupList(includes, excludes); QString error; Archiver::instance->setTarget(QUrl(mainWidget->getTargetLineEdit()->text())); if ( ! Archiver::instance->saveProfile(fileName, includes, excludes, error) ) { KMessageBox::error(this, i18n("Could not open profile '%1' for writing: %2", fileName, error), i18n("Open failed")); return; } setLoadedProfile(fileName); } //-------------------------------------------------------------------------------- void MainWindow::profileSettings() { SettingsDialog dialog(this); dialog.ui.prefix->setText(Archiver::instance->getFilePrefix()); dialog.setMaxMB(Archiver::instance->getMaxSliceMBs()); dialog.ui.numBackups->setValue(Archiver::instance->getKeptBackups()); dialog.ui.mediaNeedsChange->setChecked(Archiver::instance->getMediaNeedsChange()); dialog.ui.compressFiles->setChecked(Archiver::instance->getCompressFiles()); dialog.ui.fullBackupInterval->setValue(Archiver::instance->getFullBackupInterval()); dialog.ui.filter->setText(Archiver::instance->getFilter()); dialog.ui.dirFilter->setPlainText(Archiver::instance->getDirFilter()); if ( dialog.exec() == QDialog::Accepted ) { Archiver::instance->setFilePrefix(dialog.ui.prefix->text().trimmed()); Archiver::instance->setMaxSliceMBs(dialog.ui.maxSliceSize->value()); Archiver::instance->setKeptBackups(dialog.ui.numBackups->value()); Archiver::instance->setMediaNeedsChange(dialog.ui.mediaNeedsChange->isChecked()); Archiver::instance->setCompressFiles(dialog.ui.compressFiles->isChecked()); Archiver::instance->setFullBackupInterval(dialog.ui.fullBackupInterval->value()); Archiver::instance->setFilter(dialog.ui.filter->text()); Archiver::instance->setDirFilter(dialog.ui.dirFilter->toPlainText()); } } //-------------------------------------------------------------------------------- void MainWindow::newProfile() { Archiver::instance->setFilePrefix(QString()); // back to default Archiver::instance->setMaxSliceMBs(Archiver::UNLIMITED); Archiver::instance->setMediaNeedsChange(true); Archiver::instance->setTarget(QUrl()); Archiver::instance->setKeptBackups(Archiver::UNLIMITED); Archiver::instance->setFullBackupInterval(1); Archiver::instance->setFilter(QString()); Archiver::instance->setDirFilter(QString()); // clear selection QStringList includes, excludes; selector->setBackupList(includes, excludes); mainWidget->getTargetLineEdit()->setText(QString()); setLoadedProfile(QString()); } //-------------------------------------------------------------------------------- void MainWindow::loggingSlot(const QString &message) { lastLog = message; changeSystrayTip(); } //-------------------------------------------------------------------------------- void MainWindow::changeSystrayTip() { if ( !sysTray ) return; QString text = qApp->applicationDisplayName() + QLatin1String(" - ") + i18n("Files: %1 Size: %2 MB\n%3", Archiver::instance->getTotalFiles(), QString::number(Archiver::instance->getTotalBytes() / 1024.0 / 1024.0, 'f', 2), KStringHandler::csqueeze(lastLog, 60)); sysTray->setToolTip(QStringLiteral("kbackup"), QStringLiteral("kbackup"), text); } //-------------------------------------------------------------------------------- void MainWindow::inProgress(bool runs) { if ( runs ) { if ( sysTray ) { /* QMovie *movie = KIconLoader::global()->loadMovie("kbackup_runs", KIconLoader::Panel); if ( movie ) { sysTray->setMovie(movie); movie->start(); } */ sysTray->setIconByName(QStringLiteral("kbackup_runs")); sysTray->setStatus(KStatusNotifierItem::Active); } startBackupAction->setEnabled(false); cancelBackupAction->setEnabled(true); } else { if ( sysTray ) { /* if ( sysTray->movie() ) const_cast(sysTray->movie())->stop(); // why does it return a const pointer ? :-( sysTray->setIcon(sysTray->loadIcon("kbackup")); */ sysTray->setIconByName(QStringLiteral("kbackup")); sysTray->setStatus(KStatusNotifierItem::Passive); } startBackupAction->setEnabled(true); cancelBackupAction->setEnabled(false); if ( autorun ) qApp->quit(); } } //-------------------------------------------------------------------------------- void MainWindow::dockInSysTray(bool checked) { KSharedConfig::openConfig()->group("settings").writeEntry("dockInSysTray", checked); KSharedConfig::openConfig()->group("settings").sync(); if ( checked ) { // system tray icon delete sysTray; sysTray = new KStatusNotifierItem(this); sysTray->setStandardActionsEnabled(false); sysTray->contextMenu()->addAction(startBackupAction); sysTray->contextMenu()->addAction(cancelBackupAction); sysTray->contextMenu()->addAction(quitAction); if ( Archiver::instance->isInProgress() ) { sysTray->setStatus(KStatusNotifierItem::Active); sysTray->setIconByName(QStringLiteral("kbackup_runs")); } else { sysTray->setStatus(KStatusNotifierItem::Passive); sysTray->setIconByName(QStringLiteral("kbackup")); } } else { delete sysTray; sysTray = nullptr; } } //-------------------------------------------------------------------------------- void MainWindow::showHiddenFiles(bool checked) { KSharedConfig::openConfig()->group("settings").writeEntry("showHiddenFiles", checked); KSharedConfig::openConfig()->group("settings").sync(); selector->setShowHiddenFiles(checked); } //-------------------------------------------------------------------------------- void MainWindow::enableAllMessages() { KMessageBox::enableAllMessages(); } //-------------------------------------------------------------------------------- void MainWindow::setLoadedProfile(const QString &name) { loadedProfile = name; Archiver::instance->setLoadedProfile(name); setCaption(name); if ( !name.isEmpty() ) { QUrl url; url.setPath(name); recentFiles->addUrl(url); recentFiles->saveEntries(KSharedConfig::openConfig()->group("")); KSharedConfig::openConfig()->group("").sync(); } } //-------------------------------------------------------------------------------- kbackup-19.12.3/src/MainWindow.hxx000066400000000000000000000034221363501564300167120ustar00rootroot00000000000000//*************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //*************************************************************************** #ifndef _MAIN_WINDOW_H_ #define _MAIN_WINDOW_H_ #include class Selector; class MainWidget; class KStatusNotifierItem; class KToggleAction; class QAction; class KRecentFilesAction; class QUrl; class QSplitter; class MainWindow : public KXmlGuiWindow { Q_OBJECT public: MainWindow(); void loadProfile(const QString &fileName, bool adaptTreeWidth = false); // start backup and quit application after it's finished void runBackup(); protected: bool queryClose() override; private Q_SLOTS: void loadProfile(); void saveProfileAs(); void saveProfile(QString fileName = QString()); void profileSettings(); void newProfile(); void loggingSlot(const QString &message); void changeSystrayTip(); void inProgress(bool); void dockInSysTray(bool checked); void showHiddenFiles(bool checked); void maybeQuit(); void recentProfileSelected(const QUrl &url); void enableAllMessages(); private: bool stopAllowed(); void setLoadedProfile(const QString &name); private: QSplitter *splitter; Selector *selector; MainWidget *mainWidget; KStatusNotifierItem *sysTray; QString lastLog; QAction *startBackupAction; QAction *cancelBackupAction; QAction *quitAction; KRecentFilesAction *recentFiles; bool autorun; QString loadedProfile; }; #endif kbackup-19.12.3/src/Messages.sh000066400000000000000000000002641363501564300162110ustar00rootroot00000000000000#! /usr/bin/env bash $EXTRACTRC `find . -name \*.rc -o -name \*.ui -o -name \*.kcfg` >> rc.cpp $XGETTEXT `find . -name \*.h -o -name \*.\?xx -o -name \*.cpp` -o $podir/kbackup.pot kbackup-19.12.3/src/Selector.cxx000066400000000000000000000545061363501564300164220ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2018 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; //-------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- class Model : public QStandardItemModel { public: Model(Selector *parent) : QStandardItemModel(parent), tree(parent) { const char *lc_collate = ::getenv("LC_COLLATE"); if ( lc_collate ) collator.setLocale(QLocale(QLatin1String(lc_collate))); collator.setNumericMode(true); } bool hasChildren(const QModelIndex &index = QModelIndex()) const override { QStandardItem *item = itemFromIndex(index); if ( !item ) return true; // invisible root return !(item->flags() & Qt::ItemNeverHasChildren); } Selector *tree; QCollator collator; }; //-------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- class ListItem : public QStandardItem { public: ListItem(QStandardItem *parent, const QString &text, bool dir) : isDir_(dir), partly(false) { parent->appendRow(this); parent->setChild(row(), 1, new QStandardItem); parent->setChild(row(), 2, new QStandardItem); setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable); if ( !isDir_ ) setFlags(flags() | Qt::ItemNeverHasChildren); setCheckState(Qt::Unchecked); setText(0, text, key(text)); } int type() const override { return QStandardItem::UserType; } bool isOn() const { return checkState() == Qt::Checked; } void setOn(bool on) { setCheckState(on ? Qt::Checked : Qt::Unchecked); } void setText(int column, const QString &txt, const QVariant &sortKey) { QStandardItem *item; if ( parent() ) item = parent()->child(row(), column); else item = model()->item(row(), column); item->setText(txt); item->setData(sortKey, Qt::UserRole); } void setData(const QVariant &value, int role = Qt::UserRole + 1) override { if ( role == Qt::CheckStateRole ) { if ( value.toInt() != checkState() ) { QStandardItem::setData(value, role); stateChanged(); return; } } QStandardItem::setData(value, role); } // check if all siblings have the same state as the parent or are partly marked // If not, then the parent must have the partly flag set, otherwise the parents // partly flag can be cleared void recursSiblingsUp() { if ( !parent() ) return; bool allSame = true, state = static_cast(parent())->isOn(); for (int i = 0; i < parent()->rowCount(); i++) { QStandardItem *item = parent()->child(i); if ( (static_cast(item)->isOn() != state) || static_cast(item)->partly ) { allSame = false; break; } } // only continue upwards if the parents partly status changes if ( static_cast(parent())->partly != !allSame ) { static_cast(parent())->partly = !allSame; if ( !allSame ) static_cast(parent())->setForeground(Qt::blue); else { QWidget *w = static_cast(model())->tree; static_cast(parent())->setForeground(w->palette().color(w->foregroundRole())); } static_cast(parent())->recursSiblingsUp(); } } void stateChanged() { recursActivate(isOn()); recursSiblingsUp(); } // set all children recursively below this to on void recursActivate(bool on) { partly = false; // all children will get the same state QWidget *w = static_cast(model())->tree; setForeground(w->palette().color(w->foregroundRole())); setOn(on); for (int i = 0; i < rowCount(); i++) static_cast(child(i))->recursActivate(on); } bool isDir() const { return isDir_; } int key(const QString &text) const { bool hidden = text[0] == QLatin1Char('.'); // sort directories _always_ first, and hidden before shown if ( isDir_ ) return hidden ? 0 : 1; else // file return hidden ? 2 : 3; } bool operator<(const QStandardItem &other_) const override { QTreeView *w = static_cast(model())->tree; Qt::SortOrder order = w->header()->sortIndicatorOrder(); const ListItem &other = static_cast(other_); int myKey = data(Qt::UserRole).toInt(); int otherKey = other.data(Qt::UserRole).toInt(); if ( myKey != otherKey ) return (order == Qt::AscendingOrder) ? (myKey < otherKey) : (myKey > otherKey); else { // don't use localeAwareCompare. QLocale does not use LC_COLLATE QTBUG-29397 return static_cast(model())->collator.compare(text(), other.text()) < 0; } } void setSize(KIO::filesize_t size) { setText(1, KIO::convertSize(size), size); } void setLastModified(const QDateTime &time) { setText(2, QLocale().toString(time, QLocale::ShortFormat), time); } void setShowHiddenFiles(bool show) { QTreeView *w = static_cast(model())->tree; QStandardItem *parentItem = parent() ? parent() : model()->invisibleRootItem(); w->setRowHidden(row(), parentItem->index(), show ? false : text()[0] == QLatin1Char('.')); for (int i = 0; i < rowCount(); i++) static_cast(child(i))->setShowHiddenFiles(show); } private: bool isDir_; bool partly; // is this an item which is not fully (but partly - some of the children) selected }; //-------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- Selector::Selector(QWidget *parent, KActionCollection *actionCollection) : QTreeView(parent), showHiddenFiles(true) { itemModel = new Model(this); setModel(itemModel); itemModel->setSortRole(Qt::UserRole); itemModel->setHorizontalHeaderLabels(QStringList() << i18n("Name") << i18n("Size") << i18n("Last Modified")); setRootIsDecorated(true); // start with / as root node ListItem *item = new ListItem(itemModel->invisibleRootItem(), QStringLiteral("/"), true); QFileInfo info(QStringLiteral("/")); item->setSize(info.size()); item->setLastModified(info.lastModified()); item->setIcon(SmallIcon(QStringLiteral("folder"))); setExpanded(item->index(), true); fillTree(item, QStringLiteral("/"), false); connect(this, &Selector::expanded, this, &Selector::expandedSlot); // for convenience, open the tree at the HOME directory const char *home = ::getenv("HOME"); if ( home ) { QStandardItem *item = findItemByPath(QFile::decodeName(home)); if ( item ) { setExpanded(item->index(), true); scrollTo(item->index()); } } minSize = QSize(columnWidth(0) + columnWidth(1), -1); resizeColumnToContents(0); resizeColumnToContents(1); resizeColumnToContents(2); sortByColumn(0, Qt::AscendingOrder); // context menu menu = new QMenu(this); QAction *action; action = KStandardAction::open(this, SLOT(open()), actionCollection); menu->addAction(action); connect(this, &Selector::doubleClicked, this, &Selector::doubleClickedSlot); openWithSubMenu = new QMenu(i18n("Open With"), this); menu->addMenu(openWithSubMenu); connect(openWithSubMenu, &QMenu::aboutToShow, this, &Selector::populateOpenMenu); connect(openWithSubMenu, &QMenu::triggered, this, &Selector::openWith); // just since KF 5.25 //deleteFileAction = KStandardAction::deleteFile(this, SLOT(deleteFile()), actionCollection); deleteFileAction = actionCollection->addAction(QStringLiteral("deleteFile"), this, SLOT(deleteFile())); deleteFileAction->setText(i18n("Delete File")); deleteFileAction->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete"))); deleteFileAction->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Delete)); menu->addAction(deleteFileAction); action = actionCollection->addAction(QStringLiteral("properties"), this, SLOT(properties())); action->setText(i18n("Properties...")); menu->addAction(action); } //-------------------------------------------------------------------------------- QSize Selector::minimumSizeHint() const { return minSize; } //-------------------------------------------------------------------------------- void Selector::fillTree(ListItem *parent, const QString &path, bool on) { setSortingEnabled(false); const QDir::Filters filter = QDir::AllEntries | QDir::Hidden | QDir::System | QDir::NoDotAndDotDot; QDir dir(path, QString(), QDir::NoSort, filter); const QFileInfoList list = dir.entryInfoList(); ListItem *item; for (int i = 0; i < list.count(); i++) { if ( parent ) item = new ListItem(parent, list[i].fileName(), list[i].isDir()); else item = new ListItem(itemModel->invisibleRootItem(), list[i].fileName(), list[i].isDir()); item->setOn(on); item->setSize(list[i].size()); item->setLastModified(list[i].lastModified()); item->setShowHiddenFiles(showHiddenFiles); if ( item->isDir() ) { QDir dir(list[i].absoluteFilePath(), QString(), QDir::NoSort, filter); // symlinked dirs can not be expanded as they are stored as single files in the archive if ( (dir.count() > 0) && !list[i].isSymLink() ) ; // can have children else item->setFlags(item->flags() | Qt::ItemNeverHasChildren); static QPixmap folderIcon; static QPixmap folderLinkIcon; static QPixmap folderIconHidden; static QPixmap folderLinkIconHidden; if ( folderIcon.isNull() ) // only get the icons once { KIconEffect effect; folderIcon = SmallIcon(QStringLiteral("folder")); folderIconHidden = effect.apply(folderIcon, KIconEffect::DeSaturate, 0, QColor(), true); folderLinkIcon = SmallIcon(QStringLiteral("folder"), 0, KIconLoader::DefaultState, QStringList(QStringLiteral("emblem-symbolic-link"))); folderLinkIconHidden = effect.apply(folderLinkIcon, KIconEffect::DeSaturate, 0, QColor(), true); } item->setIcon(list[i].isSymLink() ? (list[i].isHidden() ? folderLinkIconHidden : folderLinkIcon) : (list[i].isHidden() ? folderIconHidden : folderIcon)); } else { static QPixmap documentIcon; static QPixmap documentLinkIcon; static QPixmap documentIconHidden; static QPixmap documentLinkIconHidden; if ( documentIcon.isNull() ) // only get the icons once { KIconEffect effect; documentIcon = SmallIcon(QStringLiteral("text-x-generic")); documentIconHidden = effect.apply(documentIcon, KIconEffect::DeSaturate, 0, QColor(), true); documentLinkIcon = SmallIcon(QStringLiteral("text-x-generic"), 0, KIconLoader::DefaultState, QStringList(QStringLiteral("emblem-symbolic-link"))); documentLinkIconHidden = effect.apply(documentLinkIcon, KIconEffect::DeSaturate, 0, QColor(), true); } item->setIcon(list[i].isSymLink() ? (list[i].isHidden() ? documentLinkIconHidden : documentLinkIcon) : (list[i].isHidden() ? documentIconHidden : documentIcon)); } } setSortingEnabled(true); } //-------------------------------------------------------------------------------- QString Selector::getPath(QStandardItem *item) const { if ( !item ) return QString(); else if ( !item->parent() ) return item->text(); // root else if ( item->parent() == itemModel->item(0) ) return QStringLiteral("/") + item->text(); else return getPath(item->parent()) + QStringLiteral("/") + item->text(); } //-------------------------------------------------------------------------------- void Selector::expandedSlot(const QModelIndex &index) { QStandardItem *item = itemModel->itemFromIndex(index); if ( item->rowCount() ) return; // already done fillTree(static_cast(item), getPath(item), static_cast(item)->isOn()); } //-------------------------------------------------------------------------------- void Selector::getBackupList(QStringList &includes, QStringList &excludes) const { for (int i = 0; i < itemModel->rowCount(); i++) getBackupLists(itemModel->item(i, 0), includes, excludes); /* cerr << "includes:" << includes.count() << endl; for (QStringList::const_iterator it = includes.begin(); (it != includes.end()); ++it) cerr << *it << endl; cerr << "excludes:" << excludes.count() << endl; for (QStringList::const_iterator it = excludes.begin(); (it != excludes.end()); ++it) cerr << *it << endl; cerr << endl; */ } //-------------------------------------------------------------------------------- void Selector::getBackupLists(QStandardItem *start, QStringList &includes, QStringList &excludes, bool add) const { if ( static_cast(start)->isOn() ) { if ( add ) includes.append(getPath(start)); // include it if ( static_cast(start)->isDir() ) { // get excludes from this dir for (int i = 0; i < start->rowCount(); i++) { QStandardItem *item = start->child(i); if ( !static_cast(item)->isOn() ) excludes.append(getPath(item)); if ( static_cast(item)->isDir() ) getBackupLists(item, includes, excludes, false); } } } else if ( static_cast(start)->isDir() ) { for (int i = 0; i < start->rowCount(); i++) getBackupLists(start->child(i), includes, excludes); } } //-------------------------------------------------------------------------------- void Selector::setBackupList(const QStringList &includes, const QStringList &excludes) { // clear all current settings for (int i = 0; i < itemModel->rowCount(); i++) static_cast(itemModel->item(i, 0))->recursActivate(false); for (QStringList::const_iterator it = includes.begin(); (it != includes.end()); ++it) { QStandardItem *item = findItemByPath(*it); if ( item ) static_cast(item)->recursActivate(true); } for (QStringList::const_iterator it = excludes.begin(); (it != excludes.end()); ++it) { QStandardItem *item = findItemByPath(*it); if ( item ) static_cast(item)->setOn(false); } } //-------------------------------------------------------------------------------- QStandardItem *Selector::findItemByPath(const QString &path) { QStringList items = path.split(QLatin1Char('/'), QString::SkipEmptyParts); QStandardItem *item = itemModel->invisibleRootItem()->child(0); for (int i = 0; i < items.count(); i++) { item = findItem(item, items[i]); if ( !item ) return nullptr; else { if ( (i != (items.count() - 1)) && static_cast(item)->isDir() && (item->rowCount() == 0) ) expandedSlot(item->index()); } } return item; } //-------------------------------------------------------------------------------- QStandardItem *Selector::findItem(QStandardItem *start, const QString &toFind) const { for (int i = 0; i < (start ? start->rowCount() : itemModel->rowCount()); i++) { QStandardItem *item = start ? start->child(i) : itemModel->item(i, 0); if ( item->text() == toFind ) return item; } return nullptr; } //-------------------------------------------------------------------------------- ListItem *Selector::getSelectedItem() const { QModelIndex index = selectionModel()->currentIndex(); if ( !index.isValid() ) return nullptr; QStandardItem *item = itemModel->itemFromIndex(itemModel->index(index.row(), 0, index.parent())); if ( !item || (item->type() != QStandardItem::UserType) ) // just be safe return nullptr; return static_cast(item); } //-------------------------------------------------------------------------------- void Selector::contextMenuEvent(QContextMenuEvent *) { ListItem *item = getSelectedItem(); if ( !item ) return; bool canDelete = true; if ( item->isDir() ) { // only if it's empty canDelete = QDir(getPath(item), QString(), QDir::NoSort, QDir::AllEntries | QDir::System | QDir::NoDotAndDotDot).count() == 0; } deleteFileAction->setEnabled(canDelete); menu->exec(QCursor::pos()); } //-------------------------------------------------------------------------------- void Selector::deleteFile() { ListItem *item = getSelectedItem(); if ( !item ) return; QUrl sourceUrl = QUrl::fromLocalFile(getPath(item)); if ( KMessageBox::questionYesNo(this, i18n("Do you really want to delete '%1'?", sourceUrl.path()), i18n("Delete"), KStandardGuiItem::yes(), KStandardGuiItem::no(), QStringLiteral("dontAskAgainDelete")) == KMessageBox::Yes ) { QStandardItem *parent = nullptr; if ( item->isDir() ) { QDir dir(sourceUrl.path()); if ( !dir.removeRecursively() ) KMessageBox::error(this, i18n("Could not delete directory '%1'.", sourceUrl.path())); else parent = item->parent(); } else { QFile theFile(sourceUrl.path()); if ( !theFile.remove(sourceUrl.path()) ) KMessageBox::error(this, i18n("Could not delete file '%1'.\nReason: %2", sourceUrl.path(), theFile.errorString())); else parent = item->parent(); } if ( parent ) { parent->removeRow(item->row()); if ( parent->type() == QStandardItem::UserType ) static_cast(parent)->stateChanged(); // make sure removed item is taken into account } } } //-------------------------------------------------------------------------------- void Selector::properties() { ListItem *item = getSelectedItem(); if ( !item ) return; QUrl sourceUrl = QUrl::fromLocalFile(getPath(item)); QPointer dialog = new KPropertiesDialog(sourceUrl, this); connect(dialog.data(), &KPropertiesDialog::applied, this, [item, dialog]() { // make sure a renamed file is shown with the new name in the tree item->setText(0, dialog->item().name(), item->key(dialog->item().name())); }); dialog->exec(); delete dialog; } //-------------------------------------------------------------------------------- void Selector::populateOpenMenu() { ListItem *item = getSelectedItem(); if ( !item ) return; QUrl sourceUrl = QUrl::fromLocalFile(getPath(item)); qDeleteAll(openWithSubMenu->actions()); serviceForName.clear(); KFileItem fileItem(sourceUrl); QString mimeType(fileItem.determineMimeType().name()); KService::List services = KMimeTypeTrader::self()->query(mimeType); foreach (const KService::Ptr &service, services) { QString text = service->name().replace(QLatin1Char('&'), QStringLiteral("&&")); QAction* action = openWithSubMenu->addAction(text); action->setIcon(QIcon::fromTheme(service->icon())); action->setData(service->name()); serviceForName[service->name()] = service; } openWithSubMenu->addSeparator(); openWithSubMenu->addAction(i18n("Other Application...")); QAction* action = openWithSubMenu->addAction(i18n("File Manager")); action->setIcon(QIcon::fromTheme(QStringLiteral("folder"))); action->setData(QStringLiteral("-")); } //-------------------------------------------------------------------------------- void Selector::doubleClickedSlot() { ListItem *item = getSelectedItem(); if ( !item || item->isDir() ) return; open(); } //-------------------------------------------------------------------------------- void Selector::open() { ListItem *item = getSelectedItem(); if ( !item ) return; QUrl sourceUrl = QUrl::fromLocalFile(getPath(item)); KRun *run = new KRun(sourceUrl, window()); // auto-deletes itself run->setRunExecutables(false); } //-------------------------------------------------------------------------------- void Selector::openWith(QAction *action) { ListItem *item = getSelectedItem(); if ( !item ) return; QUrl sourceUrl = QUrl::fromLocalFile(getPath(item)); QString name = action->data().toString(); if ( name.isEmpty() ) // Other Application... { KRun::displayOpenWithDialog(QList() << sourceUrl, this); return; } if ( name == QLatin1String("-") ) // File Manager { #if (KIO_VERSION >= QT_VERSION_CHECK(5, 31, 0)) KRun::runUrl(sourceUrl.adjusted(QUrl::RemoveFilename), QStringLiteral("inode/directory"), this, KRun::RunFlags()); #else KRun::runUrl(sourceUrl.adjusted(QUrl::RemoveFilename), QStringLiteral("inode/directory"), this); #endif return; } KService::Ptr service = serviceForName[name]; #if (KIO_VERSION >= QT_VERSION_CHECK(5, 24, 0)) KRun::runApplication(*service, QList() << sourceUrl, this); #else KRun::run(*service, QList() << sourceUrl, this); #endif } //-------------------------------------------------------------------------------- void Selector::setShowHiddenFiles(bool show) { showHiddenFiles = show; for (int i = 0; i < itemModel->invisibleRootItem()->rowCount(); i++) static_cast(itemModel->item(i, 0))->setShowHiddenFiles(show); } //-------------------------------------------------------------------------------- kbackup-19.12.3/src/Selector.hxx000066400000000000000000000037061363501564300164230ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #ifndef _SELECTOR_H_ #define _SELECTOR_H_ // the selection widget lets the user select which files/dirs to back up #include #include #include class KActionCollection; class ListItem; class QMenu; class Selector : public QTreeView { Q_OBJECT public: explicit Selector(QWidget *parent, KActionCollection *actionCollection); void getBackupList(QStringList &includes, QStringList &excludes) const; void setBackupList(const QStringList &includes, const QStringList &excludes); void setShowHiddenFiles(bool show); QSize minimumSizeHint() const override; protected: void contextMenuEvent(QContextMenuEvent *event) override; private: void fillTree(ListItem *parent, const QString &path, bool on); QString getPath(QStandardItem *item) const; void getBackupLists(QStandardItem *start, QStringList &includes, QStringList &excludes, bool add = true) const; QStandardItem *findItemByPath(const QString &path); QStandardItem *findItem(QStandardItem *start, const QString &toFind) const; ListItem *getSelectedItem() const; private Q_SLOTS: void expandedSlot(const QModelIndex &index); void populateOpenMenu(); void doubleClickedSlot(); void open(); void openWith(QAction *action); void deleteFile(); void properties(); private: QSize minSize; QStandardItemModel *itemModel; QMenu *menu, *openWithSubMenu; QAction *deleteFileAction; QMap serviceForName; bool showHiddenFiles; }; #endif kbackup-19.12.3/src/SettingsDialog.cxx000066400000000000000000000055221363501564300175540ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #include //-------------------------------------------------------------------------------- SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent) { ui.setupUi(this); QStringList sizes; sizes << i18n("unlimited") << i18n("650 MB CD") << i18n("700 MB CD") << i18n("4.7 GB DVD") << i18n("8.5 GB DVD") << i18n("9.4 GB DVD") << i18n("17.1 GB DVD") << i18n("custom"); ui.predefSizes->addItems(sizes); // unlimited as default ui.predefSizes->setCurrentIndex(0); ui.maxSliceSize->setValue(0); ui.maxSliceSize->setDisabled(true); } //-------------------------------------------------------------------------------- void SettingsDialog::sizeSelected(int idx) { if ( idx == (ui.predefSizes->count() - 1) ) ui.maxSliceSize->setEnabled(true); else ui.maxSliceSize->setDisabled(true); // http://en.wikipedia.org/wiki/Binary_prefix#Binary_prefixes_using_SI_symbols // CD capacities are always given in binary units // But DVD capacities are given in decimal units switch ( idx ) { // unlimited case 0: ui.maxSliceSize->setValue( 0); break; // CDs case 1: ui.maxSliceSize->setValue( 650); break; case 2: ui.maxSliceSize->setValue( 700); break; // DVDs case 3: ui.maxSliceSize->setValue( 4482); break; case 4: ui.maxSliceSize->setValue( 8106); break; case 5: ui.maxSliceSize->setValue( 8964); break; case 6: ui.maxSliceSize->setValue(16307); break; // custom case 7: ui.maxSliceSize->setValue( 0); break; } } //-------------------------------------------------------------------------------- void SettingsDialog::setMaxMB(int mb) { ui.maxSliceSize->setValue(mb); ui.maxSliceSize->setDisabled(true); switch ( mb ) { case 0: ui.predefSizes->setCurrentIndex(0); break; case 650: ui.predefSizes->setCurrentIndex(1); break; case 700: ui.predefSizes->setCurrentIndex(2); break; case 4482: ui.predefSizes->setCurrentIndex(3); break; case 8106: ui.predefSizes->setCurrentIndex(4); break; case 8964: ui.predefSizes->setCurrentIndex(5); break; case 16307: ui.predefSizes->setCurrentIndex(6); break; default : ui.predefSizes->setCurrentIndex(7); ui.maxSliceSize->setEnabled(true); break; } } //-------------------------------------------------------------------------------- kbackup-19.12.3/src/SettingsDialog.hxx000066400000000000000000000013701363501564300175560ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2017 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #ifndef _SETTINGS_DIALOG_H_ #define _SETTINGS_DIALOG_H_ #include #include class SettingsDialog : public QDialog { Q_OBJECT public: explicit SettingsDialog(QWidget *parent); void setMaxMB(int mb); Ui::SettingsDialog ui; private Q_SLOTS: void sizeSelected(int idx); }; #endif kbackup-19.12.3/src/SettingsDialog.ui000066400000000000000000000155451363501564300173750ustar00rootroot00000000000000 Martin Koller Profile Settings SettingsDialog 0 0 350 525 Profile Settings 0 0 QFrame::HLine QFrame::Sunken Uncheck if you want to avoid a confirmation dialog to change the medium when a slice was finished Target needs media change Exclude Paths Filter: Number of full backups to keep How many full backups shall be kept in the target directory before older ones will be deleted unlimited 1000 Full Backup Interval How often shall a full backup, instead of an incremental one, be done Every Day days 1 500 Archive Prefix: false Defines wildcards for filenames which will be ignored for backup, separated by a space. E.g.: "*.ogg *.wav" Maximum Archive Size: true unlimited MB 0 999999 Exclude Filename Filter: <html><head/><body><p>Defines a list of absolute path patterns which are used to filter complete directories,<br/>e.g. /home/*/.mozilla/*/Cache</p></body></html> Uncheck if you want to avoid compressing files at all Compress Files backup QDialogButtonBox::Cancel|QDialogButtonBox::Ok predefSizes activated(int) SettingsDialog sizeSelected(int) 41 114 20 20 buttonBox accepted() SettingsDialog accept() 80 512 21 467 buttonBox rejected() SettingsDialog reject() 161 501 110 468 kbackup-19.12.3/src/XmlMessages.sh000066400000000000000000000004231363501564300166670ustar00rootroot00000000000000function get_files { echo kbackup.xml } function po_for_file { case "$1" in kbackup.xml) echo kbackup_xml_mimetypes.po ;; esac } function tags_for_file { case "$1" in kbackup.xml) echo comment ;; esac } kbackup-19.12.3/src/kbackup.xml000066400000000000000000000031761363501564300162550ustar00rootroot00000000000000 KBackup Profile Perfil del KBackup Perfil de KBackup Profil KBackup KBackup-profil KBackup-Profil KBackup προφίλ KBackup Profile Perfil de KBackup KBackup profila KBackup-profiili Profil KBackup Perfil de KBackup Profilo de KBackup Profilo di KBackup KBackup 프로필 KBackup-profiel KBackup-profil Profil KBackup Perfil do KBackup Perfil do KBackup Профиль KBackup Profil KBackup Kbackup-profil профіль KBackup KBackup 配置文件 KBackup 設定檔 kbackup-19.12.3/src/kbackupui.rc000066400000000000000000000010051363501564300164040ustar00rootroot00000000000000 &File &Settings kbackup-19.12.3/src/main.cxx000066400000000000000000000127111363501564300155560ustar00rootroot00000000000000//************************************************************************** // Copyright 2006 - 2018 Martin Koller, kollix@aon.at // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, version 2 of the License // //************************************************************************** #include #include #include #include #include #include #include #include #include #include #include #include #include //-------------------------------------------------------------------------------- void sigHandler(int sig) { Q_UNUSED(sig) QTimer::singleShot(0, Archiver::instance, &Archiver::cancel); QTimer::singleShot(0, QCoreApplication::instance(), SLOT(quit())); } //-------------------------------------------------------------------------------- int main(int argc, char **argv) { QScopedPointer app(new QCoreApplication(argc, argv)); KLocalizedString::setApplicationDomain("kbackup"); KAboutData about(QStringLiteral("kbackup"), i18n("KBackup"), QStringLiteral(KBACKUP_VERSION), i18n("An easy to use backup program"), KAboutLicense::GPL_V2, i18n("(c) 2006 - 2018 Martin Koller"), // copyright QString(), // added text QStringLiteral("https://www.linux-apps.com/content/show.php?content=44998")); // homepage about.addAuthor(i18n("Martin Koller"), i18n("Developer"), QStringLiteral("kollix@aon.at")); about.setOrganizationDomain(QByteArray("kde.org")); about.setDesktopFileName(QStringLiteral("org.kde.kbackup")); KAboutData::setApplicationData(about); QCommandLineParser cmdLine; cmdLine.addVersionOption(); cmdLine.addHelpOption(); cmdLine.addPositionalArgument(QStringLiteral("profile"), i18n("Start with given profile."), QStringLiteral("[profile]")); cmdLine.addOption(QCommandLineOption(QStringLiteral("script"), i18n("Script to run after finishing one archive slice."), QStringLiteral("file"))); cmdLine.addOption(QCommandLineOption(QStringLiteral("auto"), i18n("Automatically run the backup with the given profile " "and terminate when done."), QStringLiteral("profile"))); cmdLine.addOption(QCommandLineOption(QStringLiteral("autobg"), i18n("Automatically run the backup with the given profile " "in the background (without showing a window) " "and terminate when done."), QStringLiteral("profile"))); cmdLine.addOption(QCommandLineOption(QStringLiteral("verbose"), i18n("In autobg mode be verbose and print every " "single filename during backup."))); cmdLine.addOption(QCommandLineOption(QStringLiteral("forceFull"), i18n("In auto/autobg mode force the backup to be a full backup " "instead of acting on the profile settings."))); about.setupCommandLine(&cmdLine); cmdLine.process(*app); about.processCommandLine(&cmdLine); bool interactive = !cmdLine.isSet(QStringLiteral("autobg")); if ( interactive ) { delete app.take(); // must make explicitly. Only reset() leads to error // kf5.kcoreaddons.kaboutdata: Could not initialize the equivalent properties of Q*Application: no instance (yet) existing. app.reset(new QApplication(argc, argv)); QApplication *qapp = qobject_cast(app.data()); qapp->setAttribute(Qt::AA_UseHighDpiPixmaps, true); qapp->setWindowIcon(QIcon::fromTheme(QStringLiteral("kbackup"))); KAboutData::setApplicationData(about); } QPointer mainWin; if ( interactive ) { mainWin = new MainWindow; mainWin->show(); } else new Archiver(nullptr); signal(SIGTERM, sigHandler); signal(SIGINT, sigHandler); QString file = cmdLine.value(QStringLiteral("script")); if ( file.length() ) Archiver::sliceScript = file; if ( interactive ) { QString profile; QStringList args = cmdLine.positionalArguments(); if ( !args.isEmpty() ) profile = args[0]; QString file = cmdLine.value(QStringLiteral("auto")); if ( file.length() ) profile = file; if ( profile.length() ) mainWin->loadProfile(profile, true); if ( cmdLine.isSet(QStringLiteral("forceFull")) ) Archiver::instance->setForceFullBackup(); if ( cmdLine.isSet(QStringLiteral("auto")) ) mainWin->runBackup(); int ret = app->exec(); delete mainWin; return ret; } else { QStringList includes, excludes; QString error, fileName = cmdLine.value(QStringLiteral("autobg")); Archiver::instance->setVerbose(cmdLine.isSet(QStringLiteral("verbose"))); if ( !Archiver::instance->loadProfile(fileName, includes, excludes, error) ) { std::cerr << i18n("Could not open profile '%1' for reading: %2", fileName, error).toUtf8().constData() << std::endl; return -1; } else { if ( cmdLine.isSet(QStringLiteral("forceFull")) ) Archiver::instance->setForceFullBackup(); if ( Archiver::instance->createArchive(includes, excludes) ) return 0; else return -1; } } return 0; } kbackup-19.12.3/src/org.kde.kbackup.appdata.xml000066400000000000000000000565101363501564300212160ustar00rootroot00000000000000 org.kde.kbackup.desktop FSFAP GPL-2.0+ KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup KBackup Kbackup KBackup xxKBackupxx KBackup KBackup KBackup is an application that lets you back up any folders or files in a tar archive to a local folder, e.g. a locally mounted device like a ZIP drive, USB stick, etc. or a remote URL El KBackup és una aplicació que permet fer còpies de seguretat de carpetes o fitxers a un arxiu TAR en una carpeta local, p. ex. un dispositiu muntat localment, com una unitat ZIP, una memòria USB, etc. o un URL remot El KBackup és una aplicació que permet fer còpies de seguretat de carpetes o fitxers a un arxiu TAR en una carpeta local, p. ex. un dispositiu muntat localment, com una unitat ZIP, una memòria USB, etc. o un URL remot KBackup ist ein Programm, um beliebige Ordner oder Dateien in ein Tar-Archiv in einen lokalen Ordner wie zum Beispiel ein ZIP-Laufwerk, ein USB-Stick oder auf einem Fremdrechner zu sichern. Το KBackup είναι μια εφαρμογή που σας επιτρέπει να δημιουργήσετε εφεδρικά αντίγραφα οποιουδήποτε φακέλου ή αρχείου σε πακέτο αρχειοθέτησης σε έναν τοπικό φάκελο, π.χ. μια τοπικά προσαρτημένη συσκευή όπως μια ZIP ή USB συσκευή, κλπ ή ένα απομακρυσμένο URL KBackup is an application that lets you back up any folders or files in a tar archive to a local folder, e.g. a locally mounted device like a ZIP drive, USB stick, etc. or a remote URL KBackup es una aplicación que le permite hacer copias de seguridad de cualquier carpeta o archivo en un archivo comprimido tar en una carpeta local, por ejemplo, en cualquier dispositivo montado localmente como una memoria USB, una unidad ZIP, etc; o un URL remoto KBackupek edozein karpetaren edo fitxategiren babes-kopia tar artxibo batean egiten uzten dizu, bertako karpeta batera, adib. bertan muntatutako gailu batera, esaterako ZIP unitate bat, USB makil bat, etab. edo urruneko URL batera. KBackup on sovellus, jolla voit varmuuskopioida kansiot tai tiedostot Tar-arkistoon, paikalliseen kansioon – esim. paikallisesti liitetylle tietovälineelle kuten USB-muistitikulle – tai etäosoitteeseen KBackup est une application qui vous permet de sauvegarder des dossiers ou des fichiers au sein d'une archive tar dans un dossier local, par exemple un périphérique comme une clé USB, un lecteur ZIP ou une URL distante KBackup é unha aplicación que lle permite facer unha copia de seguranza de calquera cartafol ou ficheiro nun arquivo tar e gardala nun cartafol local, como por exemplo un dispositivo ZIP ou unha memoria USB, ou nun URL remoto KBackup adalah aplikasi yang memungkinkan kamu mencadangkan folder atau file apa pun di arsip tar ke folder lokal, misal perangkat yang dikaitkan secara lokal seperti drive ZIP, stik USB, dll. atau URL jarak jauh KBackup è un'applicazione per creare copie di sicurezza di cartelle e file in un archivio tar salvato in una cartella locale, ad es. un dispositivo montato localmente come un disco ZIP, una memoria USB, ecc, o in un URL remoto KBackup은 파일이나 폴더를 로컬에 연결된 USB 메모리나 원격 URL에 있는 TAR 묶음 파일로 백업할 수 있도록 해 줍니다. KBackup is een toepassing die u een reservekopie laat maken van elke map of elk bestand in een tar-archief naar een lokale map, bijv. een lokaal aangekoppeld apparaat zoals een ZIP-apparaat, USB-stick, etc. of een URL op afstand KBackup lèt deg ta reservekopiar av filer eller mapper og lagra dei som eit TAR-arkiv, for eksempel på montert eining som ein ZIP-stasjon, ein minnepinne eller ei nettverksmappe. KBackup jest aplikacją, która umożliwia łatwe utworzenie kopii zapasowych dowolnego katalogu lub plików a archiwum tar do lokalnego katalogu, np. lokalnie podpiętego urządzenia, takiego jak napęd ZIP, pendrive, itp. lub zdalnego adresu URL O KBackup é uma aplicação que lhe permite salvaguardar quaisquer pastas ou ficheiros num pacote TAR para uma pasta local, p.ex. um dispositivo montado localmente como um disco ZIP, disco USB, etc. ou um URL remoto KBackup é um aplicativo que permite fazer cópias de segurança de quaisquer pastas ou arquivos em um arquivo TAR em uma pasta local, por exemplo, um dispositivo montado localmente como um disco ZIP, dispositivo USB, etc. ou uma URL remota KBackup je aplikácia, ktorá vám umožnuje zálohovať akékoľvek priečinky a súbory do tar archívu do lokálneho priečinku, e. g. na pripojené zariadenie ako USB alebo na vzdialenú URL adresu Kbackup är ett program som låter dig säkerhetskopiera vilka kataloger eller filer till ett tar-arkiv i en lokal katalog, t.ex. en lokalt monterad enhet som en ZIP-enhet, USB-sticka, etc. eller till en fjärrwebbadress. KBackup — програма, за допомогою якої ви можете створювати резервні копії будь-яких тек або файлів у форматі архіву tar до локальної теки, тобто локально змонтованого пристрою, наприклад диска ZIP, флеш-накопичувача USB тощо, або за віддаленою адресою xxKBackup is an application that lets you back up any folders or files in a tar archive to a local folder, e.g. a locally mounted device like a ZIP drive, USB stick, etc. or a remote URLxx KBackup 是一个让您可以将任意文件夹和文件备份到 tar 档案中的应用程序。tar档案可以位于本地文件夹,例如各种挂载在本地的设备,比如 ZIP 驱动器,USB 存储器等,也可以位于远程 URL。 KBackup 是個能讓您能備份任何檔案或資料夾到本機資料夾的 tar 封存檔中。例:掛載於本機的裝置,例如 ZIP 硬碟、USB 隨身碟、或遠端 URL 連結等等

KBackup is an application which lets you back up your data in a simple, user friendly way

El KBackup és una aplicació que permet fer còpies de seguretat de les dades d'una manera senzilla i fàcil d'emprar

El KBackup és una aplicació que permet fer còpies de seguretat de les dades d'una manera senzilla i amigable

KBackup ist ein Programm welches Datensicherung in einer benutzerfreundlichen Weise ermöglicht

Το KBackup είναι μια εφαρμογή που σας επιτρέπει να δημιουργήσετε εφεδρικά αντίγραφα με έναν απλό και φιλικό στη χρήση τρόπο

KBackup is an application which lets you back up your data in a simple, user friendly way

KBackup es una aplicación que le permite hacer copias de seguridad de sus datos de una manera sencilla y fácil de usar

KBackup zure datuen babes-kopia era erraz eta atsegin batean egiten uzten dizun aplikazio bat da.

KBackup on sovellus, jolla voit varmuuskopioida tietosi yksinkertaisesti ja helposti

KBackup est une application qui vous permet de sauvegarder vos données de manière simple et intuitive

KBackup é unha aplicación que lle permite facer unha copia de seguranza dos seus datos dunha maneira sinxela e fácil.

KBackup adalah aplikasi yang memungkinkan kamu mencadangkan data dengan cara yang sederhana dan ramah pengguna

KBackup è un'applicazione che permette di salvare i tuoi dai in modo semplice e intuitivo

KBackup은 쉽고 간편하게 데이터를 백업할 수 있는 프로그램입니다

KBackup is een toepassing die u een reservekopie laat maken van uw gegevens op een eenvoudige, gebruikersvriendelijke manier

KBackup lèt deg ta reservekopiar av dataa dine på ein enkel og brukarvenleg måte.

KBackup jest aplikacją, która umożliwia łatwe utworzenie kopii zapasowych w prosty i przyjazny sposób

O KBackup é uma aplicação que lhe permite salvaguardar os seus dados de forma simples e amigável

O KBackup é um aplicativo que lhe permite fazer cópias de segurança dos seus dados de forma simples e amigável

KBackup je aplikácia, ktorá vám umožnuje zálohovať údaje jednoduchým, používateľsky priateľským spôsobom

Kbackup är ett program som låter dig säkerhetskopiera data på ett enkelt, användarvänligt sätt

KBackup — програма, за допомогою якої ви зможете створювати резервні копії своїх даних у простий і зручний спосіб

xxKBackup is an application which lets you back up your data in a simple, user friendly wayxx

KBackup 让您可以以一种简单并且用户友好的方法备份您的数据

KBackup 是個能讓您用簡單且使用者友善的方式備份您的資料

Features:

Característiques:

Característiques:

Vlastnosti:

Funktionen:

Χαρακτηριστικά:

Features:

Características:

Eginbideak:

Ominaisuuksia:

Fonctionnalités :

Funcionalidades:

Characteristicas:

Fitur:

Caratteristiche:

기능:

Mogelijkheden:

Funksjonar:

Możliwości:

Funcionalidades:

Funcionalidades:

Возможности:

Funkcie:

Funktioner:

Можливості:

xxFeatures:xx

功能:

功能:

  • Using profile files with definitions for Folders and files to be included or excluded from the backup
  • Usa fitxers de perfils amb definicions per a les carpetes i fitxers a incloure o excloure de la còpia de seguretat
  • Usa fitxers de perfils amb definicions per a les carpetes i fitxers a incloure o excloure de la còpia de seguretat
  • Verwendet Profildateien mit Definition der Dateien und Ordner, die in der Sicherung ein- oder ausgeschlossen werden
  • Χρήση αρχείων προφίλ με ορισμούς για φακέλους και αρχεία που θα αποκλείονται από το εφεδρικό αντίγραφο
  • Using profile files with definitions for Folders and files to be included or excluded from the backup
  • Use perfiles con definiciones para las carpetas y archivos a ser incluidos o excluidos de la copia de seguridad
  • Profil fitxategiak erabiltzen ditu karpetak eta fitxategiak barneratu edo kanporatzeko definizioekin
  • Profiilein voi määrittää varmuuskopioon otettavat tai siitä pois jätettävät kansiot ja tiedostot
  • Utilisation de fichiers de profils contenant les définitions des fichiers et dossiers à inclure ou à exclure de la sauvegarde
  • Uso de ficheiros de perfil que definen cartafoles e ficheiros que incluír ou excluír da copia de seguranza.
  • Menggunakan file profil dengan definisi untuk folder dan file yang akan dimasukkan atau dikecualikan dari cadangan
  • Utilizzo di file di profilo con le definizioni di cartelle e file da includere o escludere nella copia di sicurezza
  • 백업에 포함하거나 제외할 폴더나 파일을 정의하는 프로필
  • Met profielbestanden met definities voor mee te nemen mappen en bestanden of uitgesloten van de reservekopie
  • Profilar som definerer kva mapper og filer som skal takast med eller utelatast frå reservekopieringa
  • Używanie plików profili z podanymi katalogami i plikami do wykonania lub wykluczenia z kopii zapasowej
  • Uso de ficheiros de perfis com definições das pastas e ficheiros a incluir ou excluir na cópia de segurança
  • Uso de arquivos de perfis com definições das pastas e arquivos a serem incluídos ou excluídos na cópia de segurança
  • Používanie súborov s definíciami pre priečinky a súbory, ktoré sa majú zahrnúť alebo vynechať do zálohy
  • Använder profilfiler med definitioner av kataloger och filer som ska inkluderas i eller exkluderas från säkerhetskopieringen
  • Використання файлів профілів із визначеннями тек і файлів, які буде включено і виключено із переліку резервного копіювання
  • xxUsing profile files with definitions for Folders and files to be included or excluded from the backupxx
  • 使用配置文件来定义需要被包含在或者排除在备份之外的文件夹及文件
  • 使用包含定義的設定檔,設定哪些檔案和資料夾要從備份中包含或排除
  • The backup target can be either a locally mounted device like a ZIP drive, USB stick, etc. or any remote URL
  • La destinació de la còpia de seguretat pot ser un dispositiu muntat localment, com una unitat ZIP, una memòria USB, etc. o qualsevol URL remot
  • La destinació de la còpia de seguretat pot ser un dispositiu muntat localment, com una unitat ZIP, una memòria USB, etc. o qualsevol URL remot
  • Die Sicherung kann auf ein lokal eingehängtes Gerät wie ein ZIP-Laufwerk, einen USB-Stick oder auf eine Adresse (URL) auf einem Fremdrechner gespeichert werden.
  • Ο προορισμός του εφεδρικού αντιγράφου μπορεί να είναι μια τοπικά προσαρτημένη συσκευή όπως μια ZIP ή USB συσκευή, κλπ. ή ένα απομακρυσμένο URL
  • The backup target can be either a locally mounted device like a ZIP drive, USB stick, etc. or any remote URL
  • El objetivo de la copia de seguridad puede ser un dispositivo montado localmente como una memoria USB, una unidad ZIP, etc; o cualquier URL remota
  • Babes-kopiaren jomuga bertan muntatutako gailu bat izan daiteke, ZIP unitate bat, USB makil bat, etab. edo urruneko edozein URL
  • Varmuuskopiokansio voi olla paikallisesti liitetty tietoväline (kuten USB-muistitikku) tai mikä tahansa etäosoite
  • La destination de l'archive peut être n'importe quel dossier monté en local : lecteur ZIP, clé USB ou URL distante
  • O destino da copia de seguranza pode ser ou un dispositivo montado de maneira local, como un dispositivo ZIP ou unha memoria USB, ou un URL remoto.
  • Target cadangan dapat berupa perangkat yang dikaitkan secara lokal seperti drive ZIP, stik USB, dll. atau URL jarak jauh apa pun
  • La posizione di destinazione della copia può essere un dispositivo montato localmente come un disco ZIP, una memoria USB, ecc, o un qualsiasi URL remoto
  • ZIP 드라이브, USB 메모리 등 로컬에 연결된 장치나 임의의 원격 URL로 백업
  • De doel van de reservekopie kan naar een lokaal aangekoppeld apparaat, zoals een ZIP-apparaat, USB-stick, etc. of een URL op afstand
  • Lagring av reservekopiar til ei montert eining, for eksempel ein minnepinne eller ei nettverksmappe
  • Miejscem docelowym kopii zapasowej może być np. lokalnie podpięte urządzenie, takie jak napęd ZIP, pendrive, itp. lub zdalny adres URL
  • O destino da cópia de segurança poderá ser um dispositivo montado localmente, como um disco ZIP, disco USB, etc. ou qualquer URL remoto
  • O destino da cópia de segurança poderá ser um dispositivo montado localmente, como um disco ZIP, dispositivo USB, etc. ou qualquer URL remota
  • Zálohovací cieľ môže byť buď lokálne pripojené zariadenie ako napr. USB kľúč alebo vzdialená adresa URL
  • Målet för säkerhetskopieringen kan antingen vara en lokalt monterad enhet som en ZIP-enhet, USB-sticka, etc. eller en fjärrwebbadress
  • Резервні копії можуть зберігатися на локально змонтованому пристрої, зокрема диску ZIP, флеш-накопичувачі USB тощо, або за будь-якою віддаленою адресою
  • xxThe backup target can be either a locally mounted device like a ZIP drive, USB stick, etc. or any remote URLxx
  • 备份目标可以是挂载在本地的设备,例如 ZIP 驱动器或者 USB 存储器等,也可以是任何远程 URL
  • 備份目標位置可以是任一掛載於本機的位置,例如 ZIP 硬碟、USB 隨身碟或任意遠端 URL 等等
  • Running automated backups without using a graphical user interface
  • Executa còpies de seguretat automatitzades sense usar cap interfície gràfica d'usuari
  • Executa còpies de seguretat automatitzades sense usar cap interfície gràfica d'usuari
  • Ausführung automatischer ohne eine grafische Benutzeroberfläche
  • Εκτέλεση αυτοματοποιημένων εργασιών δημιουργίας εφεδρικών αντιγράφων χωρίς τη χρήση γραφικού περιβάλλοντος
  • Running automated backups without using a graphical user interface
  • Ejecución automática de copias de seguridad sin usar una interfaz gráfica de usuario
  • Babes-kopia automatikoak exekutatzea erabiltzaile-interfaze grafiko bat erabili gabe
  • Automaattiset varmuuskopiot ajetaan ilman graafista käyttöliittymää
  • Lancement de sauvegardes automatisées sans passer par l'interface graphique utilisateur
  • Execución de copias de seguranza automatizadas sen usar unha interface gráfica de usuario.
  • Cadangan yang diotomatiskan berjalan tanpa menggunakan antarmuka pengguna grafis
  • Esecuzione automatica del backup senza l'utilizzo dell'interfaccia grafica
  • 그래픽 사용자 인터페이스 없이 자동으로 백업 실행
  • Geautomatiseerde reservekopieën zonder een grafisch gebruikersinterface
  • Automatiserte reservekopiar utan bruk av grafisk brukargrensesnitt
  • Wykonywanie zautomatyzowanych kopii zapasowych bez używania graficznego interfejsu użytkownika
  • Execução de cópias de segurança automatizadas sem usar uma interface gráfica
  • Execução de cópias de segurança automatizadas sem usar uma interface gráfica
  • Spúšťanie automatizovaných záloh bez použitia grafického používateľského prostredia
  • Kör automatiserade säkerhetskopieringar utan att använda ett grafiskt användargränssnitt
  • Виконання автоматизованого створення резервних копій без використання графічного інтерфейсу користувача
  • xxRunning automated backups without using a graphical user interfacexx
  • 运行不带图形用户界面的自动备份
  • 執行自動備份而不使用圖形使用者介面
org.kde.kbackup.desktop https://bugs.kde.org/enter_bug.cgi?format=guided&product=kbackup https://docs.kde.org/?application=kbackup https://cdn.kde.org/screenshots/kbackup/mainwindow.png KDE kbackup
kbackup-19.12.3/src/org.kde.kbackup.desktop000066400000000000000000000130051363501564300204460ustar00rootroot00000000000000[Desktop Entry] Type=Application Exec=kbackup %f Icon=kbackup X-DocPath=kbackup/index.html MimeType=text/x-kbp; Terminal=false Categories=Qt;KDE;Utility;Archiving; Keywords=backup;archiving; Keywords[ca]=còpia de seguretat;arxivament; Keywords[cs]=zálohování;archivování; Keywords[de]=backup;archiving;sicherung;archivierung; Keywords[el]=backup;archiving; Keywords[en_GB]=backup;archiving; Keywords[es]=copia de seguridad;copia de respaldo;archivado; Keywords[eu]=backup;babes-kopia;artxibatzea; Keywords[fi]=varmistus;varmuuskopiointi;arkistointi; Keywords[fr]=sauvegarde;archivage; Keywords[gl]=copia de seguranza;copia de seguridade;arquivar; Keywords[ia]=backup;archivante; Keywords[it]=backup;archiviazione; Keywords[ko]=backup;archiving;백업;보존;보관;아카이브; Keywords[nl]=reservekopie;backup;archivering; Keywords[nn]=backup;reservekopi;tryggleikskopi;arkivering; Keywords[pl]=kopia zapasowa;archiwizowanie; Keywords[pt]=cópia de segurança;arquivo; Keywords[pt_BR]=backup;arquivamento;cópia de segurança; Keywords[ru]=backup;archiving;резервная копия;архивирование;резервирование Keywords[sk]=záloha;archivácia; Keywords[sv]=säkerhetskopiering;arkivering; Keywords[uk]=backup;archiving;резерв;копіювання;резервне;архівування; Keywords[x-test]=xxbackupxx;xxarchivingxx; Keywords[zh_CN]=backup;archiving;备份;归档;存档;保存; Keywords[zh_TW]=backup;archiving;備份;封存; Name=KBackup Name[ca]=KBackup Name[ca@valencia]=KBackup Name[cs]=KBackup Name[da]=KBackup Name[de]=KBackup Name[el]=KBackup Name[en_GB]=KBackup Name[es]=KBackup Name[eu]=KBackup Name[fi]=KBackup Name[fr]=KBackup Name[gl]=KBackup Name[ia]=KBackup Name[it]=KBackup Name[ko]=KBackup Name[nl]=KBackup Name[nn]=KBackup Name[pl]=KBackup Name[pt]=KBackup Name[pt_BR]=KBackup Name[ru]=KBackup Name[sk]=KBackup Name[sv]=Kbackup Name[uk]=KBackup Name[x-test]=xxKBackupxx Name[zh_CN]=KBackup Name[zh_TW]=KBackup GenericName=Backup Program GenericName[ca]=Programa per a les còpies de seguretat GenericName[ca@valencia]=Programa per a les còpies de seguretat GenericName[cs]=Program pro zálohování GenericName[da]=Backup-program GenericName[de]=Sicherungs-Programm GenericName[el]=Πρόγραμμα δημιουργίας εφεδρικών αντιγράφων GenericName[en_GB]=Backup Program GenericName[es]=Aplicación de copias de seguridad GenericName[eu]=Babes-kopia programa GenericName[fi]=Varmuuskopiointiohjelma GenericName[fr]=Programme de sauvegarde GenericName[gl]=Programa de copias de seguranza GenericName[ia]=Programma per retrocopiar GenericName[it]=Programma per il backup GenericName[ko]=백업 프로그램 GenericName[nl]=Programma voor maken van reservekopie GenericName[nn]=Program for reservekopiering GenericName[pl]=Program kopii zapasowych GenericName[pt]=Programa de Cópias de Segurança GenericName[pt_BR]=Programa de backup GenericName[ru]=Резервное копирование GenericName[sk]=Zálohovací program GenericName[sv]=Säkerhetskopieringsprogram GenericName[uk]=Програма для створення резервних копій GenericName[x-test]=xxBackup Programxx GenericName[zh_CN]=备份程序 GenericName[zh_TW]=備份程式 Comment=Backup your data with an easy to use user interface Comment[ca]=Còpia de seguretat de les dades amb una interfície d'usuari fàcil d'usar Comment[ca@valencia]=Còpia de seguretat de les dades amb una interfície d'usuari fàcil d'usar Comment[da]=Tag backup af dine data med en brugergrænseflade der er nem at bruge Comment[de]=Sicherung Ihrer Daten mit einer einfach zu bedienenden grafischen Benutzeroberfläche Comment[el]=Δημιουργήστε εφεδρικά αντίγραφα των δεδομένων σας με ένα ευκολόχρηστο περιβάλλον χρήσης Comment[en_GB]=Backup your data with an easy to use user interface Comment[es]=Haga copias de seguridad de sus datos con una interfaz de usuario fácil de usar Comment[eu]=Egin zure datuen babes-kopia erabiltzaile-interfaze erraz batekin Comment[fi]=Varmista tietosi helppokäyttöisellä käyttöliittymällä Comment[fr]=Sauvegardez vos données à l'aide d'une interface graphique simple d'utilisation Comment[gl]=Faga unha copia de seguranza dos seus datos cunha interface de usuario fácil de usar. Comment[ia]=Face retrocopia de tu datos con un interfacie de usator semplice Comment[it]=Crea una copia di sicurezza dei dati con un'interfaccia utente semplice da usare Comment[ko]=내 데이터 백업하기 Comment[nl]=Maak een reservekopie van uw gegevens met een gemakkelijk te gebruiken gebruikersinterface Comment[nn]=Ta reservekopi av dataa dine på ein enkel måte Comment[pl]=Utwórz kopię zapasową swoich danych w łatwym do użycia interfejsie Comment[pt]=Salvaguarde os seus dados com uma interface de utilizador simples Comment[pt_BR]=Faça cópias de segurança com uma interface gráfica fácil de usar Comment[ru]=Приложение для резервного копирования с простым интерфейсом Comment[sk]=Zálohujte vaše údaje s jednoduchým používateľským prostredím Comment[sv]=Säkerhetskopiera data med ett lättanvänt användargränssnitt Comment[uk]=Створюйте резервні копію ваших даних за допомогою простого у користуванні інтерфейсу Comment[x-test]=xxBackup your data with an easy to use user interfacexx Comment[zh_CN]=使用易用的用户界面备份数据 Comment[zh_TW]=用易用的使用者介面備份資料 kbackup-19.12.3/src/pics/000077500000000000000000000000001363501564300150425ustar00rootroot00000000000000kbackup-19.12.3/src/pics/22-actions-kbackup_cancel.png000066400000000000000000000015631363501564300223610ustar00rootroot00000000000000PNG  IHDRĴl;gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATxb?-@1҅A3/3(\c@7 " 5?ay T Ph_?0m823" P N_W@4PYA qySQOC  3\_?~}gra T|Ca8  `b4###(LAd(p_?>l@ aπз1?Ёf. SA.QNj(@PX A   ;Wfk(`0@a r&` þ4f0@a5* ǰ_[KWB^290W:FȆ2|o3@1Ja 66EEpR<Ǝ=ď_30|33(?Ɗi8@1.Ca>ȥ C1/"`B"  \*h7נd1܆AleFP)EL⇆~e&#nhb8(S@?G_c /AYqo|Dv,ޟ]lef08%] d?-@fJS`K)  ԥ3 0&Py DWM@`.EyH 4IENDB`kbackup-19.12.3/src/pics/22-actions-kbackup_runs.png000066400000000000000000000014211363501564300221140ustar00rootroot00000000000000PNG  IHDRĴl; pHYsodtEXtComment̖IDAT8ՕOSQii Q`bD1Dc :88 L\tr) FHh ~{ꀩ[Ors'Ͻف 莂6N\9CVh0'q:^w {6f{D}}}Tx^ 8e3ijjjƈ4Fh5n]@NͿb nP2c ֛%>hWt]<+b.Y#D"ϓJ~C[ ^<+hעt>^JR %\p+xi;HGQ&I3*cC29A(XM-8p0K8D|ceV!&]mK(bBǫ MPH윍BS0r1\,/.5=XZfU }T)(T1JffQ'6O)r8 I46<ݱ!_87%kfDI%,dN"r(YǓn}2,lasmӴmcemF0똖 ƿ344k:RJ(eU !j DҐ l.2QL''pޝ)3|>%"5++߶Vc~_^_{ottT> ~sοeb0عLX%(s,#X ~,*5{ЧaOa4e)ea0epX|K +f0Xe寖?9} )'RxJ8ED=\ enwfJ <Զ/S;[li⼫ҷ6?p ;7XO{,=A$D +ZI2z)- n(P՚mqa nw6]Cb2+̍ .e-nʭɈܳ-X1}fB}|[[ݙmw<pP^ʼnzU'?F8.ggQ<=W'kk˚D"DELflBp=Տh4y䛛?*6En'itfb3|Fqa6d 5ztZPT\nڥ3Ȇ<|Kq#+ZqNaHc< 4(*X(QBS8tXJdC3NV;;'>۶lGٟ:L($ <ܕIENDB`kbackup-19.12.3/src/pics/CMakeLists.txt000066400000000000000000000002631363501564300176030ustar00rootroot00000000000000 ecm_install_icons(ICONS 22-actions-kbackup_cancel.png 22-actions-kbackup_start.png 22-actions-kbackup_runs.png DESTINATION ${ICON_INSTALL_DIR} THEME hicolor) kbackup-19.12.3/src/rotateScript.sh000077500000000000000000000007051363501564300171300ustar00rootroot00000000000000#!/bin/sh # kbackup script to do a rotating backup (keep only a defined number of backups) NUM_BACKUPS=20 mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) ;; "slice_closed" ) ;; "slice_finished" ) count=`ls -A1 $target | wc -l` if [ $count -ge $NUM_BACKUPS ] then removeCount=`expr $count - $NUM_BACKUPS` oldest=`ls -A1 ${target}/* | sort | head -n $removeCount` rm -f ${oldest} fi ;; esac kbackup-19.12.3/src/sliceScript.sh000077500000000000000000000005321363501564300167270ustar00rootroot00000000000000#!/bin/sh mode=$1 archive=$2 target=$3 mountPoint=$4 case "$mode" in "slice_init" ) if [ "$mountPoint" != "" ] then mount /media/zip rm -f /media/zip/backup_2*.tar* fi ;; "slice_closed" ) ;; "slice_finished" ) if [ "$mountPoint" != "" ] then umount /media/zip eject /media/zip fi ;; esac