From 6394794a2d79cc0e18e37303d751f9e46042719b Mon Sep 17 00:00:00 2001 From: Daniel Wilhelm Date: Mon, 15 Apr 2019 02:13:48 +0200 Subject: remove files deleted in upstream --- FreeFileSync/Build/Help/FreeFileSync.hhc | 99 - FreeFileSync/Build/Help/FreeFileSync.hhp | 33 - FreeFileSync/Build/Help/html/base.css | 94 - FreeFileSync/Build/Help/html/command-line.html | 118 -- .../Build/Help/html/comparison-settings.html | 126 -- .../Build/Help/html/daylight-saving-time.html | 66 - FreeFileSync/Build/Help/html/exclude-items.html | 104 - FreeFileSync/Build/Help/html/expert-settings.html | 94 - .../Build/Help/html/external-applications.html | 87 - FreeFileSync/Build/Help/html/freefilesync.html | 53 - FreeFileSync/Build/Help/html/ftp-setup.html | 79 - FreeFileSync/Build/Help/html/macros.html | 238 --- FreeFileSync/Build/Help/html/performance.html | 73 - FreeFileSync/Build/Help/html/realtimesync.html | 122 -- FreeFileSync/Build/Help/html/run-as-service.html | 50 - .../Build/Help/html/schedule-batch-jobs.html | 120 -- .../Build/Help/html/synchronization-settings.html | 39 - FreeFileSync/Build/Help/html/tips-and-tricks.html | 113 -- .../Build/Help/html/variable-drive-letters.html | 48 - FreeFileSync/Build/Help/html/versioning.html | 83 - .../Build/Help/html/volume-shadow-copy.html | 55 - FreeFileSync/Build/Help/images/add-folder-pair.png | Bin 5822 -> 0 bytes .../Build/Help/images/automator-file-dropped.png | Bin 33088 -> 0 bytes .../Help/images/basic-step-choose-folders.png | Bin 2725 -> 0 bytes .../Build/Help/images/basic-step-compare.png | Bin 2711 -> 0 bytes .../Build/Help/images/basic-step-start-sync.png | Bin 2678 -> 0 bytes .../Build/Help/images/basic-step-sync-config.png | Bin 1936 -> 0 bytes .../Build/Help/images/calendar-job-added.png | Bin 50602 -> 0 bytes .../Build/Help/images/com-settings-context.png | Bin 7996 -> 0 bytes .../Build/Help/images/command-line-syntax.png | Bin 8021 -> 0 bytes .../Build/Help/images/comparison-settings.png | Bin 27085 -> 0 bytes .../images/comparison-variant-double-click.png | Bin 3916 -> 0 bytes .../Build/Help/images/config-double-click.png | Bin 9812 -> 0 bytes .../Help/images/config-multiple-selection.png | Bin 9804 -> 0 bytes .../Build/Help/images/copy-alternative-path.png | Bin 2637 -> 0 bytes .../Build/Help/images/dialog-drag-move.png | Bin 10324 -> 0 bytes .../Build/Help/images/direct-synchronize.png | Bin 4705 -> 0 bytes .../Build/Help/images/explorer-context.png | Bin 3946 -> 0 bytes FreeFileSync/Build/Help/images/filter-context.png | Bin 2893 -> 0 bytes .../Build/Help/images/filter-zero-file-size.png | Bin 963 -> 0 bytes FreeFileSync/Build/Help/images/filter.png | Bin 19163 -> 0 bytes .../Build/Help/images/freefilesync-logo.png | Bin 7488 -> 0 bytes FreeFileSync/Build/Help/images/gnome-scheduler.png | Bin 44019 -> 0 bytes .../Build/Help/images/ignore-time-shift.png | Bin 11862 -> 0 bytes .../Build/Help/images/launch-automator.png | Bin 35257 -> 0 bytes FreeFileSync/Build/Help/images/main-window.png | Bin 45163 -> 0 bytes .../Build/Help/images/new-calendar-alarm.png | Bin 64123 -> 0 bytes .../Build/Help/images/open-finder-items.png | Bin 88104 -> 0 bytes .../Build/Help/images/path-by-volume-name.png | Bin 2768 -> 0 bytes FreeFileSync/Build/Help/images/performance.png | Bin 5380 -> 0 bytes .../Help/images/realtimesync-create-shortcut.png | Bin 6240 -> 0 bytes .../Build/Help/images/realtimesync-logo.png | Bin 5396 -> 0 bytes .../Build/Help/images/realtimesync-main-window.png | Bin 12197 -> 0 bytes .../Build/Help/images/realtimesync-monitor-usb.png | Bin 11337 -> 0 bytes .../Build/Help/images/realtimesync-schedule.png | Bin 8443 -> 0 bytes .../images/realtimesync-shortcut-properties.png | Bin 10587 -> 0 bytes .../Build/Help/images/remove-drop-down-path.png | Bin 6619 -> 0 bytes .../Build/Help/images/remove-local-settings.png | Bin 5800 -> 0 bytes FreeFileSync/Build/Help/images/save-automator.png | Bin 9381 -> 0 bytes .../Build/Help/images/select-time-span.png | Bin 13735 -> 0 bytes FreeFileSync/Build/Help/images/setup-batch-job.png | Bin 14211 -> 0 bytes .../Build/Help/images/sftp-cloud-picker.png | Bin 495 -> 0 bytes FreeFileSync/Build/Help/images/sftp-login.png | Bin 7534 -> 0 bytes .../Build/Help/images/sftp-performance.png | Bin 4532 -> 0 bytes FreeFileSync/Build/Help/images/show-thumbnails.png | Bin 27962 -> 0 bytes .../Build/Help/images/sync-settings-context.png | Bin 4037 -> 0 bytes .../Build/Help/images/synchronization-settings.png | Bin 33975 -> 0 bytes .../synchronization-variant-double-click.png | Bin 4072 -> 0 bytes FreeFileSync/Build/Help/images/two-folder-drop.png | Bin 8044 -> 0 bytes FreeFileSync/Build/Help/images/versioning.png | Bin 10599 -> 0 bytes .../Build/Help/images/view-filter-default.png | Bin 3708 -> 0 bytes .../Build/Help/images/windows-scheduler.png | Bin 8897 -> 0 bytes FreeFileSync/Build/Help/images/xp-scheduler.png | Bin 17907 -> 0 bytes FreeFileSync/Build/Languages/slovak.lng | 2086 ------------------- FreeFileSync/Build/Languages/turkish.lng | 2091 ------------------- FreeFileSync/Build/Languages/ukrainian.lng | 2107 -------------------- FreeFileSync/Build/ding.wav | Bin 134636 -> 0 bytes FreeFileSync/Build/gong.wav | Bin 460504 -> 0 bytes FreeFileSync/Build/harp.wav | Bin 364076 -> 0 bytes FreeFileSync/Build/styles.gtk_rc | 7 - FreeFileSync/Source/base/error_log.h | 45 - FreeFileSync/Source/base/hard_filter.cpp | 366 ---- FreeFileSync/Source/base/hard_filter.h | 241 --- FreeFileSync/Source/fs/concrete_impl.h | 213 -- FreeFileSync/Source/ui/search.cpp | 115 -- FreeFileSync/Source/ui/search.h | 19 - FreeFileSync/Source/ui/version_check_impl.h | 59 - wx+/zlib_wrap.cpp | 53 - wx+/zlib_wrap.h | 114 -- zen/xml_io.cpp | 83 - zen/xml_io.h | 26 - zenXml/zenxml/bind.h | 390 ---- zenXml/zenxml/error.h | 19 - zenXml/zenxml/io.h | 98 - 94 files changed, 10026 deletions(-) delete mode 100755 FreeFileSync/Build/Help/FreeFileSync.hhc delete mode 100755 FreeFileSync/Build/Help/FreeFileSync.hhp delete mode 100755 FreeFileSync/Build/Help/html/base.css delete mode 100755 FreeFileSync/Build/Help/html/command-line.html delete mode 100755 FreeFileSync/Build/Help/html/comparison-settings.html delete mode 100755 FreeFileSync/Build/Help/html/daylight-saving-time.html delete mode 100755 FreeFileSync/Build/Help/html/exclude-items.html delete mode 100755 FreeFileSync/Build/Help/html/expert-settings.html delete mode 100755 FreeFileSync/Build/Help/html/external-applications.html delete mode 100755 FreeFileSync/Build/Help/html/freefilesync.html delete mode 100755 FreeFileSync/Build/Help/html/ftp-setup.html delete mode 100755 FreeFileSync/Build/Help/html/macros.html delete mode 100755 FreeFileSync/Build/Help/html/performance.html delete mode 100755 FreeFileSync/Build/Help/html/realtimesync.html delete mode 100755 FreeFileSync/Build/Help/html/run-as-service.html delete mode 100755 FreeFileSync/Build/Help/html/schedule-batch-jobs.html delete mode 100755 FreeFileSync/Build/Help/html/synchronization-settings.html delete mode 100755 FreeFileSync/Build/Help/html/tips-and-tricks.html delete mode 100755 FreeFileSync/Build/Help/html/variable-drive-letters.html delete mode 100755 FreeFileSync/Build/Help/html/versioning.html delete mode 100755 FreeFileSync/Build/Help/html/volume-shadow-copy.html delete mode 100755 FreeFileSync/Build/Help/images/add-folder-pair.png delete mode 100755 FreeFileSync/Build/Help/images/automator-file-dropped.png delete mode 100755 FreeFileSync/Build/Help/images/basic-step-choose-folders.png delete mode 100755 FreeFileSync/Build/Help/images/basic-step-compare.png delete mode 100755 FreeFileSync/Build/Help/images/basic-step-start-sync.png delete mode 100755 FreeFileSync/Build/Help/images/basic-step-sync-config.png delete mode 100755 FreeFileSync/Build/Help/images/calendar-job-added.png delete mode 100755 FreeFileSync/Build/Help/images/com-settings-context.png delete mode 100755 FreeFileSync/Build/Help/images/command-line-syntax.png delete mode 100755 FreeFileSync/Build/Help/images/comparison-settings.png delete mode 100755 FreeFileSync/Build/Help/images/comparison-variant-double-click.png delete mode 100755 FreeFileSync/Build/Help/images/config-double-click.png delete mode 100755 FreeFileSync/Build/Help/images/config-multiple-selection.png delete mode 100755 FreeFileSync/Build/Help/images/copy-alternative-path.png delete mode 100755 FreeFileSync/Build/Help/images/dialog-drag-move.png delete mode 100755 FreeFileSync/Build/Help/images/direct-synchronize.png delete mode 100755 FreeFileSync/Build/Help/images/explorer-context.png delete mode 100755 FreeFileSync/Build/Help/images/filter-context.png delete mode 100755 FreeFileSync/Build/Help/images/filter-zero-file-size.png delete mode 100755 FreeFileSync/Build/Help/images/filter.png delete mode 100755 FreeFileSync/Build/Help/images/freefilesync-logo.png delete mode 100755 FreeFileSync/Build/Help/images/gnome-scheduler.png delete mode 100755 FreeFileSync/Build/Help/images/ignore-time-shift.png delete mode 100755 FreeFileSync/Build/Help/images/launch-automator.png delete mode 100755 FreeFileSync/Build/Help/images/main-window.png delete mode 100755 FreeFileSync/Build/Help/images/new-calendar-alarm.png delete mode 100755 FreeFileSync/Build/Help/images/open-finder-items.png delete mode 100755 FreeFileSync/Build/Help/images/path-by-volume-name.png delete mode 100755 FreeFileSync/Build/Help/images/performance.png delete mode 100755 FreeFileSync/Build/Help/images/realtimesync-create-shortcut.png delete mode 100755 FreeFileSync/Build/Help/images/realtimesync-logo.png delete mode 100755 FreeFileSync/Build/Help/images/realtimesync-main-window.png delete mode 100755 FreeFileSync/Build/Help/images/realtimesync-monitor-usb.png delete mode 100755 FreeFileSync/Build/Help/images/realtimesync-schedule.png delete mode 100755 FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.png delete mode 100755 FreeFileSync/Build/Help/images/remove-drop-down-path.png delete mode 100755 FreeFileSync/Build/Help/images/remove-local-settings.png delete mode 100755 FreeFileSync/Build/Help/images/save-automator.png delete mode 100755 FreeFileSync/Build/Help/images/select-time-span.png delete mode 100755 FreeFileSync/Build/Help/images/setup-batch-job.png delete mode 100755 FreeFileSync/Build/Help/images/sftp-cloud-picker.png delete mode 100755 FreeFileSync/Build/Help/images/sftp-login.png delete mode 100755 FreeFileSync/Build/Help/images/sftp-performance.png delete mode 100755 FreeFileSync/Build/Help/images/show-thumbnails.png delete mode 100755 FreeFileSync/Build/Help/images/sync-settings-context.png delete mode 100755 FreeFileSync/Build/Help/images/synchronization-settings.png delete mode 100755 FreeFileSync/Build/Help/images/synchronization-variant-double-click.png delete mode 100755 FreeFileSync/Build/Help/images/two-folder-drop.png delete mode 100755 FreeFileSync/Build/Help/images/versioning.png delete mode 100755 FreeFileSync/Build/Help/images/view-filter-default.png delete mode 100755 FreeFileSync/Build/Help/images/windows-scheduler.png delete mode 100755 FreeFileSync/Build/Help/images/xp-scheduler.png delete mode 100755 FreeFileSync/Build/Languages/slovak.lng delete mode 100755 FreeFileSync/Build/Languages/turkish.lng delete mode 100755 FreeFileSync/Build/Languages/ukrainian.lng delete mode 100755 FreeFileSync/Build/ding.wav delete mode 100755 FreeFileSync/Build/gong.wav delete mode 100755 FreeFileSync/Build/harp.wav delete mode 100755 FreeFileSync/Build/styles.gtk_rc delete mode 100755 FreeFileSync/Source/base/error_log.h delete mode 100755 FreeFileSync/Source/base/hard_filter.cpp delete mode 100755 FreeFileSync/Source/base/hard_filter.h delete mode 100755 FreeFileSync/Source/fs/concrete_impl.h delete mode 100755 FreeFileSync/Source/ui/search.cpp delete mode 100755 FreeFileSync/Source/ui/search.h delete mode 100755 FreeFileSync/Source/ui/version_check_impl.h delete mode 100755 wx+/zlib_wrap.cpp delete mode 100755 wx+/zlib_wrap.h delete mode 100755 zen/xml_io.cpp delete mode 100755 zen/xml_io.h delete mode 100755 zenXml/zenxml/bind.h delete mode 100755 zenXml/zenxml/error.h delete mode 100755 zenXml/zenxml/io.h diff --git a/FreeFileSync/Build/Help/FreeFileSync.hhc b/FreeFileSync/Build/Help/FreeFileSync.hhc deleted file mode 100755 index 637167ca..00000000 --- a/FreeFileSync/Build/Help/FreeFileSync.hhc +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - diff --git a/FreeFileSync/Build/Help/FreeFileSync.hhp b/FreeFileSync/Build/Help/FreeFileSync.hhp deleted file mode 100755 index 45b4497c..00000000 --- a/FreeFileSync/Build/Help/FreeFileSync.hhp +++ /dev/null @@ -1,33 +0,0 @@ -[OPTIONS] -Compatibility=1.1 or later -Compiled file=..\FreeFileSync.chm -Contents file=FreeFileSync.hhc -Default topic=html\freefilesync.html -Display compile progress=No -Full-text search=Yes -Language=0x409 Englisch (USA) -Title=FreeFileSync - Help - - -[FILES] -html\command-line.html -html\comparison-settings.html -html\daylight-saving-time.html -html\exclude-items.html -html\expert-settings.html -html\external-applications.html -html\freefilesync.html -html\macros.html -html\performance.html -html\schedule-batch-jobs.html -html\synchronization-settings.html -html\ftp-setup.html -html\tips-and-tricks.html -html\variable-drive-letters.html -html\versioning.html -html\volume-shadow-copy.html -html\realtimesync.html -html\run-as-service.html - -[INFOTYPES] - diff --git a/FreeFileSync/Build/Help/html/base.css b/FreeFileSync/Build/Help/html/base.css deleted file mode 100755 index 5175281a..00000000 --- a/FreeFileSync/Build/Help/html/base.css +++ /dev/null @@ -1,94 +0,0 @@ -* -{ -} - -body -{ - font-family: "Segoe UI", Verdana, Tahoma, sans-serif; - text-align:justify; -} - -h1 -{ - font-size: 22px; -} - -h2 -{ - font-size: 17px; -} - -ul -{ - list-style: disc; -} - -ol -{ - margin: 0 -} - -table th -{ - text-align: left; - padding: 0 20px 0 0; - border-bottom: 1px solid black; -} - -table td -{ - padding: 0 20px 0 0; - vertical-align: top; -} - -.half-line { line-height: .5em; } - -.bluebox -{ - padding: 6px 15px; - background: #ccccff; - border: 1px solid #000080; -} - -.greybox -{ - padding: 6px 15px; - background: #f8f8f8; - box-shadow: 1px 1px 4px #888; -} - -.command-line -{ - font-family: "Courier New", Courier, monospace; - text-align: left; -} - -.command-line-comment -{ - color: #808080; - font-weight: bold; - font-style: italic; -} - -.file-path -{ - font-family: Consolas, "Courier New", Courier, monospace; - text-align: left; -} - -.separation_line -{ - border-bottom: 1px solid #AAA; - margin: 10px 0 20px 0; -} - -.tip -{ - font-weight: bold; - margin-bottom: 5px; -} - -.screen-snippet -{ - box-shadow: 1px 1px 2px #888; -} diff --git a/FreeFileSync/Build/Help/html/command-line.html b/FreeFileSync/Build/Help/html/command-line.html deleted file mode 100755 index 78a9fc75..00000000 --- a/FreeFileSync/Build/Help/html/command-line.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Command Line Usage - - - -

Command Line Usage

- -

- FreeFileSync supports additional synchronization scenarios via a command line interface. - To get a syntax overview, open the console, go to the directory where FreeFileSync is installed and type: -

- -
- FreeFileSync.exe -h or FreeFileSync.exe --help -
- -
- Command line syntax -

- -

1. Run a FreeFileSync batch job

-

- In order to start synchronization in batch mode, supply the path of a ffs_batch configuration file as the first argument for FreeFileSync.exe: -

- -
-
FreeFileSync.exe "D:\Backup Projects.ffs_batch"
-
- -

After synchronization one of the following status codes is returned:

- -
- Return Codes
- 0 - Synchronization completed successfully
- 1 - Synchronization completed with warnings
- 2 - Synchronization completed with errors
- 3 - Synchronization was aborted -
- -

- You can evaluate these codes from a script (e.g. a cmd or bat file on Windows) - and check if synchronization completed successfully: -

- -
-
- "C:\Program Files\FreeFileSync\FreeFileSync.exe" "D:\Backup Projects.ffs_batch"
- if errorlevel 1 (
-   ::if return code is 1 or greater, something went wrong, add special treatment here
-   echo Errors occurred during synchronization...
-   pause
- ) -
-
- -

Instead of showing an error message, you can also send an email notification (using a third party tool).

- -
- Attention
- If you are running the batch job unattended, make sure your script is not blocked showing a notification dialog. Consider the - following options when setting up the FreeFileSync batch job: -
 
- - -
-
- -

2. Start a FreeFileSync GUI configuration

-

- If you pass a ffs_gui file, FreeFileSync will start in GUI mode and immediately start comparison (but only if all directories exist): -

- -
-
FreeFileSync.exe "D:\Manual Backup.ffs_gui"
-
-
- -

3. Customize an existing configuration

-

- You can replace the directories of a given ffs_gui or ffs_batch configuration file by using the -DirPair parameter: -

- -
-
FreeFileSync.exe "D:\Manual Backup.ffs_gui" -dirpair C:\NewSource D:\NewTarget
-
-
- -

4. Merge multiple configurations

-

- When more than one configuration file is provided, FreeFileSync will merge - everything into a single configuration with multiple folder pairs and start in GUI mode: -

- -
-
FreeFileSync.exe "D:\Manual Backup.ffs_gui" "D:\Backup Projects.ffs_batch"
-
-
- - -

5. Use a different GlobalSettings.xml file

-

- By default, FreeFileSync uses a single GlobalSettings.xml file containing options that apply to all synchronization tasks; - for examples see Expert Settings. - If you want FreeFileSync to use a different settings file instead, you can specify the path via command line: -

- -
-
FreeFileSync.exe "D:\My GlobalSettings.xml"
-
- - diff --git a/FreeFileSync/Build/Help/html/comparison-settings.html b/FreeFileSync/Build/Help/html/comparison-settings.html deleted file mode 100755 index d83877c8..00000000 --- a/FreeFileSync/Build/Help/html/comparison-settings.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - Comparison Settings - - - -

Comparison Settings

-

- Comparison settings dialog -

-

- -

Comparison variants

-

- When comparing two folders, FreeFileSync analyses the paths relative to the left and right base folders of the contained files. - If the relative path matches, FreeFileSync decides how the file pair is categorized by considering the selected comparison variant: -

- - I. Compare by File time and size -

- This variant considers two files equal when both modification time and file size match. - It should be selected when synchronizing files with a backup location. - Whenever a file is changed, its file modification time is also updated. - Therefore, a comparison by File Time and size will detect all files that should be synchronized. - The following categories are distinguished: -

-
    -
  1. file exists on one side only -
      -
    • left only -
    • right only -
    - -
  2. file exists on both sides -
      -
    1. different date -
        -
      • left newer -
      • right newer -
      -
    2. same date -
        -
      • equal -
      • conflict (same date, different size) -
      -
    -
-
- - II. Compare by File content -

- Two files are marked as equal if they have identical content. - This variant should be selected when doing consistency checks to see if the files on both sides are bit-wise identical. - Naturally, it is the slowest of all comparison variants, so its usefulness for the purpose of synchronization is limited. - If used for synchronization, it can serve as a fallback when modification times are not reliable. For example - certain mobile phones and legacy FTP servers do not preserve modification times, so the only way to detect different files when the - file sizes are the same is by reading their content. -

-
    -
  1. file exists on one side only -
      -
    • left only -
    • right only -
    - -
  2. file exists on both sides -
      -
    • equal -
    • different content -
    -
-
- - III. Compare by File size -

- Two files are considered equal if they have the same file size. - Since it's possible for files that have the same size to have different content, this variant should only be used when file modification times are not - available or reliable, e.g. in certain MTP and FTP synchronization scenarios, and where a comparison by content would be too slow. -

-
    -
  1. file exists on one side only -
      -
    • left only -
    • right only -
    - -
  2. file exists on both sides -
      -
    • equal -
    • different size -
    -
-
- -

Symbolic Link Handling

-

- FreeFileSync lets you choose to include symbolic links (also called symlinks or soft links) - when scanning directories rather than skipping over them. When included, you can select between two ways to handle them: -

- -
    -
  1. Follow: - Treat symbolic links like the object they are pointing to. Links - pointing to directories are traversed like ordinary directories and - the target of each link is copied during synchronization.
      - -
  2. Direct: - Evaluate the symbolic link object directly. Symbolic links will be shown as separate entities. - Links pointing to directories are not traversed and the link object itself - is copied during synchronization. -
-
- -
- Note - -
- - - diff --git a/FreeFileSync/Build/Help/html/daylight-saving-time.html b/FreeFileSync/Build/Help/html/daylight-saving-time.html deleted file mode 100755 index 1b68d93e..00000000 --- a/FreeFileSync/Build/Help/html/daylight-saving-time.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - Daylight Saving Time - - - -

Daylight Saving Time (Windows)

- -

- A common problem synchronization software has to handle is +-1 hour - file time shifts after a Daylight Saving Time (DST) switch has - occurred. This can be observed, for example, when a FAT32- or exFAT-formatted - volume (in the following called "FAT") is compared against an NTFS volume, - like when synchronizing a USB memory stick against a local disk. - Files that previously appeared to be in sync are - now shown with a one hour modification time offset, although they - have not been modified by the user or the operating system. -

- -

- The reason for this behavior lies in the way NTFS and FAT - store file times: NTFS stores time in UTC format, while FAT uses - local time. -

- -

- When times of these two different formats are compared, one format - has to be converted into the other first. In either way, Windows uses - the current DST status as well as the current time zone for - its calculations. Consequently, the result of this comparison is - dependent from current system settings with the effect that file times - that used to be the same show up as different after a DST switch or when the time zone has changed. -

- -

- For a detailed discussion about this issue see:
- https://www.codeproject.com/Articles/1144/Beating-the-Daylight-Savings-Time-bug -

-

- -

Solutions:

- -
    -
  1. - In FreeFileSync's comparison settings you can enter one or more time shifts to ignore during comparison: - If you need to handle differences due to daylight saving time, enter a single one hour shift. - If the differences are caused by changing the time zone, enter one or more time shifts as needed. -
    -

    - Ignore daylight saving time shift
    -
    -
    - Note
    - File times have to be equal or differ by exactly the time shift entered to be considered the same. - Therefore, the time shift setting should not be confused with a time interval or tolerance. -
    -
    - -
  2. Alternatively, you can avoid the problem in the first place by only synchronizing from FAT to FAT or NTFS to NTFS file systems. - Since most local disks are formatted with NTFS and USB memory sticks with FAT, this situation could be handled by formatting the USB stick with NTFS as well. -
- - diff --git a/FreeFileSync/Build/Help/html/exclude-items.html b/FreeFileSync/Build/Help/html/exclude-items.html deleted file mode 100755 index 0563f5ef..00000000 --- a/FreeFileSync/Build/Help/html/exclude-items.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - Exclude Items via Filter - - - -

Exclude Items via Filter

- -

- File exclude filter
-
- Files and directories are only considered for synchronization if they pass - all filter rules. They have to match at least one entry in the - include list and none of the entries in the exclude list as presented in the filter configuration dialog: -

- -
- -
-
- -

Example: Exclude specific items from a mirror-sync, C:\Source to D:\Target

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Filter descriptionFilter phrase
Single file C:\Source\file.txt\file.txt
Single folder C:\Source\SubFolder\SubFolder\
All files (and folders) named thumbs.db*\thumbs.db
All *.tmp files located in SubFolder\SubFolder\*.tmp
Files and folders containing temp somewhere in their path*temp*
Multiple entries separated by vertical bar*.tmp | *.doc | *.bak
All subdirectories of the base directories*\
*.txt files located in subdirectories of base directories\*\*.txt
-
- -

Example: Exclude a sub folder except for certain files

-

- Set up two folder pairs with the same source and target paths but with distinct local filters:
- Folder pair 1; local exclude filter: \SubFolder\
- Folder pair 2; local include filter: \SubFolder\*.txt -

-
- -

Example: Exclude empty folders

-

- Filter with file size zero - Set up a file size filter with a lower limit of 0 bytes. Both the time span - and file size filters match files only, so this will exclude all folders. - During synchronization however some excluded folders will still be synchronized if they contain at least one non-excluded item, i.e. when they are not empty.
-

-
- -
- Note - -
- - diff --git a/FreeFileSync/Build/Help/html/expert-settings.html b/FreeFileSync/Build/Help/html/expert-settings.html deleted file mode 100755 index 2791c5fb..00000000 --- a/FreeFileSync/Build/Help/html/expert-settings.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - Expert Settings - - - -

Expert Settings

- -

- FreeFileSync has a number of special-purpose settings that can only be accessed - by manually opening the global configuration file GlobalSettings.xml. - Note that this file is read once when FreeFileSync starts and saved again on exit. - Therefore, you should apply manual changes only while FreeFileSync is not running. - For the portable FreeFileSync variant the file is found in the installation folder, - for local installations go to: -

- - - - - -
Windows: %AppData%\FreeFileSync
Linux: <installation folder>
macOS: ~/Library/Application Support/FreeFileSync
-
- -
-
- <?xml version="1.0" encoding="UTF-8"?>
- <FreeFileSync XmlType="GLOBAL">
-     <General>
-         <FileTimeTolerance Seconds="2"/>
-         <FolderAccessTimeout Seconds="20"/>
-         <RunWithBackgroundPriority Enabled="false"/>
-         <LockDirectoriesDuringSync Enabled="true"/>
-         <VerifyCopiedFiles Enabled="false"/>
-         <NotificationSound CompareFinished="ding.wav" SyncFinished="harp.wav"/> -
-
-
- -

- FileTimeTolerance:
- By default file modification times - are allowed to have a 2 second difference while still being - considered equal. This is required by FAT/FAT32 file systems which - store file times only with a 2-second precision. -

- -

- FolderAccessTimeout:
- When testing if a particular folder path exists FreeFileSync will time out - after the specified number of seconds if the operating system does not respond (e.g. non-reachable network share). -

- -

- RunWithBackgroundPriority:
- While synchronization is running, other applications that are accessing the same - data locations may experience a noticeable slowdown. Enable this - setting to lower FreeFileSync's resource consumption at the cost of a - significantly slower synchronization speed. -

- -

- LockDirectoriesDuringSync:
- In order to prevent multiple synchronization tasks from reading and writing the same files, - FreeFileSync instances are serialized with lock files (sync.ffs_lock). - The lock files are only recognized by FreeFileSync and make sure that at most, - a single synchronization is running against a certain folder at a time while - other instances are queued to wait. - This ensures that only consistent sets of files are subject to synchronization. - The primary use case are network synchronization scenarios where - multiple users run FreeFileSync concurrently against a shared network folder. -

- -

- VerifyCopiedFiles:
- If active, FreeFileSync will binary-compare source and target files after - copying and report verification errors. Note that this may double - file copy times and is no guarantee that data has not already been - corrupted prior to copying. Additionally, corruption may be hidden by - deceptively reading valid data from various buffers in the - application and hardware stack:
- Does - the CopyFile function verify that the data reached its final destination successfully? -

- -

- NotificationSound:
- Select sound files from the FreeFileSync installation directory to be played after comparison or synchronization. Set empty names if no sound should be played. -

- - diff --git a/FreeFileSync/Build/Help/html/external-applications.html b/FreeFileSync/Build/Help/html/external-applications.html deleted file mode 100755 index cfe79d64..00000000 --- a/FreeFileSync/Build/Help/html/external-applications.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - External Applications - - - -

External Applications

- -

- When you double-click on one of the rows on the main dialog, FreeFileSync opens the operating system's file browser - by default. On Windows, it calls explorer /select, "%local_path%", on - Linux xdg-open "%folder_path%" and on macOS open -R "%local_path%". - To customize this behavior or integrate other external applications into FreeFileSync, - navigate to Menu → Tools → Options → Customize context menu and add or replace a command. -

- -

- The first entry will be executed when double-clicking a row on the main grid or when pressing ENTER. - All other entries can be accessed quickly by pressing the associated numeric keys or via the context menu that is shown after a right mouse click. -

- -

- In addition to regular Macros, the following special macros are available: -

- -
- - - - - - - - - - - - - - - - - -
MacroDescription
%item_path%
Full file or folder path
%folder_path%
Parent folder path
%local_path%
Creates a temporary local copy for files located on SFTP and MTP storage. Identical to %item_path% for files on local disks and network shares.
- -

- Note: To refer to the item on the opposite side, append "2" to the macro name: e.g. - %item_path2%, %folder_path2%, %local_path2%. -

- -
-
- -

Examples:

- - - -
- Note
- Macros need to be protected with quotation marks if they can resolve to file paths containing whitespace characters. -
- - diff --git a/FreeFileSync/Build/Help/html/freefilesync.html b/FreeFileSync/Build/Help/html/freefilesync.html deleted file mode 100755 index cd3d648a..00000000 --- a/FreeFileSync/Build/Help/html/freefilesync.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - FreeFileSync - Folder Comparison and Synchronization - - - -

- FreeFileSync
- Folder Comparison and Synchronization -

- -

Basic usage:

- -
    -
  1. Choose left and right folders.
    - Choose left and right directories - -
  2. Compare them.
    - Start comparison - -
  3. Select synchronization settings.
    - Select synchronization settings - -
  4. Press Synchronize to begin synchronization.
    - Press Synchronize to begin synchronization -
-
- -

Main Dialog Overview

- - FreeFileSync main window -
-
    -
  1. Start comparison -
  2. Change comparison settings -
  3. Include/exclude specific files -
  4. Change synchronization settings -
  5. Start synchronization -
  6. Add folder pairs -
  7. Select left and right folders -
  8. Save/load configuration -
  9. Tree overview panel -
  10. Synchronization preview -
  11. Select categories to show on grid -
  12. Synchronization statistics -
-
-
- - diff --git a/FreeFileSync/Build/Help/html/ftp-setup.html b/FreeFileSync/Build/Help/html/ftp-setup.html deleted file mode 100755 index e75c54d3..00000000 --- a/FreeFileSync/Build/Help/html/ftp-setup.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - SFTP and FTP Setup - - - -

SFTP and FTP Setup (Windows, macOS)

- -

- FreeFileSync supports synchronization with SFTP and FTP natively. Just enter your login information into the dialog shown for cloud folder selection: - Cloud folder button
-
- Enter SFTP login data -

- -
- Note
In case the (S)FTP server sets file modification times to the current time - you can do a Compare by File Size as a workaround. - Another solution is to set up the Two way variant and have the files with the newer dates - be copied back from the server during the next synchronization. -
-
- -

Configure SFTP for best performance

-

- By default, FreeFileSync creates one connection to the server and uses one SFTP channel, i.e. only a single SFTP command can be sent and received at a time. - Since most of this time is spent waiting due to the high latency of the remote connection, you can speed up reading large folder hierarchies - by increasing both the connection and channel count.
-
- The folder reading time is reduced by a factor of N x M when using N connections with M channels each. -

- - Example: 10 connections using 2 channels each can yield a 20 times faster folder reading.
- -
 
- Set up SFTP for best performance -
 
- - -
-
- Advice
Start with low numbers and make tests with different combinations of connections and channels for your - particular SFTP synchronization scenario to see what gives the highest speed. - Note, however, that FreeFileSync reuses existing SFTP connections/channels. - Therefore, you should restart FreeFileSync before measuring SFTP speed. -
-
- -

SFTP Setup (Linux)

- -

An SFTP share can be mapped to a local folder for use with FreeFileSync:

- -
- -
- - diff --git a/FreeFileSync/Build/Help/html/macros.html b/FreeFileSync/Build/Help/html/macros.html deleted file mode 100755 index b173aeb4..00000000 --- a/FreeFileSync/Build/Help/html/macros.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - Macros - - - -

Macros

- -

- All directory paths may contain macros that are expanded during - synchronization. The beginnings and ends of each macro are marked by a % character. In addition to special macros - handling time and date, the operating system's environment variables may also be used. -

-

- -

Internal macros

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MacroExample
%date%2016-12-31        format: [YYYY-MM-DD]
%time%112233            format: [hhmmss]
%timestamp%2016-12-31 112233 format: [YYYY-MM-DD hhmmss]
  
%year%2016
%month%12
%day%31
  
%hour%11
%min%22
%sec%33
  
%weekday%Monday (day of the week)
%week%52     (calendar week)
-
-
- -

Environment variables (Windows)

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MacroExample
%AllUsersProfile%C:\ProgramData
%AppData%C:\Users\Zenju\AppData\Roaming
%ComputerName%Zenju-PC
%LocalAppData%C:\Users\Zenju\AppData\Local
%ProgramData%C:\ProgramData
%ProgramFiles%C:\Program Files
%ProgramFiles(x86)%C:\Program Files (x86)
%Public%C:\Users\Public
%Temp%C:\Windows\Temp
%UserName%Zenju
%UserProfile%C:\Users\Zenju
%WinDir%C:\Windows
-
-
- -

Special folder locations (Windows)

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MacroExample
%csidl_Desktop%C:\Users\Zenju\Desktop
%csidl_Documents%C:\Users\Zenju\Documents
%csidl_Pictures%C:\Users\Zenju\Pictures
%csidl_Music%C:\Users\Zenju\Music
%csidl_Videos%C:\Users\Zenju\Videos
%csidl_Downloads%C:\Users\Zenju\Downloads
%csidl_Favorites%C:\Users\Zenju\Favorites
%csidl_Resources%C:\Windows\Resources
%csidl_Quicklaunch%C:\Users\Zenju\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch
%csidl_StartMenu%C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu
%csidl_Programs%C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
%csidl_Startup%C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp
%csidl_Nethood%C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Network Shortcuts
%csidl_Templates%C:\Users\Zenju\AppData\Roaming\Microsoft\Windows\Templates
- -

- Note: Most macros listed here also have a variant for public folders, e.g. - %csidl_Documents% has %csidl_PublicDocuments%. -

-
-
- -

- Hint: You can add a flexibility to an ffs_batch configuration file - by creating new temporary environment variables in a bat or cmd file that are evaluated by FreeFileSync at runtime: -

-

- -

Example:

-

- The FreeFileSync batch file C:\SyncJob.ffs_batch contains - macro %MyVar% instead of an absolute target folder and is invoked by a cmd file: -

- -
-
set MyVar=C:\Target
- "C:\Program files\FreeFileSync\FreeFileSync.exe" C:\SyncJob.ffs_batch
-
::%MyVar% is resolved as C:\Target during synchronization
-
-
-
- -
- Note
- Temporary environment variables created with the set command are only valid if the synchronization is started by calling the - FreeFileSync executable directly. Using start /wait would create a new program context without these temporary variables. -
- - diff --git a/FreeFileSync/Build/Help/html/performance.html b/FreeFileSync/Build/Help/html/performance.html deleted file mode 100755 index 69922c12..00000000 --- a/FreeFileSync/Build/Help/html/performance.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - Performance Improvements - - - -

Performance Improvements

- -

- Performance settings - FreeFileSync can be set up to issue multiple file accesses - in parallel. This speeds up synchronization times dramatically in - cases where single I/O operations have significant latency - (e.g. long response times on a slow network connection) - or they cannot use the full bandwidth available - (e.g. an SFTP server that has a speed limit for each connection).
-
- The number of parallel file operations that FreeFileSync should use - can be set up for each device individually - in the Comparison Settings dialog. - It is evaluated for all folder pairs of a configuration as follows: -

- -
- Note
- FreeFileSync implements parallel file operations by opening multiple connections to a device. - Some devices like SFTP servers have limits on how many connections they allow and will - fail if too many are attempted; see (S)FTP Setup. -
- - diff --git a/FreeFileSync/Build/Help/html/realtimesync.html b/FreeFileSync/Build/Help/html/realtimesync.html deleted file mode 100755 index 325316b3..00000000 --- a/FreeFileSync/Build/Help/html/realtimesync.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - RealTimeSync - Automated Synchronization - - - -

- RealTimeSync
- Automated Synchronization -

- -

- The primary function of RealTimeSync is to execute a command line each time it detects changes in one of the monitored directories, - or when a directory becomes available (e. g. insert of a USB-stick). Usually this command line will trigger a FreeFileSync batch job.
-
- - RealTimeSync will register to receive change notifications directly from the operating system in order to avoid the overhead of - repeatedly polling for changes. - Each time a file or folder is created/updated/deleted in the monitored directories or their sub directories, RealTimeSync will run the command line. -

-

- -

Example: Real time synchronization - in combination with FreeFileSync

-

- Start RealTimeSync.exe located in FreeFileSync's installation directory and - enter the folders you want to monitor. Instead of doing this manually you can import an ffs_batch - file via Menu → File → Open or simply via drag and drop. - RealTimeSync will not only extract all directories relevant for synchronization, - but will also set up the command line to execute the ffs_batch file each time changes are detected. - Now press Start to begin monitoring. -

-
- RealTimeSync main window -
-
- -
- Note - -
-
- -

Example: Automatic synchronization when a USB stick is inserted

-

- Save an ffs_batch configuration in the USB stick's root directory, - e.g. H:\ and let FreeFileSync run it when the stick is mounted. - But, instead of hard coding the USB drive letter H:\ (which may change occasionally), - refer to the USB stick via its volume name instead.
-
- Configure RealTimeSync as follows:
-

-
- Monitor USB stick insert
- - "Backup" is the volume name of the USB stick in our example. -
- -

- Whenever directory H:\Data becomes available, RealTimeSync executes the command line which starts the batch job located - on the stick. RealTimeSync will also trigger each time files are modified in H:\Data. -

- -
- Note
- The full path of the last changed file and the action that triggered the - change notification (create, update or delete) are written - to the environment variables %change_path% and %change_action%. -
-
- -

Example: Log names of changed files and directories (Windows)

-
- Show which file or directory has triggered a change. Enter command line:
-
-     cmd /c echo %change_action% "%change_path%" & pause -
-
- - Write a list of all changes to a log file:
-
-     cmd /c echo %change_action% "%change_path%" >> %csidl_Desktop%\log.txt -
-
-
-
- Note
- When RealTimeSync executes a Windows batch file (bat or cmd) a black console window is shown. You can hide it using the Visual Basic script - HideConsole.vbs located in FreeFileSync's installation directory: -

-
wscript "C:\Program files\FreeFileSync\HideConsole.vbs" C:\MyBatchFile.cmd
-
-
- -

Limitations:

- -

- The command line usually starts a synchronization task using FreeFileSync which naturally leads to additional file change notifications. - Therefore, the RealTimeSync change detection has to be deactivated to not go into an endless loop. - On the other hand, it is not likely that changes (other than those from FreeFileSync) happen in first place since RealTimeSync runs the command line only after the user-specified idle time has passed. - This makes sure the monitored folders are not in heavy use. In any case, files changed during the execution of FreeFileSync will be synchronized the next time FreeFileSync runs. -

- - diff --git a/FreeFileSync/Build/Help/html/run-as-service.html b/FreeFileSync/Build/Help/html/run-as-service.html deleted file mode 100755 index 165ed84b..00000000 --- a/FreeFileSync/Build/Help/html/run-as-service.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - Run as Service - - - -

Run as Service (Windows)

- -

- RealTimeSync is designed to run as a background process which does not need further attention. - Depending on your requirements, there are a number of ways to start it automatically. - Generally, the goal is to execute a command line of the form: -

- -
-
<FreeFileSync installation folder>\RealTimeSync.exe <path to *.ffs_real or *.ffs_batch file>
-
-
- -

Example:

- -
-
"C:\Program Files\FreeFileSync\RealTimeSync.exe" "D:\Backup Projects.ffs_real"
-
-
- -
    -
  1. - RealTimeSync should start monitoring when a user logs in:
    - Create a new shortcut, enter the command line from above as target and place it into the Windows autostart folder. - (Enter shell:startup in the Windows Explorer address bar to find the folder quickly.) - -

    - Create shortcut

    - Shortcut properties -
      - -
  2. - RealTimeSync should be monitoring while Windows is running, irrespective of currently logged in users:
    - Create a new task in your operating systems's task scheduler and have it execute the command line above when the system starts. - See Schedule Batch Jobs for an example of how to add a task. Then change - the user which runs the task to SYSTEM - a special user account always running in the background. -

    - Schedule RealTimeSync -
- - diff --git a/FreeFileSync/Build/Help/html/schedule-batch-jobs.html b/FreeFileSync/Build/Help/html/schedule-batch-jobs.html deleted file mode 100755 index 4a836801..00000000 --- a/FreeFileSync/Build/Help/html/schedule-batch-jobs.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - Schedule Batch Jobs - - - -

Schedule Batch Jobs

- -
    -
  1. Create a new batch job via FreeFileSync's main dialog: Menu → File → Save as a batch job...
      -
    - Setup a FreeFileSync batch job -

    - - -
  2. By default, FreeFileSync will show a progress dialog during synchronization and will wait while the summary dialog is shown. - If the progress dialog is not needed, enable checkbox Run minimized and - also set Auto-Close if you want to skip the summary dialog at the end. -

    - -
    - Note
    - Even if the progress dialog is not shown at the beginning, you can make it visible at any time during - synchronization by double-clicking the FreeFileSync icon in the notification area. -
    -
    - -
  3. If you don't want error or warning messages to stall synchronization when no user is available to respond, - either check Ignore errors or set Cancel to stop the synchronization at the first error.
    -   - -
  4. Set up the FreeFileSync batch job in your operating system's scheduler:
    -
- -
-
- -

A. Windows Task Scheduler:

- - -
- Note
- -
-
- -
- -

B. macOS Automator and Calendar:

- -
- -

C. Windows XP Scheduled Tasks:

- -
- -

D. Ubuntu Linux Gnome Scheduled Tasks:

- - - diff --git a/FreeFileSync/Build/Help/html/synchronization-settings.html b/FreeFileSync/Build/Help/html/synchronization-settings.html deleted file mode 100755 index 0f4f4fe7..00000000 --- a/FreeFileSync/Build/Help/html/synchronization-settings.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - Synchronization Settings - - - -

Synchronization Settings

-

- Synchronization settings dialog -

-

- -

Detect Moved Files

-

- FreeFileSync is able to detect moved files on one side and can quickly apply the same move on the target side during - synchronization instead of a slow copy and delete. To make this work, FreeFileSync requires database files (sync.ffs_db) - to compare the current file system state against the time of the last synchronization. -

-

- The Two way variant already creates database files, therefore, detection of moved files is always active.
- The Mirror variant however, does not need the database files to find synchronization directions, so detection of moved files - is not available by default. If you don't mind the creation of the database files, you can enable this feature by - selecting the Detect moved files checkbox. -

- -
- Note - -
- - diff --git a/FreeFileSync/Build/Help/html/tips-and-tricks.html b/FreeFileSync/Build/Help/html/tips-and-tricks.html deleted file mode 100755 index 838ae087..00000000 --- a/FreeFileSync/Build/Help/html/tips-and-tricks.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - Tips and Tricks - - - -

Tips and Tricks

- -
- Change settings with a single mouse click: Press and hold the right mouse button until the context menu is shown, then release while over the selection: -
- Comparison settings context menu - Filter context menu - Synchronization settings context menu
-
- -
- Select multiple configurations at a time: -
- Select multiple configurations - Select a few items via mouse, and refine the selection by holding the Control key while clicking.
-
-
- -
- Start comparison directly by double-clicking on a configuration: -
- Double-click on configuration -
- -
- Synchronize multiple folder pairs at a time with different configurations: -
- Add folder pair -
- -
- Start synchronization directly without clicking on compare first: -
- Start synchronization directly -
- -
- Move a window by clicking on a free area and holding the mouse button: -
- Move dialog via mouse -
- -
- Open a batch configuration for edit via the Windows Explorer context menu: -
- Explorer context menu -
- -
- Drag and drop two folders at a time from Windows Explorer to fill a folder pair in one go: -
- Two-folder drop -
- -
- Copy files selected on the main dialog to an alternate folder and thereby save a "diff": -
- Copy to alternative path -
- -
- Use a volume name instead of a drive letter: -
- Drive letter by volume name -
- -
- Show thumbnail icons via the column header context menu: -
- Show thumbnail icons -
- -
- Save the current view filter selection as default: -
- Save view filter settings -
- -
- Remove local settings from individual folder pairs: -
- Remove local settings -
- -
- Remove obsolete paths from the folder drop-down list by pressing the Delete key: -
- Remove drop-down path -
- -
- Select a time span for files to include via the date column context menu: -
- Select time span -
- -
- Double-click on comparison and synchronization variants to confirm the dialog: -
- Double-click comparison variant - Double-click synchronization variant -
- - diff --git a/FreeFileSync/Build/Help/html/variable-drive-letters.html b/FreeFileSync/Build/Help/html/variable-drive-letters.html deleted file mode 100755 index 008b32c4..00000000 --- a/FreeFileSync/Build/Help/html/variable-drive-letters.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Variable Drive Letters - - - -

Variable Drive Letters

- -

- USB memory sticks or external hard disks often get different - drive letters assigned when plugged into distinct computers. FreeFileSync - offers two solutions to handle this problem: -

- -

Option 1: Specify a folder path by using the volume name:

- -
- Enter the path as [USB-NAME]\folder instead of E:\folder where USB-NAME - is the volume name of the USB stick which is currently mounted in drive E:\. -
-
- -
- Note
- It is not required to look up and enter the volume name manually. Just select the corresponding entry in the drop down menu.
- Drive letter by volume name -
-
- -

Option 2: Use a relative directory name:

- -
- -
- The working directory is then automatically set to E:\ by the operating system so that the - relative path \folder will be resolved as E:\folder during synchronization. -
- - diff --git a/FreeFileSync/Build/Help/html/versioning.html b/FreeFileSync/Build/Help/html/versioning.html deleted file mode 100755 index 71ecff49..00000000 --- a/FreeFileSync/Build/Help/html/versioning.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - File Versioning - - - -

File Versioning

-

- When you need to preserve files that have been deleted or overwritten, - it's often sufficient to select Recycle bin in synchronization - settings. However, this is only available for local drives and offers - little control on how to store and how long to keep the files. - FreeFileSync therefore has an additional option, Versioning. -

-

- -

1. Keep only the most recent versions

-

- In synchronization settings, set deletion handling to Versioning and naming convention to - Replace. Deleted files will be moved to the specified folder - without any decoration and will replace already existing older - versions.
- Versioning -

-

- -

2. Keep multiple versions of old files

-
    -
  1. - Set deletion handling to Versioning - and naming convention to Time stamp [File]. FreeFileSync will move - deleted files into the provided folder and add a time stamp to each - file name. The structure of the synchronized folders is preserved so - that old versions of a file can be conveniently accessed via a file - browser. -

    -

    Example: Last versions of the file Folder\File.txt inside folder D:\Revisions

    -
    -
    - D:\Revisions\Folder\File.txt 2012-12-12 111111.txt
    - D:\Revisions\Folder\File.txt 2012-12-12 122222.txt
    - D:\Revisions\Folder\File.txt 2012-12-12 133333.txt -
    -
    -
    - -
  2. - With naming convention Time stamp [Folder] files are moved into a time-stamped subfolder - of the versioning folder while their names remain unchanged. - This makes it easy to manually undo a synchronization by moving the deleted files from the - versioning folder back to their original folders. -

    -

    Example: Last versions of the file Folder\File.txt inside folder D:\Revisions

    -
    -
    - D:\Revisions\2012-12-12 111111\Folder\File.txt
    - D:\Revisions\2012-12-12 122222\Folder\File.txt
    - D:\Revisions\2012-12-12 133333\Folder\File.txt -
    -
    -
-
- -

3. Save versions at certain intervals

-

- With naming convention Replace - it is possible to refine the granularity of versions to keep by adding Macros - to the versioning folder path. For example, you can save deleted files - on a daily basis by adding the %date% macro: -

-

Example: Last versions of the file Folder\File.txt inside folder D:\Revisions\%date%

-
-
- D:\Revisions\2012-12-11\Folder\File.txt
- D:\Revisions\2012-12-12\Folder\File.txt
- D:\Revisions\2012-12-13\Folder\File.txt -
-
- - diff --git a/FreeFileSync/Build/Help/html/volume-shadow-copy.html b/FreeFileSync/Build/Help/html/volume-shadow-copy.html deleted file mode 100755 index fa98238a..00000000 --- a/FreeFileSync/Build/Help/html/volume-shadow-copy.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - Volume Shadow Copy - - - -

Volume Shadow Copy (Windows only)

- -

- FreeFileSync supports copying locked or shared files by creating a Volume Shadow - Copy of the source drive. This feature can be configured via Menu → Tools → Options: Copy locked files. -

- -
- Note - -
-
- -

Troubleshooting

-

- If you experience problems using the Volume Shadow Copy Service, a renewal of registration might help. - Create and execute a cmd batch file and insert the following lines or enter directly via command line: -

- -
-
- cd /d %windir%\system32
- Net stop vss
- Net stop swprv
- regsvr32 ole32.dll
- regsvr32 oleaut32.dll
- regsvr32 vss_ps.dll
- Vssvc /register
- regsvr32 /i swprv.dll
- regsvr32 /i eventcls.dll
- regsvr32 es.dll
- regsvr32 stdprov.dll
- regsvr32 vssui.dll
- regsvr32 msxml.dll
- regsvr32 msxml3.dll
- regsvr32 msxml4.dll -
-
-

- Reference: http://support.microsoft.com/kb/940032 -

- - diff --git a/FreeFileSync/Build/Help/images/add-folder-pair.png b/FreeFileSync/Build/Help/images/add-folder-pair.png deleted file mode 100755 index eb4236c0..00000000 Binary files a/FreeFileSync/Build/Help/images/add-folder-pair.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/automator-file-dropped.png b/FreeFileSync/Build/Help/images/automator-file-dropped.png deleted file mode 100755 index 7d94a0bf..00000000 Binary files a/FreeFileSync/Build/Help/images/automator-file-dropped.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/basic-step-choose-folders.png b/FreeFileSync/Build/Help/images/basic-step-choose-folders.png deleted file mode 100755 index e0887b0a..00000000 Binary files a/FreeFileSync/Build/Help/images/basic-step-choose-folders.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/basic-step-compare.png b/FreeFileSync/Build/Help/images/basic-step-compare.png deleted file mode 100755 index 8963f9fa..00000000 Binary files a/FreeFileSync/Build/Help/images/basic-step-compare.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/basic-step-start-sync.png b/FreeFileSync/Build/Help/images/basic-step-start-sync.png deleted file mode 100755 index f7309bfc..00000000 Binary files a/FreeFileSync/Build/Help/images/basic-step-start-sync.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/basic-step-sync-config.png b/FreeFileSync/Build/Help/images/basic-step-sync-config.png deleted file mode 100755 index 6656c437..00000000 Binary files a/FreeFileSync/Build/Help/images/basic-step-sync-config.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/calendar-job-added.png b/FreeFileSync/Build/Help/images/calendar-job-added.png deleted file mode 100755 index 3c60bc0d..00000000 Binary files a/FreeFileSync/Build/Help/images/calendar-job-added.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/com-settings-context.png b/FreeFileSync/Build/Help/images/com-settings-context.png deleted file mode 100755 index 690d7bbd..00000000 Binary files a/FreeFileSync/Build/Help/images/com-settings-context.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/command-line-syntax.png b/FreeFileSync/Build/Help/images/command-line-syntax.png deleted file mode 100755 index ebb2d895..00000000 Binary files a/FreeFileSync/Build/Help/images/command-line-syntax.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/comparison-settings.png b/FreeFileSync/Build/Help/images/comparison-settings.png deleted file mode 100755 index 9f638a4e..00000000 Binary files a/FreeFileSync/Build/Help/images/comparison-settings.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/comparison-variant-double-click.png b/FreeFileSync/Build/Help/images/comparison-variant-double-click.png deleted file mode 100755 index 5ad6f256..00000000 Binary files a/FreeFileSync/Build/Help/images/comparison-variant-double-click.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/config-double-click.png b/FreeFileSync/Build/Help/images/config-double-click.png deleted file mode 100755 index 54ec22d3..00000000 Binary files a/FreeFileSync/Build/Help/images/config-double-click.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/config-multiple-selection.png b/FreeFileSync/Build/Help/images/config-multiple-selection.png deleted file mode 100755 index 8e26b523..00000000 Binary files a/FreeFileSync/Build/Help/images/config-multiple-selection.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/copy-alternative-path.png b/FreeFileSync/Build/Help/images/copy-alternative-path.png deleted file mode 100755 index 1baeadb4..00000000 Binary files a/FreeFileSync/Build/Help/images/copy-alternative-path.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/dialog-drag-move.png b/FreeFileSync/Build/Help/images/dialog-drag-move.png deleted file mode 100755 index b1f9cda3..00000000 Binary files a/FreeFileSync/Build/Help/images/dialog-drag-move.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/direct-synchronize.png b/FreeFileSync/Build/Help/images/direct-synchronize.png deleted file mode 100755 index f3fdbe1f..00000000 Binary files a/FreeFileSync/Build/Help/images/direct-synchronize.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/explorer-context.png b/FreeFileSync/Build/Help/images/explorer-context.png deleted file mode 100755 index f6a0e4a3..00000000 Binary files a/FreeFileSync/Build/Help/images/explorer-context.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/filter-context.png b/FreeFileSync/Build/Help/images/filter-context.png deleted file mode 100755 index 94ce3237..00000000 Binary files a/FreeFileSync/Build/Help/images/filter-context.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/filter-zero-file-size.png b/FreeFileSync/Build/Help/images/filter-zero-file-size.png deleted file mode 100755 index 7bb88f66..00000000 Binary files a/FreeFileSync/Build/Help/images/filter-zero-file-size.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/filter.png b/FreeFileSync/Build/Help/images/filter.png deleted file mode 100755 index 33d7264c..00000000 Binary files a/FreeFileSync/Build/Help/images/filter.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/freefilesync-logo.png b/FreeFileSync/Build/Help/images/freefilesync-logo.png deleted file mode 100755 index d893a6e7..00000000 Binary files a/FreeFileSync/Build/Help/images/freefilesync-logo.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/gnome-scheduler.png b/FreeFileSync/Build/Help/images/gnome-scheduler.png deleted file mode 100755 index 0cd5ef12..00000000 Binary files a/FreeFileSync/Build/Help/images/gnome-scheduler.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/ignore-time-shift.png b/FreeFileSync/Build/Help/images/ignore-time-shift.png deleted file mode 100755 index cec19888..00000000 Binary files a/FreeFileSync/Build/Help/images/ignore-time-shift.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/launch-automator.png b/FreeFileSync/Build/Help/images/launch-automator.png deleted file mode 100755 index 5ca7b7a2..00000000 Binary files a/FreeFileSync/Build/Help/images/launch-automator.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/main-window.png b/FreeFileSync/Build/Help/images/main-window.png deleted file mode 100755 index 667e45a1..00000000 Binary files a/FreeFileSync/Build/Help/images/main-window.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/new-calendar-alarm.png b/FreeFileSync/Build/Help/images/new-calendar-alarm.png deleted file mode 100755 index 161a9a7f..00000000 Binary files a/FreeFileSync/Build/Help/images/new-calendar-alarm.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/open-finder-items.png b/FreeFileSync/Build/Help/images/open-finder-items.png deleted file mode 100755 index 1112c91e..00000000 Binary files a/FreeFileSync/Build/Help/images/open-finder-items.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/path-by-volume-name.png b/FreeFileSync/Build/Help/images/path-by-volume-name.png deleted file mode 100755 index 7b0ab2e9..00000000 Binary files a/FreeFileSync/Build/Help/images/path-by-volume-name.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/performance.png b/FreeFileSync/Build/Help/images/performance.png deleted file mode 100755 index 435762b4..00000000 Binary files a/FreeFileSync/Build/Help/images/performance.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/realtimesync-create-shortcut.png b/FreeFileSync/Build/Help/images/realtimesync-create-shortcut.png deleted file mode 100755 index fcf0f7f1..00000000 Binary files a/FreeFileSync/Build/Help/images/realtimesync-create-shortcut.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/realtimesync-logo.png b/FreeFileSync/Build/Help/images/realtimesync-logo.png deleted file mode 100755 index 40ad9645..00000000 Binary files a/FreeFileSync/Build/Help/images/realtimesync-logo.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/realtimesync-main-window.png b/FreeFileSync/Build/Help/images/realtimesync-main-window.png deleted file mode 100755 index 326cda46..00000000 Binary files a/FreeFileSync/Build/Help/images/realtimesync-main-window.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/realtimesync-monitor-usb.png b/FreeFileSync/Build/Help/images/realtimesync-monitor-usb.png deleted file mode 100755 index f6f3e78a..00000000 Binary files a/FreeFileSync/Build/Help/images/realtimesync-monitor-usb.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/realtimesync-schedule.png b/FreeFileSync/Build/Help/images/realtimesync-schedule.png deleted file mode 100755 index 416e32f8..00000000 Binary files a/FreeFileSync/Build/Help/images/realtimesync-schedule.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.png b/FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.png deleted file mode 100755 index e089672f..00000000 Binary files a/FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/remove-drop-down-path.png b/FreeFileSync/Build/Help/images/remove-drop-down-path.png deleted file mode 100755 index 863349ca..00000000 Binary files a/FreeFileSync/Build/Help/images/remove-drop-down-path.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/remove-local-settings.png b/FreeFileSync/Build/Help/images/remove-local-settings.png deleted file mode 100755 index 5acd9962..00000000 Binary files a/FreeFileSync/Build/Help/images/remove-local-settings.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/save-automator.png b/FreeFileSync/Build/Help/images/save-automator.png deleted file mode 100755 index 738af1de..00000000 Binary files a/FreeFileSync/Build/Help/images/save-automator.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/select-time-span.png b/FreeFileSync/Build/Help/images/select-time-span.png deleted file mode 100755 index ea0cb37c..00000000 Binary files a/FreeFileSync/Build/Help/images/select-time-span.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/setup-batch-job.png b/FreeFileSync/Build/Help/images/setup-batch-job.png deleted file mode 100755 index 4eb8556b..00000000 Binary files a/FreeFileSync/Build/Help/images/setup-batch-job.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/sftp-cloud-picker.png b/FreeFileSync/Build/Help/images/sftp-cloud-picker.png deleted file mode 100755 index 588d102c..00000000 Binary files a/FreeFileSync/Build/Help/images/sftp-cloud-picker.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/sftp-login.png b/FreeFileSync/Build/Help/images/sftp-login.png deleted file mode 100755 index 0a3f3b7a..00000000 Binary files a/FreeFileSync/Build/Help/images/sftp-login.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/sftp-performance.png b/FreeFileSync/Build/Help/images/sftp-performance.png deleted file mode 100755 index f982277f..00000000 Binary files a/FreeFileSync/Build/Help/images/sftp-performance.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/show-thumbnails.png b/FreeFileSync/Build/Help/images/show-thumbnails.png deleted file mode 100755 index 41f1d582..00000000 Binary files a/FreeFileSync/Build/Help/images/show-thumbnails.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/sync-settings-context.png b/FreeFileSync/Build/Help/images/sync-settings-context.png deleted file mode 100755 index e6b3d924..00000000 Binary files a/FreeFileSync/Build/Help/images/sync-settings-context.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/synchronization-settings.png b/FreeFileSync/Build/Help/images/synchronization-settings.png deleted file mode 100755 index ae2b4be3..00000000 Binary files a/FreeFileSync/Build/Help/images/synchronization-settings.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/synchronization-variant-double-click.png b/FreeFileSync/Build/Help/images/synchronization-variant-double-click.png deleted file mode 100755 index 0cd13905..00000000 Binary files a/FreeFileSync/Build/Help/images/synchronization-variant-double-click.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/two-folder-drop.png b/FreeFileSync/Build/Help/images/two-folder-drop.png deleted file mode 100755 index fe63d164..00000000 Binary files a/FreeFileSync/Build/Help/images/two-folder-drop.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/versioning.png b/FreeFileSync/Build/Help/images/versioning.png deleted file mode 100755 index 9d4260ca..00000000 Binary files a/FreeFileSync/Build/Help/images/versioning.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/view-filter-default.png b/FreeFileSync/Build/Help/images/view-filter-default.png deleted file mode 100755 index 1a725dec..00000000 Binary files a/FreeFileSync/Build/Help/images/view-filter-default.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/windows-scheduler.png b/FreeFileSync/Build/Help/images/windows-scheduler.png deleted file mode 100755 index 14788118..00000000 Binary files a/FreeFileSync/Build/Help/images/windows-scheduler.png and /dev/null differ diff --git a/FreeFileSync/Build/Help/images/xp-scheduler.png b/FreeFileSync/Build/Help/images/xp-scheduler.png deleted file mode 100755 index 4d2f5907..00000000 Binary files a/FreeFileSync/Build/Help/images/xp-scheduler.png and /dev/null differ diff --git a/FreeFileSync/Build/Languages/slovak.lng b/FreeFileSync/Build/Languages/slovak.lng deleted file mode 100755 index 4e0894dd..00000000 --- a/FreeFileSync/Build/Languages/slovak.lng +++ /dev/null @@ -1,2086 +0,0 @@ -
- Slovenčina - slavusec - sk_SK - flag_slovakia.png - 3 - n==1 ? 0 : n>=2 && n<=4 ? 1 : 2 -
- -No log entries - - -Published under the GNU General Public License: - - -Feedback and suggestions are welcome: - - -&Delete logs after x days: - - -Default log path: - - -Access timeout (in seconds): - - -Run a command: - - -&Override default log path: - - -Show &log - - -The server returned an error: - - -You may close this page now and continue with FreeFileSync. - - -Authentication failed. - - -Authentication completed. - - -Removing old file versions: - - -Searching for old file versions: - - -%x items - - -%x/sec - - -Quit %x - - -Hide %x - - -Hide Others - - -Show All - - -Services - - -Warnings: - - -Errors: - - -The name %x is used by more than one item in the folder. - - -Both sides have changed since last synchronization. -Od poslednej synchronizácie došlo ku zmene obidvoch strán. - -Cannot determine sync-direction: -Nie je možné určit smer synchronizácie: - -No change since last synchronization. -Žiadne zmeny od poslednej synchronizácie. - -The database entry is not in sync considering current settings. -Databázové položky nie sú podľa aktuálnej konfigurácie synchronné. - -Setting default synchronization directions: Old files will be overwritten with newer files. -Je nastavený predvolený spôsob synchronizácie: Staré súbory budú nahradené novými. - -Creating file %x -Vytváranie súboru %x - -Creating folder %x -Vytváranie priečinka %x - -Creating symbolic link %x -Vytváranie symbolického odkazu %x - -Moving file %x to the recycle bin -Presúvanie súboru %x do Koša - -Moving folder %x to the recycle bin -Presúvanie priečinka %x do Koša - -Moving symbolic link %x to the recycle bin -Presúvanie symbolického odkazu %x do Koša - -Deleting file %x -Zmazanie súboru %x - -Deleting folder %x -Zmazanie priečinka %x - -Deleting symbolic link %x -Zmazanie symbolického odkazu %x - -Checking recycle bin availability for folder %x... -Kontrola Koša pre priečinok %x... - -The recycle bin is not supported by the following folders. Deleted or overwritten files will not be able to be restored: -Premiestnenie do Koša nie je možné pri nasledujúcich priečinkoch. Zmazané alebo prepísané súbory nebude možné obnoviť: - -An exception occurred -Vyskytla sa chyba - -A directory path is expected after %x. -Očakávaná adresárová cesta po %x. - -Syntax error -Chyba syntaxu - -A left and a right directory path are expected after %x. -Bude očakávaná pravá a ľavá adresárová cesta po %x. - -Cannot find file %x. -Nie je možné nájsť súbor %x. - -Error -Chyba - -File %x does not contain a valid configuration. -Súbor %x neobsahuje platnú konfiguráciu. - -Unequal number of left and right directories specified. -Bol zistený nezhodný počet ľavých a pravých adresárov. - -The config file must not contain settings at directory pair level when directories are set via command line. -Konfiguračný súbor nesmie obsahovať nastavenia na úrovni adresárových párov pokiaľ je zadány cez príkazový riadok. - -Directories cannot be set for more than one configuration file. -Adresáre nemôžu obsahovať viac ako jeden konfiguračný súbor. - -Command line -Príkazový riadok - -Syntax: -Syntax: - -config files: -konfiguračné súbory: - -directory -adresár - -global config file: -globálny konfiguračný súbor: - -Any number of FreeFileSync "ffs_gui" and/or "ffs_batch" configuration files. -Ľubovolný počet konfiguračných súborov FreeFileSync typu "ffs_gui" a/alebo "ffs_batch". - -Any number of alternative directory pairs for at most one config file. -Ľubovolný počet alternatívnych dvojíc adresárov na aspoň jednu konfiguráciu. - -Open the selected configuration for editing only without executing it. -Otvoriť vybranú konfiguráciu na úpravu bez jej spustenia. - -Path to an alternate GlobalSettings.xml file. -Cesta k alternatívnemu súboru GlobalSettings.xml. - -Installation files are corrupted. Please reinstall FreeFileSync. -Inštalačný súbor je poškodený. Prosím preinštalujte FreeFileSync. - -Cannot load file %x. -Nie je možné načítať súbor %x. - -Cannot find the following folders: -Nie je možné nájsť následujúce priečinky: - -The following folders do not yet exist: -Nasledujúce priečinky ešte neexistujú: - -The folders are created automatically when needed. -V prípade potrewby sa priečinky vytvoria automaticky. - -Scanning: -Vyhľadávanie: - -Comparison finished: -Dokončilo sa porovnávanie: - - -1 item found -%x items found - - -Nájdená 1 položka -Nájdené %x položky -Nájdených %x položiek - - -File %x has an invalid date. -Súbor %x má chybný dátum. - -Date: -Dátum: - -Files have the same date but a different size. -Súbory majú rovnaký dátum, ale rozdielnú veľkosť. - -Size: -Veľkosť: - -Content comparison was skipped for excluded files. -Porovnanie obsahu bolo vynechané pre vybrané súbory. - -Items differ in attributes only -Položky se lišia iba v atribútoch - -Resolving symbolic link %x -Nasledovať odkaz symbolického zástupcu %x - -Comparing content of files %x -Porovnávanie obsahu súborov %x - -Generating file list... -Vytváranie zoznamu súborov... - -Fail-safe file copy -Bezpečné kopírovanie súborov - -Enabled -Povolené - -Disabled -Zakázané - -Copy locked files -Kopírovať zamknuté súbory - -Copy file access permissions -Kopírovať prístupové oprávnenie súborov - -File time tolerance -Časová tolerancia súboru - -Run with background priority -Vykonať s prioritou na pozadí - -Lock directories during sync -Uzamknúť priečinky počas synchronizácie - -Verify copied files -Overiť skopírované súbory - -Using non-default global settings: -Použiť ne-predvolené globálne nastavenia: - -A folder input field is empty. -Nie je zadaná vstupný priečinok. - -The corresponding folder will be considered as empty. -Odpovedajúci priečinok bude považovaný za prázdny. - -Exclude: -Vynechať: - -One base folder of a folder pair is contained in the other one. -Jeden zo základných párov priečinkov je v obsahu druhej. - -The folder should be excluded from synchronization via filter. -Priečinok by mal byť vynechaný zo synchronizácie pomocou filtra. - -Calculating sync directions... -Príprava adresárov synchronizácie... - -Out of memory. -Nedostatok pracovnej pamäti. - -Database file %x is incompatible. -Databázy súbor %x je nekompatibilný. - -Initial synchronization: -Prvá synchronizácia: - -Database file %x does not yet exist. -Databázový súbor %x neexistuje. - -Database file is corrupted: -Databázový súbor je poškodený: - -Cannot write file %x. -Nie je možné zapísať súbor %x. - -Cannot read file %x. -Nie je možné načítať súbor %x. - -The database files do not yet contain information about the last synchronization. -Databázový súbor ešte neobsahuje informácie o poslednej synchronizácií. - -Loading file %x... -Načítavanie súboru %x... - -Saving file %x... -Ukládanie súboru %x... - -Searching for folder %x... -Vyhľadávanie priečinka %x... - -Timeout while searching for folder %x. -Vypršal časový limit pre nájdenie priečinka %x. - -Cannot get process information. -Nie je možné získať informácie procesu. - -Cannot read file attributes of %x. -Nie je možné načítať atribúty súboru %x. - -Waiting while directory is locked: -Čakanie na uzamknutie adresára: - -Lock owner: -Vlastník uzamknutia: - -Detecting abandoned lock... -Preverovanie uzamknutia... - - -1 sec -%x sec - - -1 sekunda -%x sekundy -%x sekúnd - - -Item exists on left side only -Položky existujúce iba vľavo - -Item exists on right side only -Položky existujúce iba vpravo - -Left side is newer -Ľavá strana je novšia - -Right side is newer -Pravá strana je novšia - -Items have different content -Obsah položiek je rozdielny - -Both sides are equal -Obe strany sú zhodné - -Conflict/item cannot be categorized -Konflikty/položky ktoré nemožno zaradiť - -Copy new item to left -Kopírovať novú položku doľava - -Copy new item to right -Kopírovať novou položku doprava - -Delete left item -Zmazať položku naľavo - -Delete right item -Zmazať položku napravo - -Move file on left -Presunúť súbor naľavo - -Move file on right -Presunúť súbor napravo - -Update left item -Aktualizovať ľavú položku - -Update right item -Aktualizovať pravú položku - -Do nothing -Nerobiť nič - -Update attributes on left -Aktualizovať atribúty naľavo - -Update attributes on right -Aktualizovať atribúty napravo - -Items processed: -Spracovaných položiek: - -Items remaining: -Ostáva položiek: - -Total time: -Celkový čas: - -Warning -Varovanie - -Stopped -Zastavené - -Cleaning up log files: -Odstránenie log súborov: - -Error parsing file %x, row %y, column %z. -Chyba spracovania súboru %x: na riadku %y v stĺpci %z. - -Cannot set directory locks for the following folders: -Nie je možné nastaviť uzamknutie adresárov pre nasledujúce priečinky: - - -1 thread -%x threads - - -1 proces -%x procesy -%x procesov - - -Cannot read directory %x. -Nie je možné načítať adresár %x. - -Show in Explorer -Zobraziť v Prieskumníkovi - -Open with default application -Otvoriť predvolenou aplikáciou - -Browse directory -Prechádzať adresár - -Unable to connect to %x. -Nie je možné vytvoriť pripojenie k %x. - -Completed successfully -Dokončenie bolo úspešné - -Completed with warnings -Ukončené s varovaniami - -Completed with errors -Ukončené s chybami - -Cannot access the Volume Shadow Copy Service. -Nie je prístup k službe Tieňové kópie. - -Please run the 64-bit version of FreeFileSync to create shadow copies on this system. -Prosím spustite 64-bitovú verziu FreeFileSync, pre vytvorenie Tieň. kópie v tomto systéme. - -Cannot determine volume name for %x. ->Nie je možné zistiť názov jednotky pre %x. - -Volume name %x is not part of file path %y. -Názov disku %x nie je súčásťou cesty súboru %y. - -File time and size -Podľa času a veľkosti súboru - -File content -Podľa obsahu súboru - -File size -Podľa veľkosti súboru - -Two way -Obidve strany - -Mirror -Zrkadlenie - -Update -Aktualizácia - -Custom -Vlastné - -Multiple... -Rôzne... - -Cannot write file attributes of %x. -Nie je možné zapísať atribúty súboru %x. - -Cannot open file %x. -Nie je možné otvoriť súbor %x. - -%x and %y have different content. -%x a %y majú odlišný obsah. - -Data verification error: -Chyba verifikácie údajov: - -Moving file %x to %y -Presúvanie súboru %x do %y - -Moving folder %x to %y -Presúvanie priečinka %x do %y - -Moving symbolic link %x to %y -Presúvanie symbolického odkazu %x do %y - -Updating file %x -Aktualizácia súboru %x - -Updating symbolic link %x -Aktualizácia symbolického odkazu %x - -Verifying file %x -Verifikácia súboru %x - -Updating attributes of %x -Aktualizácia atribútov súboru %x - -Source item %x not found -Zdrojová položka %x sa nenašla - -Creating a Volume Shadow Copy for %x... -Vytváranie Tieňovej kópie zväzkov pre %x... - -Cannot find folder %x. -Nie je možné nájsť priečinok %x. - -Target folder %x already existing. -Cieľový priečinok %x už existuje. - -Target folder input field must not be empty. -Cieľový priečinok nesmie byť prázdny. - -Source folder %x not found. -Zdrojový priečinok %x nie je možné nájsť. - -Please enter a target folder for versioning. -Prosím zadajte cieľový priečinok pre verzovanie. - -The following items have unresolved conflicts and will not be synchronized: -Následujúce položky majú nevyriešené konflikty a nebudú synchronizované: - -The following folders are significantly different. Please check that the correct folders are selected for synchronization. -Nasledujúce priečinky sa signifikantne líšia. Prosím overte, či sú vybrané správne priečinky pre synchronizáciu. - -Not enough free disk space available in: -Nedostatok miesta na disku: - -Required: -Požadované: - -Available: -K dispozícií: - -Some files will be synchronized as part of multiple base folders. -Niektoré súbory budú synchronizované ako súčasť viacerých základných priečinkov. - -To avoid conflicts, set up exclude filters so that each updated file is considered by only one base folder. -Aby nedošlo ku konfliktom, je potrebné nastaviť filter tak, aby každý aktualiz. súbor mal iba jeden základný priečinok. - -Versioning folder: -Priečinok verzovania: - -Base folder: -Základný priečinok: - -The versioning folder is contained in a base folder. -Priečinok pre verzovanie je obsiahnutý v základnom priečinku. - -Synchronizing folder pair: -Synchronizácia dvojice priečinkov: - -Generating database... -Vytváranie databázy... - -Unable to create time stamp for versioning: -Nie je možné vytvoriť časovú značku verzovania: - - -Unexpected size of data stream. -Expected: %x bytes -Actual: %y bytes - - -+Neočakávana veľkosť dat. streamu. -Očakávané: %x b -Aktuálne: %y b - - -Cannot write permissions of %x. -Nie je možné zapísať oprávnenie pre %x. - -Operation not supported for different base folder types. -Operácia nie je podporovaná pre rozdielne typy základných priečinkov. - -Cannot move file %x to %y. -Nie je možné presunúť súbor %x do %y. - -Cannot copy symbolic link %x to %y. -Nie je možné kopírovať symbolický odkaz %x do %y. - -Error Code %x -Chybový kód %x - -Failed to get information about server %x. -Získanie informácií o servere %x bolo neúspešné. - -Cannot open directory %x. -Nie je možné otvoriť adresár %x. - -Cannot create directory %x. -Nie je možné vytvoriť adresár %x. - -Cannot delete file %x. -Nie je možné zmazať súbor %x. - -Cannot delete directory %x. -Nie je možné zmazať adresár %x. - -Cannot write modification time of %x. -Nie je možné zmeniť atribút času zmeny pre %x. - -Cannot determine final path for %x. -Nie je možné určiť konečnú cestu pre %x. - -Cannot resolve symbolic link %x. -Nie je možné nájsť odkaz zástupcu %x. - -Unable to move %x to the recycle bin. -Nie je možné presunúť %x do Koša. - -Unable to access %x. -Nie je možný prístup k %x. - -Cannot determine free disk space for %x. -Nie je možné zistiť voľné miesto na disku %x. - -Cannot find %x. -Nie je možné nájsť %x. - -Cannot find device %x. -Nie je možné nájsť zariadenie %x. - -Type of item %x is not supported: -Typ položky %x nie je podporovaný: - -Cannot delete symbolic link %x. -Nie je možné zmazať symbolický odkaz %x. - -Incorrect command line: -Neplatný príkaz: - -The server does not support authentication via %x. -Server nepodporuje overenie pomocou %x. - - -Operation timed out after 1 second. -Operation timed out after %x seconds. - - -Vypršal čas 1 sekundy pre dokončenie operácie. -Vypršal čas %x sekúnd pre dokončenie operácie. -Vypršal čas %x sekúnd pre dokončenie operácie. - - - -Cannot wait on more than 1 connection at a time. -Cannot wait on more than %x connections at a time. - - -Nie je možné čakať na viac ako 1 pripojenie naraz. -Nie je možné čakať na viac ako %x pripojenia naraz. -Nie je možné čakať na viac ako %x pripojení naraz. - - -Active connections: %x -Aktívne pripojenie: %x. - -Failed to open SFTP channel number %x. -Nie je možné otvoriť kanál číslo %x. - -Drag && drop -Pretiahni sem && pusť - -Select a folder -Vyberte priečinok - -&New -&Nový - -&Open... -&Otvoriť... - -Save &as... -Uložiť &ako... - -E&xit -U&končiť - -&File -&Súbor - -&View help -&Nápoveda (iba anglicky) - -&About -O &programe - -&Help -&Pomoc - -Usage: -Použitie: - -1. Select folders to watch. -1. Vyberte priečinok k sledovaniu. - -2. Enter a command line. -2. Zadajte príkazový riadok. - -3. Press 'Start'. -3. Stlačte 'Štart'. - -To get started just import a "ffs_batch" file. -Môžete načítať tiež konfiguračný súbor "ffs_batch". - -Folders to watch: -Sledované priečinka: - -Add folder -Pridať priečinok - -Remove folder -Odstrániť priečinok - -Browse -Prechádzať - -Idle time (in seconds): -Doba nečinnosti (v sekundách): - -Idle time between last detected change and execution of command -Doba nečinnosti medzi zistením poslednej zmeny a spustením príkazu - -Command line: -Príkazový riadok: - - -The command is triggered if: -- files or subfolders change -- new folders arrive (e.g. USB stick insert) - - -Príkaz bude spustení ak: -- dôjde k zmene v súboru alebo v priečinku -- je zistený nový priečinok (napr. vložením USB disku) - - -Start -Štart - -About -O programe - -Build: %x -Verzia: %x - -All files -Všetky súbory - -Automated Synchronization -Automatická synchronizácia - -The %x protocol does not support directory monitoring: -Protokol %x nepodporuje monitorovanie adresárov: - -Directory monitoring active -Sledovanie adresárov je aktivne - -Waiting until directory is available: -Čaká sa, kým nie je k dispozícii adresár: - -&Restore -&Obnoviť - -&Show error -&Zobraziť chybu - -&Quit -U&končiť - -&Retry -&Opakovať - - -1 byte -%x bytes - - -%x B -%x B -%x B - - -%x MB -%x MB - -%x KB -%x KB - -%x GB -%x GB - -Loading... -Načítanie... - -job name -názov úlohy - -System: Sleep -Systém: Uspať - -System: Shut down -Systém: Vypnúť - -Nothing to synchronize -Nie je čo synchronizovať - -Executing command %x -Spúšťací príkaz %x - -You can switch to FreeFileSync's main window to resolve this issue. -K odstráneniu tohoto problému sa môžete prepnúť do hlavného okna FreeFileSync. - -&Don't show this warning again -&Nezobrazovať znova toto varovanie - -&Ignore -&Ignorovať - -&Switch -&Prepnúť - -Switching to FreeFileSync's main window -Prepínanie do hlavného okna FreeFileSync - -Automatic retry -Automatické opakovanie - -Ignore &all -Ignorovať &všetky - -Retrying operation... -Opakovanie operácie... - -Serious Error -Závažná chyba - -Last session -Posledné sedenie - -Today -Dnes - - -1 day -%x days - - -1 deň -%x dni -%x dní - - -Name -Názov - -Last sync -Posledná synchronizácia - -Log -Záznam spracovania - -Folder -Priečinok - -Symlink -Symlink - -Full path -Plná cesta - -Relative path -Relatívna cesta - -Item name -Názov položky - -Size -Veľkosť - -Date -Dátum - -Extension -Prípona - -Category -Kategórie - -Action -Akcia - -Local comparison settings -Lokálne nastavenie porovnánia - -Local synchronization settings -Lokálne nastavenie synchronizácie - -Local filter -Lokálny filter - -Active -Zapnutý - -None -Žiadna - -Remove local settings -Zrušiť lokálne nastavenie - -Clear local filter -Vymazať lokálne nastavenie filtra - -Copy -Kopírovať - -Paste -Vložiť - -The selected folder %x cannot be used with FreeFileSync. -Vybraný priečinok %x nie je možné použíť s FreeFileSync. - -Please select a folder on a local file system, network or an MTP device. -Prosím vyberte priečinok v lokálnom súborovom systéme, sieti alebo multimediálnom zariadení. - -Defined by context of use -Definované podľa kontextu používania - -Requires FreeFileSync Donation Edition -Je potrebná FreeFileSync Donation Edition - -&Save -&Uložiť - -Save as &batch job... -Uložiť ako &dávku... - -Start &comparison -Spustiť &porovnanie - -C&omparison settings -Nastavenia p&orovnania - -&Filter settings -Nastavenia &filtra - -S&ynchronization settings -Nastavenia s&ynchronizácie - -Start &synchronization -Spustiť &synchronizáciu - -&Actions -&Akcie - -&Preferences -&Predvoľby... - -&Language -&Jazyk - -&Find... -&Hľadať... - -&Export file list... -&Exportovať zoznam súborov... - -&Reset layout -&Obnoviť rozloženie - -&Tools -&Nastavenie - -&Check for updates now -&Skontrolovať aktualizácie teraz - -Check &automatically once a week -Kontrolovať &automaticky raz týždenne - -Cancel -Zrušiť - -Compare -Porovnanie - -Synchronize -Synchronizácia - -Add folder pair -Pridať priečinok pre porovnanie - -Remove folder pair -Odstrániť dvojicu priečinkov - -Access online storage -Prístup k online úložisku - -Close search bar -Zavrieť hľadanie - -Find: -Hľadať: - -Match case -Rozlišovať malé a veľké písmená - -New -Nový - -Open... -Otvoriť... - -Save -Uložiť - -Save as... -Uložiť ako... - -View type: -Typ zobrazenia: - -Save as default -Uložiť ako predvolené - -Select view: -Výber zobrazenia: - -Statistics: -Štatistika: - -Number of files and folders that will be deleted -Počet súborov a priečinkov k zmazaniu - -Number of files that will be updated -Počet súborov k aktualizácií - -Number of files and folders that will be created -Počet súborov a priečinkov k vytvoreniu - -Total bytes to copy -Celkový objem kopírovaných údajov - -Arrange folder pair -Usporiadať dvojicu priečinkov - -Folder pair: -Dvojica priečinkov: - -Main settings: -Hlavné nastavenia: - -Use local settings: -Použiť lokálne nastavenie: - -Select a variant: -Výber varianty: - -Include &symbolic links: -Aj &symbolické odkazy: - -&Follow -&Nasledovať - -&Direct -&Direktne - -More information -Viac informácií - -&Ignore time shift [hh:mm] -&Ignorovať časový posun [hh:mm] - -List of file time offsets to ignore -Zoznam ignorovaných časových posunov súborov - -Example: -Príklad: - -Handle daylight saving time -Používať letný čas - -Ignore errors -Ignorovať chyby - -Retry count: -Počet opakovaní: - -Delay (in seconds): -Oneskorenie (v sekundách): - -Performance improvements: -Zlepšenie výkonu: - -Parallel file operations: -Paralélne operácie súborov: - -How to get best performance? -Ako získať najlepší výkon: - -Local settings: -Lokálne Nastavenia: - -Include: -Zahrnúť: - -Show examples -Ukázať príklady - -Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair. -Nastavte pravidlá filtra pre vynechanie niekterých súborov zo synchronizácie. Zadávajte cesty súborov relativne k odpovedajúcej dvojici priečinkov. - -File size: -Veľkosť súboru: - -Minimum: -Od: - -Maximum: -Do: - -Time span: -Časová doba: - -C&lear -Vy&mazať - -Detect moved files -Detekcia presunutých súborov - - -- Not supported by all file systems -- Requires and creates database files -- Detection not available for first sync - - -- Nie je podporované vštkými souborovými systémami -- Vyžaduje vytvorenie databázového súboru -- Detekcia rozdielov je dostupná až po prvej synchronizácií - - -Delete files: -Zmazanie súborov: - -&Recycle bin -&Kôš - -&Permanent -&Trvale - -&Versioning -&Verzovanie - -Move files to a user-defined folder -Presunúť súbory do uživateľom zadaného priečinka - -Naming convention: -Pomenovanie: - -Limit file versions: -Limit súborových verzií: - -Last x days: -Posledných x dní: - -OK -OK - -Enter your login details: -Zadajte prihlasovacie údaje: - -Connection type: -typ pripojenia: - -Server name or IP address: -Meno servera alebo jeho IP adresa: - -Port: -Port: - -Encryption: -Šifrovanie: - -&Disabled -&Zakázané - -&Explicit SSL/TLS -&Explicitné SSl/TLS - -Authentication: -Overenie: - -&Password -&Heslo - -&Key file -&Súbor kľúča - -&SSH agent -&SSH agent - -User name: -Uživateľské meno: - -Private key file: -Súbor súkromného kľúča: - -&Show password -&Zobraziť heslo - -Directory on server: -Adresár na servery: - -SFTP channels per connection: -SFTP kanály na pripojenie: - -Detect server limit -Zistiť limit serveru - -Select a directory on the server: -Výber adresára na servery: - -Select Folder -Výber priečinka - -Start synchronization now? -Spustiť synchronizáciu teraz? - -Variant: -Varianta: - -&Don't show this dialog again -Tento dialog už &nezobrazovať - -Items found: -Nájdených položiek: - -Time remaining: -Zostávajúci čas: - -Time elapsed: -Uplynulý čas: - -Bytes -Bytov - -Items -Položky - -Synchronizing... -Synchronizujem... - -Minimize to notification area -Minimalizovať do oznamovacej oblasti - -When finished: -Po dokončení: - -Auto-close -Automaticky zavrieť - -Close -Zavrieť - -&Pause -&Pauza - -Stop -Zastaviť - -Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x -Vytvorí dávkový súbor pre automatickú synchronizáciu. Ku spusteniu dávky jednoducho pokliknite na vytvorený súbor alebo využite plánovač úloh vašeho systému: %x - -Progress dialog: -Dialóg procesu: - -Run minimized -Spustiť minimalizované - -&Show error dialog -&Zobraziť chybový dialóg - -Show pop-up on errors or warnings -Zobraziť hlásenie pri chybe alebo varovaní - -&Cancel -&Zrušiť - -Stop synchronization at first error -Ukončiť synchronizáciu pri prvej chybe - -How can I schedule a batch job? -Ako nastaviť spustenie dávky v Plánovači? - -&Keep relative paths -&Zachovať relatívnu cesty - -&Overwrite existing files -&Prepísať existujúce súbory - -The following settings are used for all synchronization jobs. -Toto nastavenie je platné pre všetky synchronizačné úlohy. - - -Copy to a temporary file (*.ffs_tmp) before overwriting target. -This guarantees a consistent state even in case of a serious error. - -Kopírovať najprv do dočasného súboru (*.ffs_tmp), pred prepisom cieľa. Tento postup zaisťuje bezpečný chod aj v prípade závažnej chyby. - -recommended -doporučené - -Copy shared or locked files using the Volume Shadow Copy Service. -Kopírovať zdielané alebo zamknuté súbory pomocou služby Tieňové kópie zväzkov. - -requires administrator rights -vyžadujú sa práva správcu - -Transfer file and folder permissions. -Preniesť prístupové oprávnenie súborov a priečinkov. - -Show all permanently hidden dialogs and warning messages again -Zobraziť znovu všetky trvale skryté dialógy a varovné hlásenia - -Customize context menu: -Prispôsobiť kontextovú ponuku: - -Description -Popis - -&Default -&Predvolené - -Home page -Domovská stránka - -FreeFileSync Forum -FreeFileSync fórum - -Email -Email - -If you like FreeFileSync: -Pokiaľ sa Vám FreeFileSync páči: - -Support with a donation -Podporiť darom - -The auto updater was disabled by the administrator. -Automatická aktualizácia bola zakázaná správcom. - -Donation details -Detajly darovania - -Source code written in C++ using: -Zdrojový kód bol napísaný kompletne v C++ pomocou: - -Many thanks for localization: -Poďakovanie za preklad FreeFileSync: - -Activate the FreeFileSync Donation Edition by one of the following methods: -aktivovať FreeFileSync Donation Edition pomocou jednej z nasledujúcich metód: - -1. Activate via internet now: -1. Aktivovať teraz cez internet: - -Activate online -Aktivovať online - -2. Retrieve an offline activation key from the following URL: -Získať offline aktivačný kľúč z URL adresy: - -&Copy to clipboard -&Skopírovať do schránky - -Enter activation key: -Zadať aktivačný kľúč: - -Activate offline -Aktivovať offline - -Highlight configurations that have not been run for more than the following number of days: -Zvýrazniť konfigurácie, ktoré neboli vykonané viac ako nasledujúci počet dní: - -Synchronization Settings -Nastavenia synchronizácie - -Access Online Storage -Prístup k Online Storage - -Save as a Batch Job -Uložiť ako Batch Job - -Delete Items -Zmazať položky - -Copy Items -Kopírovať položky - -Options -Nastavenie programu - -Select Time Span -Zadať časové rozmedzie - -Highlight Configurations -Zvýrazniť konfigurácie - -Info -Info - -Select all -Vybrať všetko - -&Options -Nastavenie &programu - -Main Bar -Hlavná lišta - -Folder Pairs -Priečinkové dvojice - -Find -Hľadať - -View Settings -Nastavenie zobrazenia - -Configuration -Konfigurácia - -Overview -Prehľad - -Swap sides -Zámena strán - -Show "%x" -Zobraziť "%x" - -&Show details -&Zobraziť podrobnosti - -FreeFileSync %x is available! -Je dostupná FreeFileSync verzia %x! - -Local path not available for %x. -Lokálna cesta pre %x nie je k dispozícií. - -Confirm -Potvrdiť - - -Do you really want to execute the command %y for one item? -Do you really want to execute the command %y for %x items? - - -Naozaj chcete vykonať príkaz %y pre 1 položku? -Naozaj chcete vykonať príkaz %y pre %x položky? -Naozaj chcete vykonať príkaz %y pro %x položiek? - - -&Execute -&Spustiť - - -1 directory -%x directories - - -1 adresár -%x adresáre -%x adresárov - - - -1 file -%x files - - -1 súbor -%x súbory -%x súborov - - - -Showing %y of 1 row -Showing %y of %x rows - - -Zobrazenie %y z 1 riadku -Zobrazenie %y z %x riadky -Zobrazenie %y z %x riadkov - - -Set direction: -Zadať smer: - -multiple selection -viacnásobný výber - -Include via filter: -Zahrnúť pomocou filtra: - -Exclude via filter: -Vynechať pomocou filtra: - -Include temporarily -Pridať dočasne - -Exclude temporarily -Vynechať dočasne - -&Copy to... -&Kopírovať do... - -&Delete -&Zmazať - -Include all -Zahrnúť všetko - -Exclude all -Vynechať všetko - -Show icons: -Zobraziť ikony: - -Small -Malé - -Medium -Stredné - -Large -Veľké - -Select time span... -Zadajte časové rozmedzie... - -Donation Edition -Donation Edition - -Folder Comparison and Synchronization -Porovnanie a synchronizácia priečinkov - -Configuration saved -Konfigurácia uložená - -FreeFileSync batch -FreeFileSync dávka - -Do you want to save changes to %x? -Uložiť zmeny do %x? - -Never save &changes -Nikdy &neukladať zmeny - -Do&n't save -&Neukladať - -Hide configuration -Skryť konfiguráciu - -Highlight... -Zvýrazniť... - -Clear filter -Vymazať filter - -Show files that exist on left side only -Zobraziť súbory existujúce iba vľavo - -Show files that exist on right side only -Zobraziť súbory existujúce iba vpravo - -Show files that are newer on left -Zobraziť novšie súbory vľavo - -Show files that are newer on right -Zobraziť novšie súbory vpravo - -Show files that are equal -Zobraziť rovnaké súbory - -Show files that are different -Zobraziť rozdielne súbory - -Show conflicts -Zobraziť konflikty - -Show files that will be created on the left side -Zobraziť súbory, ktoré budú vľavo vytvorené - -Show files that will be created on the right side -Zobraziť súbory, ktoré budú vpravo vytvorené - -Show files that will be deleted on the left side -Zobraziť súbory, ktoré budú vľavo zmazané - -Show files that will be deleted on the right side -Zobraziť súbory, ktoré budú vpravo zmazané - -Show files that will be updated on the left side -Zobraziť súbory, ktoré budú vľavo aktualizované - -Show files that will be updated on the right side -Zobraziť súbory, ktoré budú vpravo aktualizované - -Show files that won't be copied -Zobraziť súbory, ktoré nebudú kopírované - -Show filtered or temporarily excluded files -Zobraziť filtrované alebo dočasne vynechané súbory - -Filter -Filter - -All files are in sync -Všetky súbory sú synchronizované - -Cannot find %x -Nie je možné nájsť %x - -Move up -Dohora - -Move down -Dodola - -Comma-separated values -Hodnoty oddelené čiarkami - -File list exported -Zoznam súborov bol exportovaný - -Searching for program updates... -Hľadanie aktualizácií programu... - -Paused -Pauza - -Stop requested... -Zastavenie požiadavky... - -Initializing... -Inicializácia... - -Scanning... -Vyhľadávanie... - -Comparing content... -Porovnávanie obsahu... - -&Continue -&Pokračovať - -Progress -Priebeh - -Thank you, %x, for your donation and support! -Ďakujem, %x, za dar a podporu! - -Connections -Pripojenia - -Recommended range: -Odporúčaný rozsah: - -Password: -Heslo: - -Key password: -Heslo kľúča: - -Please enter a file path. -Prosím zadajte cestu k súboru. - - -Copy the following item to another folder? -Copy the following %x items to another folder? - - -Kopírovať následujúcu položku do iného priečinka? -Kopírovať následujúce %x položky do iného priečinka? -Kopírovať následujúcich %x položiek do iného priečinka? - - -Please enter a target folder. -Prosím zadajte cieľový priečinok. - - -Do you really want to move the following item to the recycle bin? -Do you really want to move the following %x items to the recycle bin? - - -Naozaj chcete presunúť následujúcu položku do Koša? -Naozaj chcete presunúť následujúce %x položky do Koša? -Naozaj chcete presunúť následujúcich %x položiek do Koša? - - -Move -Presunúť - - -Do you really want to delete the following item? -Do you really want to delete the following %x items? - - -Naozaj chcete zmazať následujúcu položku? -Naozaj chcete zmazať následujúce %x položky? -Naozaj chcete zmazať následujúcich %x položiek? - - -Copy DACL, SACL, Owner, Group -Kopírovať DACL, SACL, Owner, Group - -Integrate external applications into context menu. The following macros are available: -Integrácia externej aplikácie do kontextovéj ponuky. K dispozici jsou následující makrá: - -Full file or folder path -Úplná cesta k súboru alebo priečinku - -Parent folder path -Cesta k nadriadenému priečinku - -Temporary local copy for SFTP and MTP storage -Dočasná lokálna kópia pre SFTP a MTP úložisko - -Parameters for opposite side -Parametre pre protiľahlú stranu - -Show hidden dialogs again -Znovu zobraziť skryté dialógy - -All dialogs shown -Zobrazenie všetkých dialógov - -Downloading update... -Sťahovanie aktualizácie... - -Identify equal files by comparing modification time and size. -Rozpoznať rovnaké súbory porovnaním ich času úpravy a veľkosti. - -Identify equal files by comparing the file content. -Rozpoznať rovnaké súbory porovnaním ich obsahu. - -Identify equal files by comparing their file size. -Rozpoznať rovnaké súbory porovnaním ich veľkosti. - -Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database. -Rozpoznať a vykonať zmeny na oboch stranách. Odstránené, presunuté alebo premenované súbory a konflikty budú detekované automaticky pomocou databázy. - -Create a mirror backup of the left folder by adapting the right folder to match. -Vytvoriť zrkadlovú kópiu ľavého priečinka tak, aby po synchronizácií pravého priečinka presne odpovedal ľavému. - -Copy new and updated files to the right folder. -Kopírovať nové a aktualizované súbory do pravého priečinka. - -Configure your own synchronization rules. -Nastavenie vlastných pravidiel synchronizácie. - -Comparison -Porovnanie - -Synchronization -Synchronizácia - -This week -Tento týždeň - -This month -Tento mesiac - -This year -Tento rok - -Byte -Byte - -KB -KB - -MB -MB - -Retain deleted and overwritten files in the recycle bin -Ponechať zmazané a prepísané sobory v Koši - -Delete and overwrite files permanently -Zmazať a prepísať súbory natrvalo - -Replace -Nahradiť - -Move files and replace if existing -Presunúť a nahradiť súbory pokiaľ už existujú - -Time stamp -Časová značka - -Move files into a time-stamped subfolder -Presunúť súbory do podpriečinka s časovou značkou - -File -Súbor - -Append a time stamp to each file name -Pridať časovú značku ku každému názvu súboru - -On completion: -Po dokončení: - -On errors: -Pri chybách: - -On success: -Po dokončení: - -Main config -Hlavná konfigurácia - -empty -prázdne - -Leave as unresolved conflict -Ponechať ako nevyriešený konflikt - -YYYY-MM-DD hhmmss -RRRR-MM-DD hhmmss - -Minimum version count must be smaller than maximum count. -Minimálny počet verzií musí byť menší ako maximálny počet. - -Files -Súbory - -Percentage -Percentný podiel - -Failed to retrieve update information. -Získanie informácie o aktualizácií bolo neúspešné. - -Automatic updates: -Automatická aktualizácia: - -Check for Program Updates -Hľadanie aktualizácií programu - -Auto-update now or download manually from the FreeFileSync home page? -Automaticky aktualizovať teraz alebo ručne z domovskej stránky FreeFileSync? - -&Auto-update -&Automatická aktualizácia - -&Home page -&Domovská stránka - -Download now? -Stiahúť teraz? - -&Download -&Sťahovannie - -FreeFileSync is up to date. -FreeFileSync je aktuálny. - -Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now? -Nie je možné nájsť online číslo verzie FreeFileSync. pravdepodobne je k dispozícií novšia verzia. Overiť teraz manuálne? - -&Check -&Kontrola - -Consistency check failed for %x. -Overenie konzistencie pre %x zlyhalo. - -Installation was registered on a different operating system. -Inštalácia bola registrovaná na inom operačnom systéme. - -Failed to activate FreeFileSync Donation Edition. -aktivácia FreeFileSync Donation Edition bola neúspešná. - -Incorrect activation key. -Neplatný aktivačný kľúč. - -Unable to register to receive system messages. -Nepodarilo sa registrovať k odberu systémových správ. - -The %x installation option is only available in the FreeFileSync Donation Edition. -Inštalačná možnosť %x je dostupná iba pri FreeFileSync Donation Edition. - -Cannot find system function %x. -Nie je možné nájsť systémovú funkciu %x. - -Unable to register device notifications for %x. -Nepodarilo sa registrovať správy zaiadenia %x. - -Cannot monitor directory %x. -Nie je možné nastaviť monitorovanie adresára %x. - -The file is locked by another process: -Súbor je uzamknutý iným procesom: - -Cannot read security context of %x. -Nie je možné načítať prístupové práva pre %x. - -Cannot write security context of %x. -Nie je možné zapísať prístupové práva pre %x. - -Cannot read permissions of %x. -Nie je možné načítať oprávnenie pre %x. - -Cannot copy permissions from %x to %y. -Nie je možné kopírovať oprávnenie z %x do %y. - -%x is not a regular directory name. -%x nie je platným názvom adresára. - -Cannot copy file %x to %y. -Nie je možné kopírovať súbor %x do %y. - -Cannot copy attributes from %x to %y. -Nie je možné kopírovať atribúty z %x do %y. - -%x TB -%x TB - -%x PB -%x PB - - -1 min -%x min - - -1 minúta -%x minúty -%x minút - - - -1 hour -%x hours - - -1 hodina -%x hodiny -%x hodín - - -Cannot set privilege %x. -Nie je možné nastaviť práva pre %x. - -Unable to suspend system sleep mode. -Nie je možné pozastaviť Režím spánku. - -Cannot change process I/O priorities. -Nie je možné nastaviť I/O priority procesu. - -Unable to shut down the system. -Systém sa nedá vypnúť. - -Checking recycle bin failed for folder %x. -Zlyhala kontrola Koša pre priečinok %x. - -Prepare installation -Príprava inštalácie - -Choose which components you want to install. -Vyberte komponenty k inštalácií. - -Select installation type: -Vyberte typ inštalácie: - -Local -Lokálne - -Portable -Prenosná - -Save settings in %x -Uložiť nastavenia do %x - -Register FreeFileSync file extensions -Zaregistruje prípony súborov FreeFileSync - -Create Explorer context menu entries -Vytvoriť položky v kontextovej pnuke Prieskumníka - -Save settings in installation directory -Uložiť nastavenia do zložky inštalácie - -Do not write to Registry -Nezapisovať do Registrov - -Just copy the files -Skopíruje iba súbory - -Choose a directory for installation: -Vyberte zložku pre inštaláciu: - -Create shortcuts: -Vytvoriť zástupcu: - -Desktop -Plocha - -Start Menu -Ponuka Štart - -Send To -Odoslať kam - -Registering FreeFileSync file extensions -Zaregistrovať príponu súborov FreeFileSync - -Unregistering FreeFileSync file extensions -Odregistrovať príponu súborov FreeFileSync - -FreeFileSync Configuration -FreeFileSync konfigurácia - -FreeFileSync Batch File -Dávk. súbor FreeFileSync - -FreeFileSync Synchronization Database -Synchronizačná databáza FreeFileSync - -RealTimeSync Configuration -Konfigurácia RealTimeSync - -Edit with FreeFileSync -Upraviť vo FreeFileSync - -Instead of an ad, here's an animal. -Namiesto reklamy je tu obrázok zvieraťa. - -The FreeFileSync portable version cannot install into a subfolder of %x. -Prenosnú verziu FreeFileSync nie je možné inštalovať do podpriečinka %x. - -Please choose the local installation type or select a different folder for installation. -Prosím zvoľte lokálny typ inštalácie alebo vyberte iný priečinok pre inštaláciu. - -Get the Donation Edition with bonus features and help keep FreeFileSync ad-free. -Získajte Donation Edition s bonusovými funkciami a pomôžte, aby ostal FreeFileSync bez reklami. - diff --git a/FreeFileSync/Build/Languages/turkish.lng b/FreeFileSync/Build/Languages/turkish.lng deleted file mode 100755 index 2b1e70a7..00000000 --- a/FreeFileSync/Build/Languages/turkish.lng +++ /dev/null @@ -1,2091 +0,0 @@ -
- Türkçe - Kaya Zeren - tr_TR - flag_turkey.png - 2 - n == 1 ? 0 : 1 -
- -Both sides have changed since last synchronization. -Son eşitlemeden bu yana iki tarafında içeriği değişmiş. - -Cannot determine sync-direction: -Eşitleme yönü belirlenemedi: - -No change since last synchronization. -Son eşitlemeden bu yana bir değişiklik olmamış. - -The database entry is not in sync considering current settings. -Geçerli kayıtlar ile veritabanı kaydı aynı değil. - -Setting default synchronization directions: Old files will be overwritten with newer files. -Varsayılan eşitleme yönleri ayarlanıyor: Yeni dosyalar eski dosyaların üzerine yazılacak. - -Creating file %x -%x dosyası oluşturuluyor - -Creating folder %x -%x klasörü oluşturuluyor - -Creating symbolic link %x -%x sembolik bağlantısı oluşturuluyor - -Moving file %x to the recycle bin -%x dosyası Geri Dönüşüm Kutusuna atılıyor - -Moving folder %x to the recycle bin -%x klasörü Geri Dönüşüm Kutusuna atılıyor - -Moving symbolic link %x to the recycle bin -%x simgesel bağlantısı Geri Dönüşüm Kutusuna atılıyor - -Deleting file %x -%x dosyası siliniyor - -Deleting folder %x -%x klasörü siliniyor - -Deleting symbolic link %x -%x sembolik bağlantısı siliniyor - -Checking recycle bin availability for folder %x... -%x klasörü için Geri Dönüşüm Kutusu kullanılabilir mi diye bakılıyor... - -The recycle bin is not supported by the following folders. Deleted or overwritten files will not be able to be restored: -Geri Dönüşüm Kutusu şu klasörler tarafından desteklenmiyor. Silinmiş ya da üzerine yazılmış klasörler geri yüklenemez: - -An exception occurred -Olağan dışı bir durumla karşılaşıldı - -A left and a right directory path are expected after %x. -%x ardından sol ve sağ klasör belirtilmelidir. - -Syntax error -Yazım hatası - -Cannot find file %x. -%x dosyası bulunamadı. - -Error -Sorun - -File %x does not contain a valid configuration. -%x dosyası geçerli yapılandırma bilgilerini içermiyor. - -The config file must not contain settings at directory pair level when directories are set via command line. -Klasörler komut satırından seçildiği zaman, yapılandırma dosyasında klasör çifti düzeyinde ayarlar bulunmamalıdır. - -Directories cannot be set for more than one configuration file. -Klasörler birden fazla yapılandırma dosyasında kullanılamaz. - -Command line -Komut Satırı - -Syntax: -Yazım: - -config files: -yapılandırma dosyaları: - -directory -klasör - -global config file: -genel yapılandırma dosyası: - -Any number of FreeFileSync "ffs_gui" and/or "ffs_batch" configuration files. -FreeFileSync "ffs_gui" ya da "ffs_batch" yapılandırma dosyalarının sayısı. - -Any number of alternative directory pairs for at most one config file. -En fazla bir yapılandırma dosyası için herhangi bir sayıda alternatif klasör çifti. - -Open the selected configuration for editing only, without executing it. -Seçilmiş yapılandırmayı yürütmeden yalnız düzenlemek için açar. - -Path to an alternate GlobalSettings.xml file. -Alternatif GlobalSettings.xml dosyasının yolu. - -Installation files are corrupted. Please reinstall FreeFileSync. -Kurulum dosyaları bozulmuş. Lütfen FreeFileSync uygulamasını yeniden kurun. - -Cannot load file %x. -%x dosyası yüklenemedi. - -Cannot find the following folders: -Aşağıdaki klasörler bulunamadı: - -The following folders do not yet exist: -Şu klasörler bulunamadı: - -The folders are created automatically when needed. -Klasörler gerektiğinde otomatik olarak oluşturulur. - -The following folder paths differ in case. Please use a single form in order to avoid duplicate accesses. - - -Scanning: -Taranıyor: - -Comparison finished: -Karşılaştırma tamamlandı: - - -1 item found -%x items found - - -1 öge bulundu -%x öge bulundu - - -File %x has an invalid date. -%x dosyasının tarihi geçersiz. - -Date: -Tarih: - -Files have the same date but a different size. -Dosyaların tarihleri aynı ancak boyutları farklı. - -Size: -Boyut: - -Content comparison was skipped for excluded files. -Katılmayan dosyalar için içerik karşılaştırması atlandı. - -Items differ in attributes only -Yalnız öznitelikleri farklı olan ögeler - -The name %x is used by more than one item in the folder. -%x adı klasördeki birden fazla öge için kullanılmış. - -Resolving symbolic link %x -%x sembolik bağlantısı çözümleniyor - -Comparing content of files %x -%x dosyalarının içeriği karşılaştırılıyor - -Generating file list... -Dosya listesi oluşturuluyor... - -Fail-safe file copy -Dosyalar Sorunsuz Kopyalansın - -Enabled -Etkin - -Disabled -Devre Dışı - -Copy locked files -Kilitli Dosyalar da Kopyalansın - -Copy file access permissions -Dosya Erişim İzinleri de Kopyalansın - -File time tolerance -Yok sayılacak dosya zamanı farkı - -Run with background priority -Artalan önceliği ile çalışsın - -Lock directories during sync -Klasörler eşitleme sırasında kilitlensin - -Verify copied files -Kopyalanmış dosyalar doğrulansın - -Using non-default global settings: -Varsayılan olmayan genel ayarlar kullanılıyor: - -A folder input field is empty. -Bir klasör giriş alanı boş. - -The corresponding folder will be considered as empty. -Karşıdaki klasör boş olarak kabul edilecek. - -Exclude: -Katılmayacak Ögeler: - -One base folder of a folder pair is contained in the other one. -Klasör çiftindeki temel bir klasör diğerinin içinde bulunuyor. - -The folder should be excluded from synchronization via filter. -Süzgeç kullanılarak klasör eşitlemeye katılmamalı. - -Calculating sync directions... -Eşitleme yönleri hesaplanıyor... - -Out of memory. -Bellek yetersiz. - -Database file %x is incompatible. -%x veritabanı dosyası uyumsuz. - -Initial synchronization: -Başlangıç eşitlemesi: - -Database file %x does not yet exist. -%x veritabanı dosyası henüz yok. - -Database file is corrupted: -Veritabanı dosyası bozulmuş: - -Cannot write file %x. -%x dosyası yazılamadı. - -Cannot read file %x. -%x dosyası okunamadı. - -The database files do not yet contain information about the last synchronization. -Veritabanı dosyalarında henüz son eşitleme bilgileri yok. - -Loading file %x... -%x dosyaları yükleniyor... - -Saving file %x... -%x dosyası kaydediliyor... - -Searching for folder %x... -%x klasörü aranıyor... - -Timeout while searching for folder %x. -%x klasöründeki arama işlemi zaman aşımına uğradı. - -Cannot get process information. -İşlem bilgisi alınamadı. - -Cannot read file attributes of %x. -%x dosyasının öznitelikleri okunamadı. - -Waiting while directory is locked: -Klasör kilitli olduğundan bekleniyor: - -Lock owner: -Kilitleyen: - -Detecting abandoned lock... -Kaldırılmış kilit algılanıyor... - - -1 sec -%x sec - - -1 saniye -%x saniye - - -Item exists on left side only -Yalnız solda bulunan ögeler - -Item exists on right side only -Yalnız sağda bulunan ögeler - -Left side is newer -Soldaki daha yeni ögeler - -Right side is newer -Sağdaki daha yeni ögeler - -Items have different content -İçeriği farklı ögeler - -Both sides are equal -İki taraf eşit - -Conflict/item cannot be categorized -Uyuşmayan/sınıflanamayan ögeler - -Copy new item to left -Yeni öge sola kopyalansın - -Copy new item to right -Yeni öge sağa kopyalansın - -Delete left item -Soldaki öge silinsin - -Delete right item -Sağdaki öge silinsin - -Move file on left -Soldaki dosya taşınsın - -Move file on right -Sağdaki dosya taşınsın - -Update left item -Soldaki öge güncellensin - -Update right item -Sağdaki öge güncellensin - -Do nothing -Hiçbir işlem yapılmasın - -Update attributes on left -Soldaki öznitelikler güncellensin - -Update attributes on right -Sağdaki öznitelikler güncellensin - -Errors: -Hatalar: - -Warnings: -Uyarılar: - -Items processed: -İşlenen öge: - -Items remaining: -Kalan öge: - -Total time: -Toplam süre: - -Warning -Uyarı - -Stopped -Durduruldu - -Cleaning up log files: -Günlük dosyaları temizleniyor: - -Error parsing file %x, row %y, column %z. -%x dosyası işlenirken sorun çıktı, satır %y, sütun %z. - -Services -Hizmetler - -Show All -Tümünü Görüntüle - -Hide Others -Diğerlerini Gizle - -Hide %x -%x Ögesini Gizle - -Quit %x -%x Uygulamasından Çık - -Cannot set directory locks for the following folders: -Şu klasörler kilitlenemedi: - - -1 thread -%x threads - - -1 iş parçacığı -%x iş parçacığı - - -Cannot read directory %x. -%x klasörü okunamadı. - -%x/sec -%x/saniye - -%x items -%x öge - -Show in Explorer -Tarayıcıda Görüntüle - -Open with default application -Varsayılan Uygulama ile Aç - -Browse directory -Klasöre Gözat - -Unable to connect to %x. -%x üzerine bağlanılamadı. - -Completed successfully -Tamamlandı - -Completed with warnings -Uyarılar ile tamamlandı - -Completed with errors -Sorunlar ile tamamlandı - -Cannot access the Volume Shadow Copy Service. -Birim Gölge Hizmetine erişilemiyor. - -Please run the 64-bit version of FreeFileSync to create shadow copies on this system. -Lütfen bu sistemde gölge kopyalar oluşturmak için FreeFileSync uygulamasının 64 bit sürümünü kullanın. - -Volume name %x is not part of file path %y. -%x birim adı %y dosya yolunun bir parçası değil. - -File time and size -Tarih ve Saate Göre - -File content -İçeriğe Göre - -File size -Boyuta Göre - -Two way -Çift Yönlü - -Mirror -Yansıtma - -Update -Güncelleme - -Custom -Özel - -Multiple... -Çoklu... - -Cannot write file attributes of %x. -%x dosya öznitelikleri yazılamadı. - -Cannot open file %x. -%x dosyası açılamadı. - -%x and %y have different content. -%x ve %y farklı içeriklere sahip. - -Data verification error: -Veri doğrulama sorunu: - -Moving file %x to %y -%x dosyası %y içine taşınıyor - -Moving folder %x to %y -%x klasörü %y içine taşınıyor - -Moving symbolic link %x to %y -%x sembolik bağlantısı %y içine taşınıyor - -Updating file %x -%x dosyası güncelleniyor - -Updating symbolic link %x -%x sembolik bağlantısı güncelleniyor - -Verifying file %x -%x dosyası doğrulanıyor - -Updating attributes of %x -%x öznitelikleri güncelleniyor - -Source item %x not found -%x kaynak ögesi bulunamadı - -Cannot move file %x to %y. -%x dosyası %y hedefine taşınamadı. - -Parent folder %x is not existing. - - -The name %x is already used by another item. - - -Cannot copy file %x to %y. -%x dosyası %y olarak kopyalanamadı. - -Cannot copy symbolic link %x to %y. -%x sembolik bağlantısı %y hedefine kopyalanamadı. - -Creating a Volume Shadow Copy for %x... -%x için Birim Gölge Hizmeti oluşturuluyor... - -Cannot find folder %x. -%x klasörü bulunamadı. - -Target folder %x already existing. -%x hedef klasörü zaten var. - -Target folder input field must not be empty. -Hedef klasör giriş alanı boş olmamalı. - -Source folder %x not found. -%x kaynak klasörü bulunamadı. - -Please enter a target folder for versioning. -Sürüm izlemesinde kullanılacak bir hedef klasör yazın. - -The following items have unresolved conflicts and will not be synchronized: -Uyuşmazlığı çözümlenmemiş şu ögeler eşitlenmeyecek: - -Folder pair: -Klasör Çifti: - -The following folders are significantly different. Please check that the correct folders are selected for synchronization. -Şu klasörler birbirinden çok farklı. Lütfen eşitleme için doğru klasörleri seçtiğinizden emin olun. - -Not enough free disk space available in: -Şurada yeterli disk alanı yok: - -Required: -Zorunlu: - -Available: -Kullanılabilir: - -Some files will be synchronized as part of multiple base folders. -Bazı dosyalar çoklu temel klasörlerin bir parçası olarak eşitlenecek. - -To avoid conflicts, set up exclude filters so that each updated file is considered by only one base folder. -Çakışmaları engellemek için katmama süzgeçleri ayarlayarak güncellenen her dosyanın yalnız bir temel klasör olarak değerlendirilmesini sağlayın. - -Versioning folder: -Sürüm klasörü: - -Base folder: -Temel klasör: - -The versioning folder is contained in a base folder. -Sürümlendirme klasörü bir temel klasör içinde bulunuyor. - -Synchronizing folder pair: -Eşitlenen klasör çifti: - -Generating database... -Veritabanı oluşturuluyor... - -Searching for old file versions: -Önceki dosya sürümleri aranıyor: - -Removing old file versions: -Önceki dosya sürümleri siliniyor: - -Unable to create time stamp for versioning: -Sürümlendirme için zaman damgası oluşturulamadı: - - -Unexpected size of data stream. -Expected: %x bytes -Actual: %y bytes - - -Veri akışının boyutu beklenenden farklı. -Beklenen: %x bayt -Gerçekleşen: %y bayt - - -Cannot write permissions of %x. -%x izinleri yazılamadı. - -Operation not supported between different devices. - - -Cannot delete file %x. -%x dosyası silinemedi. - -Cannot delete symbolic link %x. -%x sembolik bağlantısı silinemedi. - -Cannot delete directory %x. -%x klasörü silinemedi. - -Error Code %x -Hata Kodu %x - -Failed to get information about server %x. -%x sunucusu hakkında bilgi alınamadı. - -Cannot open directory %x. -%x klasörü açılamadı. - -Cannot write modification time of %x. -%x dosyasının değişiklik tarihi yazılamadı. - -Cannot determine final path for %x. -%x dosyasının son yolu belirlenemedi. - -Cannot create directory %x. -%x klasörü oluşturulamadı. - -Operation not supported by device. - - -Cannot resolve symbolic link %x. -%x sembolik bağlantısı çözümlenemedi. - -Unable to move %x to the recycle bin. -%x geri dönüşüm kutusuna atılamadı. - -Unable to access %x. -%x üzerine erişilemedi. - -Authentication completed. -Kimlik doğrulandı. - -You may close this page now and continue with FreeFileSync. -Bu sayfayı kapatıp FreeFileSync ile çalışmayı sürdürebilirsiniz. - -Authentication failed. -Kimlik doğrulanamadı. - -Unable to disconnect from %x. - - -Cannot monitor directory %x. -%x klasörü izlenemiyor. - -Cannot find %x. -%x bulunamadı. - -Please authorize access to user account %x. - - -Cannot determine free disk space for %x. -%x için boş disk alanı belirlenemedi. - -Cannot find device %x. -%x aygıtı bulunamadı. - -Unsupported item type. - - -Incorrect command line: -Satırdaki komut geçersiz: - -The server does not support authentication via %x. -Sunucu %x üzerinden kimlik doğrulamasını desteklemiyor. - - -Operation timed out after 1 second. -Operation timed out after %x seconds. - - -İşlem 1 saniye sonunda zaman aşımına uğradı. -İşlem %x saniye sonunda zaman aşımına uğradı. - - - -Cannot wait on more than 1 connection at a time. -Cannot wait on more than %x connections at a time. - - -Aynı anda 1 taneden fazla bağlantı beklenemez. -Aynı anda %x taneden fazla bağlantı beklenemez. - - -Active connections: %x -Etkin bağlantı sayısı: %x - -Failed to open SFTP channel number %x. -%x SFTP kanal numarası açılamadı. - -Drag && drop -Dosyaları sürükleyip buraya bırakın - -Select a folder -Bir klasör seçin - -&New -&Yeni - -&Open... -&Aç... - -Save &as... -F&arklı Kaydet... - -E&xit -Çı&k - -&File -&Dosya - -&View help -&Yardım Konuları - -&About -H&akkında - -&Help -&Yardım - -Usage: -Kullanım: - -1. Select folders to watch. -1. İzlenecek klasörleri seçin. - -2. Enter a command line. -2. Bir satır komutu yazın. - -3. Press 'Start'. -3. 'Başlat' düğmesine tıklayın. - -To get started just import a "ffs_batch" file. -"ffs_batch" dosyasını yükleyerek başlayabilirsiniz. - -Folders to watch: -İzlenecek Klasörler: - -Add folder -Klasör Ekle - -Remove folder -Klasörü Sil - -Browse -Gözat - -Idle time (in seconds): -Boşta Bekleme Süresi (saniye): - -Idle time between last detected change and execution of command -Son algılanan değişiklik ile komutun yürütülmesi arasında beklenecek süre - -Command line: -Satır Komutu: - - -The command is triggered if: -- files or subfolders change -- new folders arrive (e.g. USB stick insert) - - -Komut şu durumlarda yürütülür: -- dosya ya alt klasörler değiştiğinde -- yeni klasörler algılandığında (örneğin bir USB bellek takıldığında) - - -Start -Başlat - -About -Hakkında - -Build: %x -Yapım: %x - -All files -Tüm Dosyalar - -Automated Synchronization -Otomatik Eşitleme - -The %x protocol does not support directory monitoring: -%x iletişim kuralı klasör izlemesini desteklemiyor: - -Directory monitoring active -Klasör izlemesi yapılıyor - -Waiting until directory is available: -Klasörün kullanılabilir olması bekleniyor: - -&Restore -Gö&rüntülensin - -&Show error message - - -&Quit -Çı&k - -&Retry -&Yeniden Dene - - -1 byte -%x bytes - - -1 bayt -%x bayt - - -%x MB -%x MB - -%x KB -%x KB - -%x GB -%x GB - -Loading... -Yükleniyor... - -Scanning... -Taranıyor... - -job name -iş adı - -System: Sleep -Sistem: Uyku - -System: Shut down -Sistem: Kapat - -Nothing to synchronize -Eşitlenecek bir şey yok - -Executing command %x -%x komutu yürütülüyor - -You can switch to FreeFileSync's main window to resolve this issue. -Bu sorunu çözmek için FreeFileSync ana penceresine geçebilirsiniz. - -&Don't show this warning again -Bu &uyarı bir daha görüntülenmesin - -&Ignore -&Yok Say - -&Switch -&Değiştir - -Switching to FreeFileSync's main window -FreeFileSync ana penceresine geçiliyor - -Automatic retry -Otomatik yeniden denensin - -Ignore &all -Tümünü Yok S&ay - -Retrying operation... -İşlem yeniden deneniyor... - -Serious Error -Ciddi Sorun - -Last session -Önceki oturum - -Today -Bugün - - -1 day -%x days - - -1 gün -%x gün - - -Name -Ad - -Last sync -Son eşitleme - -Log -Günlük - -Folder -Klasör - -Symlink -Smblkbağlantı - -Full path -Tam Yol - -Relative path -Bağıl yol - -Item name -Öge adı - -Size -Boyut - -Date -Tarih - -Extension -Uzantı - -Category -Öge Türü - -Action -İşlem - -Local comparison settings -Yerel karşılaştırma ayarları - -Local synchronization settings -Yerel eşitleme ayarları - -Local filter -Yerel Süzgeç - -Active -Etkin - -None -Yok - -Remove local settings -Yerel Ayarları Sil - -Clear local filter -Yerel Süzgeci Temizle - -Copy -Kopyala - -Paste -Yapıştır - -The selected folder %x cannot be used with FreeFileSync. -Seçilmiş %x klasörü FreeFileSync ile birlikte kullanılamaz. - -Please select a folder on a local file system, network or an MTP device. -Lütfen yerel dosya sistemi, ağ ya da MTP aygıtı üzerinde bulunan bir klasör seçin. - -Defined by context of use -Kullanım bağlamına göre tanımlı - -Requires FreeFileSync Donation Edition -FreeFileSync Donation Edition gereklidir - -&Save -&Kaydet - -Save as &batch job... -&Toplu İş Olarak Kaydet... - -Show &log -Gün&lüğü Görüntüle - -Start &comparison -&Karşılaştırmayı Başlat - -C&omparison settings -K&arşılaştırma Ayarları - -&Filter settings -&Süzme Ayarları - -S&ynchronization settings -Eşi&tleme Ayarları - -Start &synchronization -&Eşitlemeyi Başlat - -&Actions -İş&lemler - -&Preferences -&Ayarlar - -&Language -&Dil - -&Find... -A&rama... - -&Export file list... -&Dosya Listesini Ver... - -&Reset layout -Görünümü &Sıfırla - -&Tools -&Araçlar - -&Check for updates now -&Güncellemeleri Denetle - -Check &automatically once a week -&Haftada Bir Denetle - -Cancel -İptal - -Compare -Karşılaştır - -Synchronize -Eşitle - -Add folder pair -Klasör Çifti Ekle - -Remove folder pair -Klasör Çiftini Sil - -Access online storage -Çevrimiçi Depolama Erişimi - -Close search bar -Arama Çubuğunu Kapat - -Find: -Aranacak ifade: - -Match case -Büyük küçük harf uyumu göz önüne alınsın - -New -Yeni - -Open... -Aç... - -Save -Kaydet - -Save as... -Farklı Kaydet... - -View type: -Görünüm Kipi: - -Select view: -Eşit Dosya Görünümü: - -Save as default -Varsayılan Olarak Kaydet - -Statistics: -İstatistikler: - -Number of files and folders that will be deleted -Silinecek dosya ve klasör sayısı - -Number of files that will be updated -Güncellenecek dosya sayısı - -Number of files and folders that will be created -Eklenecek dosya ve klasör sayısı - -Total bytes to copy -Toplam kopyalanacak bayt - -Arrange folder pair -Klasör çiftini belirleyin - -Main settings: -Temel ayarlar: - -Use local settings: -Yerel Ayarlar Kullanılsın: - -Select a variant: -İşlem Türünü Seçin: - -Include &symbolic links: -&Sembolik Bağlantılar Katılsın: - -&Follow -İ&zlensin - -&Direct -&Yönlendirilsin - -More information -Ayrıntılı bilgiler - -&Ignore time shift [hh:mm] -&Yok Sayılacak Zaman Farkı [ss:dd] - -List of file time offsets to ignore -Zaman farkı yok sayılacak dosyaların listesi - -Example: -Örnek: - -Handle daylight saving time -Yaz saati hakkında bilgiler - -Ignore errors -Sorunlar yok sayılsın - -Retry count: -Deneme Sayısı: - -Delay (in seconds): -Bekleme (saniye): - -Performance improvements: -Başarım İyileştirmeleri: - -Parallel file operations: -Eş Zamanlı İşlenecek Dosya Sayısı: - -How to get best performance? -En iyi başarım nasıl sağlanır? - -Local settings: -Yerel ayarlar: - -Include: -Katılacak Ögeler: - -Show examples -Örneklere Bakın - -Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair. -Eşitlenmeyecek dosyaların süzülme kurallarını belirleyin. Dosya yollarını bulundukları klasör çiftine göre yazın. - -File size: -Dosya Boyutu: - -Minimum: -En Küçük: - -Maximum: -En Büyük: - -Time span: -Zaman Aralığı: - -C&lear -&Temizle - -Detect moved files -Taşınmış dosyalar algılansın - - -- Not supported by all file systems -- Requires and creates database files -- Detection not available for first sync - - -- Tüm dosya sistemleri tarafından desteklenmez -- Veritabanı dosyalarının kullanılması gerekir -- Algılama, ilk eşitleme sırasında kullanılamaz - - -Delete files: -Dosya Silme İşlemi: - -&Recycle bin -Ge&ri Dönüşüm Kutusuna Atılsın - -&Permanent -&Kalıcı Olarak Silinsin - -&Versioning -Eski &Sürüm Olarak Saklansın - -Move files to a user-defined folder -Dosyalar kullanıcının belirteceği şu klasöre taşınsın - -Naming convention: -Adlandırma Kuralı: - -Limit file versions: -Dosya Sürümü Sayısı Sınırlaması: - -Last x days: -Son x Gün: - -&Override default log path: -Varsayılan yerine kullanılacak günlük y&olu: - -Run a command: -Bir komut yürüt: - -OK -Tamam - -Connection type: -Bağlantı Türü: - -Connected user accounts: - - -&Add connection - - -&Disconnect - - -Selected user account: - - -Server name or IP address: -Sunucu Adı / IP Adresi: - -Port: -Kapı: - -Encryption: -Şifreleme: - -&Disabled -&Devre Dışı - -&Explicit SSL/TLS -&Açık SSL/TLS - -Authentication: -Kimlik Doğrulaması: - -&Password -&Parola - -&Key file -Anahtar &Dosyası - -&SSH agent -&SSH İstemcisi - -User name: -Kullanıcı Adı: - -Private key file: -Özel Anahtar Dosyası: - -&Show password -Parola &Görüntülensin - -Directory on server: -Sunucudaki Klasör: - -Access timeout (in seconds): -Erişim zaman aşımı (saniye): - -SFTP channels per connection: -Bir Bağlantı için SFTP Kanalı Sayısı: - -Detect server limit -Sunucu Sınırını Bul - -Select Folder -Klasör Seçin - -Variant: -İşlem Türü: - -&Don't show this dialog again -Bu pencere bir daha &görüntülenmesin - -Items found: -Bulunan öge: - -Time remaining: -Kalan süre: - -Time elapsed: -Geçen süre: - -Bytes -Bayt - -Items -Öge - -Synchronizing... -Eşitleniyor... - -Minimize to notification area -Bildirim alanına küçült - -When finished: -Tamamlandığında: - -Auto-close -Otomatik kapat - -Close -Kapat - -&Pause -&Duraklat - -Stop -Durdur - -Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x -Eşitleme işleminin hiç bir soru sorulmadan yapılması için bir toplu iş dosyası oluşturun. İşlemi başlatmak için bu dosyaya çift tıklayın ya da bir görev zamanlayıcıya şu şekilde ekleyin: %x - -Progress dialog: -İlerleme penceresi: - -Run minimized -Küçültülmüş Çalıştırılsın - -Show pop-up on errors or warnings -Sorun ya da uyarılar açılır pencerede görüntülenir - -&Cancel -İ&ptal edilsin - -Stop synchronization at first error -Çıkan ilk sorunda eşitleme durdurulsun - -How can I schedule a batch job? -Toplu İşlem Zamanlaması Hakkında Bilgiler - -&Keep relative paths -Bağıl yollar &korunsun - -&Overwrite existing files -&Varolan dosyaların üzerine yazılsın - -The following settings are used for all synchronization jobs. -Aşağıdaki ayarlar tüm eşitleme işlemleri için geçerlidir. - - -Copy to a temporary file (*.ffs_tmp) before overwriting target. -This guarantees a consistent state even in case of a serious error. - - -Dosyalar önce geçici dosyaya kopyalanıp (*.ffs_tmp) sonra yeniden adlandırılır. -Bu yöntem, ciddi bir sorun çıkması durumunda bile işlemin tutarlı olarak yapılmasını sağlar. - - -recommended -önerilen - -Copy shared or locked files using the Volume Shadow Copy Service. -Paylaşılan ya da kilitlenmiş dosyalar Birim Gölge Hizmetini kullanılarak kopyalanır. - -requires administrator rights -yönetici izinleri gerekir - -Transfer file and folder permissions. -Dosya ve klasör izinleri de aktarılır. - -Show all permanently hidden dialogs and warning messages again -Kalıcı olarak gizlenmiş tüm ileti ve uyarılar yeniden görüntülenir - -Default log path: -Varsayılan günlük dosyası yolu: - -&Delete logs after x days: -&Günlük kayıtlarının silineceği gün sayısı: - -Customize context menu: -Sağ Tık Menüsü Uyarlamaları: - -Description -Açıklama - -&Default -&Varsayılan - -Feedback and suggestions are welcome: -Geri bildirim ve önerilerinizi bekliyoruz: - -Home page -Ana Sayfa - -FreeFileSync Forum -FreeFileSync Forumu - -Email -E-posta - -If you like FreeFileSync: -FreeFileSync hoşunuza gittiyse: - -Support with a donation -Bağış yaparak destek olun - -The auto updater was disabled by the administrator. -Otomatik güncelleme yönetici tarafından devre dışı bırakılmış. - -Donation details -Bağış Bilgileri - -Source code written in C++ using: -Kaynak kodu C++ kullanılarak yazılmıştır: - -Published under the GNU General Public License: -GNU Genel Kamu Lisansı koşulları altında yayınlanmıştır: - -Many thanks for localization: -Çeviriler için çok teşekkürler: - -Activate the FreeFileSync Donation Edition by one of the following methods: -FreeFileSync Donation Edition şu yöntemlerden biri ile etkinleştirilebilir: - -1. Activate via internet now: -1. İnternet üzerinden etkinleştirme: - -Activate online -Çevrimiçi Etkinleştir - -2. Retrieve an offline activation key from the following URL: -Şu adresten bir çevrimdışı etkinleştirme anahtarı alarak: - -&Copy to clipboard -&Panoya Kopyala - -Enter activation key: -Etkinleştirme Anahtarını Yazın: - -Activate offline -Çevrimdışı Etkinleştir - -Highlight configurations that have not been run for more than the following number of days: -Şu kadar gündür çalıştırılmayan yapılandırmalar vurgulansın: - -Synchronization Settings -Eşitleme Ayarları - -Access Online Storage -Çevrimiçi Depolama Erişimi - -Save as a Batch Job -Toplu İş Olarak Kaydet - -Delete Items -Ögeleri Sil - -Copy Items -Ögeleri Kopyala - -Options -Ayarlar - -Select Time Span -Zaman Aralığı - -Highlight Configurations -Yapılandırmalar Vurgulansın - -Info -Bilgi - -No log entries -Herhangi bir günlük kaydı yok - -Select all -Tümünü Seç - -&Options -&Ayarlar - -Main Bar -Ana Çubuk - -Folder Pairs -Klasör Çiftleri - -Find -Arama - -View Settings -Görünüm Ayarları - -Configuration -İşlemler - -Overview -Genel - -Swap sides -Sağ ve Sol Tarafları Değiştir - -Show "%x" -"%x" paneli görüntülensin - -&Show details -&Ayrıntılara Bakın - -FreeFileSync %x is available! -FreeFileSync %x sürümü yayınlanmış! - -Local path not available for %x. -%x için yerel yol bulunamadı. - -Confirm -Onaylayın - - -Do you really want to execute the command %y for one item? -Do you really want to execute the command %y for %x items? - - -Bir öge için %y komutunu çalıştırmak istediğinize emin misiniz? -%x öge için %y komutunu çalıştırmak istediğinize emin misiniz? - - -&Execute -Çalış&tır - - -1 directory -%x directories - - -1 klasör -%x klasör - - - -1 file -%x files - - -1 dosya -%x dosya - - - -Showing %y of 1 row -Showing %y of %x rows - - -%y / 1 satır görüntüleniyor -%y / %x satır görüntüleniyor - - -Set direction: -Yönü Seç: - -multiple selection -çoklu seçim - -&Include via filter: - - -&Exclude via filter: - - -Include temporarily -Geçici Olarak Kat - -Exclude temporarily -Geçici Olarak Katma - -&Synchronize selection - - -&Copy to... -&Farklı Konuma Kopyala... - -&Delete -&Sil - -Include all -Tümünü Seç - -Exclude all -Tümünü Bırak - -Show icons: -Simgeler Görüntülensin: - -Small -Küçük - -Medium -Orta - -Large -Büyük - -Select time span... -Zaman aralığını seçin... - -Donation Edition -Bağış Sürümü - -Folder Comparison and Synchronization -Klasör Karşılaştırma ve Eşitleme - -Configuration saved -Yapılandırma kaydedildi - -FreeFileSync batch -FreeFileSync toplu işi - -Do you want to save changes to %x? -Değişiklikleri %x dosyasına kaydetmek istiyor musunuz? - -Never save &changes -Değişiklikler asla &kaydedilmesin - -Do&n't save -Kaydedilmesi&n - -Hide configuration -Yapılandırma gizlensin - -Highlight... -Vurgula... - -Clear filter -Süzgeci Temizle - -Show files that exist on left side only -Yalnız sol tarafta bulunan dosyaları görüntüler ya da gizler - -Show files that exist on right side only -Yalnız sağ tarafta bulunan dosyaları görüntüler ya da gizler - -Show files that are newer on left -Solda daha yeni olan dosyaları görüntüler ya da gizler - -Show files that are newer on right -Sağda daha yeni olan dosyaları görüntüler ya da gizler - -Show files that are equal -Eşit dosyaları görüntüler ya da gizler - -Show files that are different -Farklı olan dosyaları görüntüler ya da gizler - -Show conflicts -Uyuşmazlıkları görüntüler ya da gizler - -Show files that will be created on the left side -Sol tarafa eklenecek dosyaları görüntüler ya da gizler - -Show files that will be created on the right side -Sağ tarafa eklenecek dosyaları görüntüler ya da gizler - -Show files that will be deleted on the left side -Sol tarafta silinecek dosyaları görüntüler ya da gizler - -Show files that will be deleted on the right side -Sağ tarafta silinecek dosyaları görüntüler ya da gizler - -Show files that will be updated on the left side -Sol tarafta güncellenecek dosyaları görüntüler ya da gizler - -Show files that will be updated on the right side -Sağ tarafta güncellenecek dosyaları görüntüler ya da gizler - -Show files that won't be copied -Kopyalanmayacak dosyaları görüntüler ya da gizler - -Show filtered or temporarily excluded files -Süzülmüş ya da geçici olarak katılmayan dosyaları görüntüler ya da gizler - -Filter -Süzme - -All files are in sync -Tüm dosyalar eşit - -Cannot find %x -%x bulunamadı - -Move up -Yukarı taşı - -Move down -Aşağı taşı - -Comma-separated values -Virgül ile ayrılmış değerler - -File list exported -Dosya listesi verildi - -Searching for program updates... -Yazılım güncellemesine bakılıyor... - -Paused -Duraklatıldı - -Stop requested... -Durdurulması istendi... - -Initializing... -Başlatılıyor... - -Comparing content... -İçerik karşılaştırılıyor... - -&Continue -&Devam - -Progress -İlerleme - -Thank you, %x, for your donation and support! -Sevgili %x, bağışın ve desteğin için teşekkürler! - -Connections -Bağlantılar - -Recommended range: -Önerilen Aralık: - -Do you really want to disconnect from user account %x? - - -Password: -Parola: - -Key password: -Anahtar Parolası: - -Please enter a file path. -Lütfen bir dosya yolu yazın. - - -Copy the following item to another folder? -Copy the following %x items to another folder? - - -Öge başka bir klasöre kopyalansın mı? -%x öge başka bir klasöre kopyalansın mı? - - -Please enter a target folder. -Lütfen bir hedef klasör yazın. - - -Do you really want to move the following item to the recycle bin? -Do you really want to move the following %x items to the recycle bin? - - -Aşağıdaki ögeyi Geri Dönüşüm Kutusuna atmak istediğinize emin misiniz? -Aşağıdaki %x ögeyi Geri Dönüşüm Kutusuna atmak istediğinize emin misiniz? - - -Move -Atılsın - - -Do you really want to delete the following item? -Do you really want to delete the following %x items? - - -Aşağıdaki ögeyi silmek istediğinize emin misiniz? -Aşağıdaki %x ögeyi silmek istediğinize emin misiniz? - - -Start to synchronize the selection? - - -Start synchronization now? -Eşitleme başlatılsın mı? - -Copy DACL, SACL, Owner, Group -DACL, SACL, Sahip, Grup Kopyalansın - -Integrate external applications into context menu. The following macros are available: -Sağ tık menüsüne dış uygulamalar eklenebilir. Şu kodlar kullanılabilir: - -Full file or folder path -Tam dosya ya da klasör yolu - -Parent folder path -Üst klasör yolu - -Temporary local copy for SFTP and MTP storage -SFTP ve MTP depolama için geçici yerel kopya - -Parameters for opposite side -Diğer tarafın parametreleri - -Show hidden dialogs again -Gizlenmiş Pencereleri Yeniden Görüntüle - -All dialogs shown -Tüm İletiler Görüntüleniyor - -Downloading update... -Güncelleme indiriliyor... - -Identify equal files by comparing modification time and size. -Dosyaların eşit olup olmadığı, son değişiklik zamanı ve boyuta göre belirlenir. - -Identify equal files by comparing the file content. -Dosyaların eşit olup olmadığı, içeriklerine göre belirlenir. - -Identify equal files by comparing their file size. -Dosyaların eşit olup olmadığı boyutlarına göre belirlenir. - -Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database. -İki taraftaki değişiklikler de belirlenir ve kopyalanır. Silinme, taşınma ve çakışmalar, veritabanı kullanılarak otomatik olarak belirlenir. - -Create a mirror backup of the left folder by adapting the right folder to match. -Sağ klasör, sola uyacak şekilde değiştirilerek, sol klasörün yansı yedeği oluşturulur. - -Copy new and updated files to the right folder. -Sol taraftaki yeni ya da güncellenmiş dosyalar sağ tarafa kopyalanır. - -Configure your own synchronization rules. -Eşitleme kuralları kullanıcının isteğine göre yapılandırılır. - -Comparison -Karşılaştırma - -Synchronization -Eşitleme - -This week -Bu hafta - -This month -Bu ay - -This year -Bu yıl - -Byte -Bayt - -KB -KB - -MB -MB - -Retain deleted and overwritten files in the recycle bin -Silinmiş ve üzerine yazılmış dosyalar geri dönüşüm kutusunda korunsun - -Delete and overwrite files permanently -Dosyalar silinsin ve kalıcı olarak üzerine yazılsın - -Replace -Ad Değiştirme - -Move files and replace if existing -Dosyalar taşınır ve varsa üzerine yazılır - -Time stamp -Zaman Damgalama - -Move files into a time-stamped subfolder -Dosyalar zaman damgalı bir alt klasöre taşınır - -File -Dosya - -Append a time stamp to each file name -Dosya adlarına zaman damgası eklenir - -On completion: -Tamamlandığında: - -On errors: -Sorun Çıktığında: - -On success: -Başarılı Olduğunda: - -Main config -Temel Yapılandırma - -empty -boş - -Leave as unresolved conflict -Uyuşmazlık çözümlenmeden bırakılsın - -YYYY-MM-DD hhmmss -YYYY-AA-GG SSddss - -Minimum version count must be smaller than maximum count. -En az sürüm sayısı en çok sürüm sayısı değerinden küçük olmalıdır. - -Files -Dosyalar - -Percentage -Yüzde - -Failed to retrieve update information. -Güncelleme bilgileri alınamadı. - -Automatic updates: -Otomatik güncellemeler: - -Check for Program Updates -Güncelleme Denetimi - -Auto-update now or download manually from the FreeFileSync home page? -Şimdi otomatik olarak güncelle ya da FreeFileSync ana sayfasından indir - -&Auto-update -&Otomatik Güncelle - -&Home page -&Ana Sayfadan İndir - -Download now? -İndirmek ister misiniz? - -&Download -İn&dirin - -FreeFileSync is up to date. -FreeFileSync güncel. - -Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now? -Geçerli FreeFileSync sürümü çevrimiçi olarak öğrenilemedi. Yeni bir sürüm yayınlanmış gibi görünüyor. El ile denetlemek ister misiniz? - -&Check -&Denetle - -Consistency check failed for %x. -%x tutarlılık sınamasından geçemedi. - -Installation was registered on a different operating system. -Kurulum başka bir işletim sistemi üzerinde kayıt edilmiş. - -Failed to activate FreeFileSync Donation Edition. -FreeFileSync Donation Edition etkinleştirilemedi. - -Incorrect activation key. -Etkinleştirme anahtarı hatalı. - -Unable to register to receive system messages. -Sistem iletilerini alabilmek için gerekli kayıt eklenemedi. - -The %x installation option is only available in the FreeFileSync Donation Edition. -%x kurulumu yalnız FreeFileSync Donation Sürümü ile yapılabilir. - -Cannot find system function %x. -%x sistem işlevi bulunamadı. - -Unable to register device notifications for %x. -%x aygıtının bildirimleri için gerekli kayıt eklenemedi. - -The file is locked by another process: -Dosya başka bir işlem tarafından kilitlenmiş: - -Cannot read security context of %x. -%x için güvenlik bağlamı okunamadı. - -Cannot write security context of %x. -%x için güvenlik bağlamı yazılamadı. - -Cannot read permissions of %x. -%x izinleri okunamadı. - -Cannot copy permissions from %x to %y. -İzinler %x üzerinden %y üzerine kopyalanamadı. - -%x is not a regular directory name. -%x geçerli bir klasör adı değil. - -Cannot copy attributes from %x to %y. -Öznitelikler %x üzerinden %y üzerine kopyalanamadı. - -%x TB -%x TB - -%x PB -%x PB - - -1 min -%x min - - -1 dakika -%x dakika - - - -1 hour -%x hours - - -1 saat -%x saat - - -Cannot set privilege %x. -%x izni verilemedi. - -Unable to suspend system sleep mode. -Sistem uyku kipine geçirilemedi. - -Cannot change process I/O priorities. -Giriş/Çıkış işlemi öncelikleri değiştirilemedi. - -Unable to shut down the system. -Bilgisayar kapatılamıyor. - -Checking recycle bin failed for folder %x. -%x klasörü için Geri Dönüşüm Kutusu denetlenemedi. - -Prepare installation -Kuruluma hazırlanıyor - -Choose which components you want to install. -Kurmak istediğiniz bileşenleri seçin. - -Select installation type: -Kurulum türünü seçin: - -Local -Yerel - -Portable -Taşınabilir - -Save settings in %x -Ayarlar %x üzerine kaydedilsin - -Register FreeFileSync file extensions -FreeFileSync Dosya Uzantıları İlişkilendirilsin - -Create Explorer context menu entries -Windows Gezgini Sağ Tık Menü Kayıtları Eklensin - -Save settings in installation directory -Ayarlar Kurulum Klasörüne Kaydedilsin - -Do not write to Registry -Kayıt Defterine Yazılmasın - -Just copy the files -Yalnız Dosyalar Kopyalansın - -Choose a directory for installation: -Kurulum Klasörünü Seçin: - -Create shortcuts: -Oluşturulacak Kısayollar: - -Desktop -Masaüstü - -Start Menu -Başlat Menüsü - -Send To -Gönder - -Registering FreeFileSync file extensions -FreeFileSync dosya uzantıları kayıt defterine ekleniyor - -Unregistering FreeFileSync file extensions -FreeFileSync dosya uzantıları kayıt defterinden siliniyor - -FreeFileSync Configuration -FreeFileSync Yapılandırması - -FreeFileSync Batch File -FreeFileSync Toplu İşlem Dosyası - -FreeFileSync Synchronization Database -FreeFileSync Eşitleme Veritabanı - -RealTimeSync Configuration -RealTimeSync Yapılandırması - -Edit with FreeFileSync -FreeFileSync ile Düzenlensin - -Instead of an ad, here's an animal. -Burada bir reklam yerine bir hayvan var. - -The FreeFileSync portable version cannot install into a subfolder of %x. -FreeFileSync taşınabilir sürümü bir %x alt klasörüne yüklenemez. - -Please choose the local installation type or select a different folder for installation. -Kurulum için farklı bir klasör ya da yerel kurulum türünü seçin. - -Get the Donation Edition with bonus features and help keep FreeFileSync ad-free. -Hediye özellikleri edinmek ve FreeFileSync yazılımını reklamsız kullanmak için Bağış Sürümünü alın. - diff --git a/FreeFileSync/Build/Languages/ukrainian.lng b/FreeFileSync/Build/Languages/ukrainian.lng deleted file mode 100755 index aa73fea8..00000000 --- a/FreeFileSync/Build/Languages/ukrainian.lng +++ /dev/null @@ -1,2107 +0,0 @@ -
- Українська - Mykola Pavluchynskyi - uk_UA - flag_ukraine.png - 3 - n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2 -
- -Both sides have changed since last synchronization. -З моменту останньої синхронізації з обох сторін відбулися зміни. - -Cannot determine sync-direction: -Не можна визначити напрям синхронізації: - -No change since last synchronization. -Жодних змін з останньої синхронізації. - -The database entry is not in sync considering current settings. -Запис бази даних не синхронізований з урахуванням поточних налаштувань. - -Setting default synchronization directions: Old files will be overwritten with newer files. -Налаштування напрямку синхронізації за замовчуванням: Старі файли будуть замінені новішими файлами. - -Creating file %x -Створення файлу %x - -Creating folder %x -Створення папки %x - -Creating symbolic link %x -Створення символьного посилання %x - -Moving file %x to the recycle bin -Переміщення файлу %x до корзини - -Moving folder %x to the recycle bin -Переміщення папки %x до корзини - -Moving symbolic link %x to the recycle bin -Переміщення символьного посилання %x до корзини - -Deleting file %x -Вилучення файлу %x - -Deleting folder %x -Вилучення папки %x - -Deleting symbolic link %x -Вилучення символьного посилання %x - -Checking recycle bin availability for folder %x... -Перевірка доступності корзини для папки %x... - -The recycle bin is not supported by the following folders. Deleted or overwritten files will not be able to be restored: -Корзина недоступна для поточних папок. Видалені чи перезаписані файли буде неможливо відновити: - -An exception occurred -Відбулось виключення - -A left and a right directory path are expected after %x. -Шлях до каталогу ліворуч і праворуч очікується після %x. - -Syntax error -Синтаксична помилка - -Cannot find file %x. -Неможливо знайти файл %x. - -Error -Помилка - -File %x does not contain a valid configuration. -Файл %x не містить правильної конфігурації. - -The config file must not contain settings at directory pair level when directories are set via command line. -Конфігураційний файл не повинен містити налаштувань на рівні пар папок, якщо папки задаються командним рядком. - -Directories cannot be set for more than one configuration file. -Папки не можуть бути призначені більш ніж одному файлу конфігурації. - -Command line -Командний рядок - -Syntax: -Синтаксис: - -config files: -файли конфігурації: - -directory -папка - -global config file: -глобальний конфігураційний файл: - -Any number of FreeFileSync "ffs_gui" and/or "ffs_batch" configuration files. -Будь-яка кількість FreeFileSync "ffs_gui" та/або "ffs_batch" файлів конфігурації. - -Any number of alternative directory pairs for at most one config file. -Будь-яка кількість альтернативних пар папок для не більше одного конфігураційного файлу. - -Open the selected configuration for editing only, without executing it. -Відкрити вибрану конфігурацію тільки для редагування без її виконання. - -Path to an alternate GlobalSettings.xml file. -Шлях до альтернативного файлу GlobalSettings.xml. - -Installation files are corrupted. Please reinstall FreeFileSync. -Файли встановлення пошкоджені. Будь ласка, перевстановіть FreeFileSync. - -Cannot load file %x. -Не вдається завантажити файл %x. - -Cannot find the following folders: -Не вдається знайти такі папки: - -The following folders do not yet exist: -Наступні папки ще не існують: - -The folders are created automatically when needed. -Папки створюються автоматично, коли це потрібно. - -The following folder paths differ in case. Please use a single form in order to avoid duplicate accesses. - - -Scanning: -Сканування: - -Comparison finished: -Порівняння завершено: - - -1 item found -%x items found - - -Знайдено %x элемент -Знайдено %x элементи -Знайдено %x элементів - - -File %x has an invalid date. -Файл %x має неіснуючу дату. - -Date: -Дата: - -Files have the same date but a different size. -Файли мають одинакову дату, але різний розмір. - -Size: -Розмір: - -Content comparison was skipped for excluded files. -Порівняння вмісту було пропущене для виключених файлів. - -Items differ in attributes only -Елементи відрізняються тільки атрибутами - -The name %x is used by more than one item in the folder. -Ім'я %x використовується більше ніж одним елементом у папці. - -Resolving symbolic link %x -Вирішення символьного посилання %x - -Comparing content of files %x -Порівнювання вмісту файлів %x - -Generating file list... -Створення списку файлів... - -Fail-safe file copy -Відмовостійке копіювання файлів - -Enabled -Увімкнути - -Disabled -Вимкнути - -Copy locked files -Копіювати заблоковані файли - -Copy file access permissions -Копіювати права доступу до файлів - -File time tolerance -Толеранс часу файлу - -Run with background priority -Запустити з фоновим пріоритетом - -Lock directories during sync -Заблокувати папки на час синхронізації - -Verify copied files -Перевірити скопійовані файли - -Using non-default global settings: -Використовувати глобальні налаштування не за замовчуванням: - -A folder input field is empty. -Порожнє поле папки. - -The corresponding folder will be considered as empty. -Відповідна папка буде вважатися порожньою. - -Exclude: -Виключити: - -One base folder of a folder pair is contained in the other one. -Одна основна папка з пари папок міститься всередині іншої. - -The folder should be excluded from synchronization via filter. -Папку потрібно виключити з синхронізації за допомогою фільтрів. - -Calculating sync directions... -Встановлення напрямку синхронізації... - -Out of memory. -Недостатньо пам'яті. - -Database file %x is incompatible. -Несумісний файл бази даних %x. - -Initial synchronization: -Початкова синхронізація: - -Database file %x does not yet exist. -Файл бази даних %x ще не існує. - -Database file is corrupted: -Файл бази даних пошкоджений: - -Cannot write file %x. -Не вдається записати файл %x. - -Cannot read file %x. -Не вдається прочитати файл %x. - -The database files do not yet contain information about the last synchronization. -Файли бази даних не містять інформації про останню синхронізацію. - -Loading file %x... -Завантажується файл %x... - -Saving file %x... -Збереження файлу %x... - -Searching for folder %x... -Пошук папки %x... - -Timeout while searching for folder %x. -Вичерпався час пошуку папки %x. - -Cannot get process information. -Не вдається отримати інформацію про процес. - -Cannot read file attributes of %x. -Не вдається прочитати атрибути файлу %x. - -Waiting while directory is locked: -Очікування поки папка заблокована: - -Lock owner: -Власник блокування: - -Detecting abandoned lock... -Виявлено покинуте блокування... - - -1 sec -%x sec - - -%x сек -%x сек -%x сек - - -Item exists on left side only -Елемент існує тільки ліворуч - -Item exists on right side only -Елемент існує тільки праворуч - -Left side is newer -Ліва сторона новіша - -Right side is newer -Права сторона новіша - -Items have different content -Елементи мають різний вміст - -Both sides are equal -Сторони ідентичні - -Conflict/item cannot be categorized -Не вдається категоризувати конфлікт/елемент - -Copy new item to left -Копіювати нові елементи ліворуч - -Copy new item to right -Копіювати нові елементи праворуч - -Delete left item -Вилучити елемент ліворуч - -Delete right item -Вилучити елемент праворуч - -Move file on left -Перемістити файли ліворуч - -Move file on right -Перемістити файли праворуч - -Update left item -Оновити елемент ліворуч - -Update right item -Оновити елемент праворуч - -Do nothing -Нічого не робити - -Update attributes on left -Оновити атрибути ліворуч - -Update attributes on right -Оновити атрибути праворуч - -Errors: -Помилки: - -Warnings: -Попередження: - -Items processed: -Елементів оброблено: - -Items remaining: -Елементів залишилось: - -Total time: -Загальний час: - -Warning -Увага - -Stopped -Зупинено - -Cleaning up log files: -Очищення файлів журналу: - -Error parsing file %x, row %y, column %z. -Помилка розбору файлу %x, рядок %y, колонка %z. - -Services -Служби - -Show All -Показати Усі - -Hide Others -Сховати Інші - -Hide %x -Сховати %x - -Quit %x -Вихід %x - -Cannot set directory locks for the following folders: -Неможливо встановити блокування каталогів для таких папок: - - -1 thread -%x threads - - -%x потік виконання -%x потоки виконання -%x потоків виконання - - -Cannot read directory %x. -Не вдається прочитати папку %x. - -%x/sec -%x/сек - -%x items -%x елементів - -Show in Explorer -Показати у Провіднику - -Open with default application -Відкрити за допомогою програми за замовчуванням - -Browse directory -Переглянути папку - -Unable to connect to %x. -Не вдається з'єднатися з %x. - -Completed successfully -Завершено успішно - -Completed with warnings -Завершено з попередженнями - -Completed with errors -Завершено з помилками - -Cannot access the Volume Shadow Copy Service. -Не вдається отримати доступ до послуги Тіньового Копіювання Тому. - -Please run the 64-bit version of FreeFileSync to create shadow copies on this system. -Будь ласка, використовуйте 64-розрядну версію FreeFileSync для створення тіньових копій у цій системі. - -Volume name %x is not part of file path %y. -Ім'я тому %x не є частиною шляху до файлу %y. - -File time and size -Дата та розмір файлу - -File content -Вміст файлу - -File size -Розмір файлу - -Two way -Обидва напрямки - -Mirror -Дзеркало - -Update -Оновити - -Custom -Вибірково - -Multiple... -Різні варіанти... - -Cannot write file attributes of %x. -Не вдається записати атрибути файлу %x. - -Cannot open file %x. -Не вдається відкрити файл %x. - -%x and %y have different content. -%x і %y мають різний вміст. - -Data verification error: -Помилка перевірки даних: - -Moving file %x to %y -Переміщення файлу %x до %y - -Moving folder %x to %y -Переміщення папки %x до %y - -Moving symbolic link %x to %y -Переміщення символьного посилання %x до %y - -Updating file %x -Оновлення файлу %x - -Updating symbolic link %x -Оновлення символьних посилань %x - -Verifying file %x -Перевірка файлу %x - -Updating attributes of %x -Оновлення атрибутів %x - -Source item %x not found -Вихідний елемент %x не знайдено - -Cannot move file %x to %y. -Не вдається перемістити файл %x до %y. - -Parent folder %x is not existing. - - -The name %x is already used by another item. - - -Cannot copy file %x to %y. -Не вдається скопіювати файл %x до %y. - -Cannot copy symbolic link %x to %y. -Не вдається скопіювати символьне посилання %x до %y. - -Creating a Volume Shadow Copy for %x... -Створення Тіньової Копії для %x... - -Cannot find folder %x. -Неможливо знайти папку %x. - -Target folder %x already existing. -Цільова папка %x вже існує. - -Target folder input field must not be empty. -Поле цільової папки не повинно бути порожнім. - -Source folder %x not found. -Вихідну папку %x не знайдено. - -Please enter a target folder for versioning. -Будь ласка, введіть цільову папку для версій. - -The following items have unresolved conflicts and will not be synchronized: -Наступні елементи мають невирішені конфлікти і не будуть синхронізовані: - -Folder pair: -Пара папок: - -The following folders are significantly different. Please check that the correct folders are selected for synchronization. -Наступні папки значно відрізняються. Будь ласка, перевірте що вибрані правильні папки для синхронізації. - -Not enough free disk space available in: -Не достатньо вільного місця на: - -Required: -Потрібно: - -Available: -Доступно: - -Some files will be synchronized as part of multiple base folders. -Деякі файли були синхронізовані як частина декількох основних папок. - -To avoid conflicts, set up exclude filters so that each updated file is considered by only one base folder. -Для уникнення конфліктів, встановлюйте фільтри для виключення так щоб кожен оновлений файл розглядався тільки однією основною папкою. - -Versioning folder: -Папка з версіями: - -Base folder: -Основна папка: - -The versioning folder is contained in a base folder. -Папка з версіями містить основну папку. - -Synchronizing folder pair: -Синхронізація пари папок: - -Generating database... -Створення бази даних... - -Searching for old file versions: -Пошук старих версій файлів: - -Removing old file versions: -Видалення старих версій файлів: - -Unable to create time stamp for versioning: -Не вдається створити часової мітки для версій: - - -Unexpected size of data stream. -Expected: %x bytes -Actual: %y bytes - - -Неочікуваний розмір потоку даних. -Очікуваний: %x байт -Дійсний: %y байт - - -Cannot write permissions of %x. -Не вдається записати права доступу до %x. - -Operation not supported between different devices. - - -Cannot delete file %x. -Не вдається видалити файл %x. - -Cannot delete symbolic link %x. -Не вдалося вилучити символьне посилання %x. - -Cannot delete directory %x. -Не вдається видалити папку %x. - -Error Code %x -Код помилки %x - -Failed to get information about server %x. -Не вдається отримати інформацію про сервер %x. - -Cannot open directory %x. -Не вдається відкрити папку %x. - -Cannot write modification time of %x. -Не вдається записати час модифікації %x. - -Cannot determine final path for %x. -Не вдається визначити кінцевого шляху для %x. - -Cannot create directory %x. -Не вдається створити папку %x. - -Operation not supported by device. - - -Cannot resolve symbolic link %x. -Не вдається вирішити символьне посилання %x. - -Unable to move %x to the recycle bin. -Не вдається перемістити %x до корзини. - -Unable to access %x. -Не вдалося отримати доступ до %x. - -Authentication completed. -Автентифікація виконана. - -You may close this page now and continue with FreeFileSync. -Ви можете закрити цю сторінку зараз і продовжити з FreeFileSync. - -Authentication failed. -Автентифікація не виконана. - -Unable to disconnect from %x. - - -Cannot monitor directory %x. -Не вдається спостереження за папкою %x. - -Cannot find %x. -Не вдається знайти %x. - -Please authorize access to user account %x. - - -Cannot determine free disk space for %x. -Не вдається визначити об'єм вільного місця для %x. - -Cannot find device %x. -Не вдається знайти пристрій %x. - -Unsupported item type. - - -Incorrect command line: -Неправильний командний рядок: - -The server does not support authentication via %x. -Сервер не підтримує аутентифікацію за допомогою %x. - - -Operation timed out after 1 second. -Operation timed out after %x seconds. - - -Вичерпався час очікування операції після %x секунди. -Вичерпався час очікування операції після %x секунд. -Вичерпався час очікування операції після %x секунд. - - - -Cannot wait on more than 1 connection at a time. -Cannot wait on more than %x connections at a time. - - -Неможливо очікувати більше ніж на %x з'єднанні одночасно. -Неможливо очікувати більше ніж на %x з'єднання одночасно. -Неможливо очікувати більше ніж на %x з'єднань одночасно. - - -Active connections: %x -Активні з'єднання: %x - -Failed to open SFTP channel number %x. -Не вдалося відкрити SFTP канал номер %x. - -Drag && drop -Drag && drop - -Select a folder -Вибрати папку - -&New -&Створити - -&Open... -&Відкрити... - -Save &as... -Зберегти &як... - -E&xit -В&ихід - -&File -&Файл - -&View help -П&ерегляд довідки - -&About -Пр&о програму - -&Help -&Довідка - -Usage: -Використання: - -1. Select folders to watch. -1. Виберіть папки для моніторингу. - -2. Enter a command line. -2. Введіть рядок команди. - -3. Press 'Start'. -3. Натисніть 'Запуск'. - -To get started just import a "ffs_batch" file. -Щоб запустити імпортуйте "ffs_batch" файл. - -Folders to watch: -Папки для спостереження: - -Add folder -Додати папку - -Remove folder -Вилучити папку - -Browse -Переглянути - -Idle time (in seconds): -Час очікування (секунд): - -Idle time between last detected change and execution of command -Час очікування між виявленням останньої зміни та виконанням команди - -Command line: -Командний рядок: - - -The command is triggered if: -- files or subfolders change -- new folders arrive (e.g. USB stick insert) - - -Команда спрацьовує, якщо: -- змінилися файли або підпапки -- з'явилися нові папки (наприклад, підключений USB флеш-носій) - - -Start -Запуск - -About -Про - -Build: %x -Збірка: %x - -All files -Всі файли - -Automated Synchronization -Автоматична Синхронізація - -The %x protocol does not support directory monitoring: -Протокол %x не підтримує моніторинг папок: - -Directory monitoring active -Моніторинг папок активний - -Waiting until directory is available: -Очікування поки каталог не стане доступним: - -&Restore -Від&новити - -&Show error message - - -&Quit -В&ихід - -&Retry -&Повторити - - -1 byte -%x bytes - - -%x байт -%x байти -%x байтів - - -%x MB -%x МБ - -%x KB -%x КБ - -%x GB -%x ГБ - -Loading... -Завантаження... - -Scanning... -Сканування... - -job name -назва завдання - -System: Sleep -Система: Сон - -System: Shut down -Система: Завершення роботи - -Nothing to synchronize -Нічого синхронізувати - -Executing command %x -Виконати команду %x - -You can switch to FreeFileSync's main window to resolve this issue. -Ви можете перейти до головного вікна FreeFileSync щоб вирішити це питання. - -&Don't show this warning again -&Надалі не показувати це попередження - -&Ignore -&Ігнорувати - -&Switch -&Перейти - -Switching to FreeFileSync's main window -Перехід до головного вікна FreeFileSync - -Automatic retry -Автоматична повторна спроба - -Ignore &all -Ігнорувати &усі - -Retrying operation... -Повтор операції... - -Serious Error -Серйозна помилка - -Last session -Остання сесія - -Today -Сьогодні - - -1 day -%x days - - -%x день -%x дні -%x днів - - -Name -Назва - -Last sync -Остання синхронізація - -Log -Лог - -Folder -Папка - -Symlink -Символьне посилання - -Full path -Повний шлях - -Relative path -Відносний шлях - -Item name -Назва елементу: - -Size -Розмір - -Date -Дата - -Extension -Розширення - -Category -Категорія - -Action -Дія - -Local comparison settings -Налаштування локального порівняння - -Local synchronization settings -Налаштування локальної синхронізації - -Local filter -Локальний фільтр - -Active -Активний - -None -Не задано - -Remove local settings -Вилучити локальні налаштування - -Clear local filter -Очистити локальний фільтр - -Copy -Копіювати - -Paste -Вставити - -The selected folder %x cannot be used with FreeFileSync. -Вибрана папка %x не може бути використана з FreeFileSync. - -Please select a folder on a local file system, network or an MTP device. -Будь ласка, виберіть папку на локальній файловій системі, в мережі чи на MTP пристрої. - -Defined by context of use -Визначено контекстом використання - -Requires FreeFileSync Donation Edition -Потрібна FreeFileSync Donation Edition - -&Save -&Зберегти - -Save as &batch job... -Зберегти як &пакетне завдання... - -Show &log -Показати &журнал - -Start &comparison -Запуск по&рівняння - -C&omparison settings -Налаштування п&орівняння - -&Filter settings -Налаштування &фільтру - -S&ynchronization settings -Н&алаштування синхронізації - -Start &synchronization -Запуск &синхронізації - -&Actions -Ді&ї - -&Preferences -&Уподобання - -&Language -&Мова - -&Find... -З&найти... - -&Export file list... -&Експортувати список файлів... - -&Reset layout -&Скинути розташування - -&Tools -&Інструменти - -&Check for updates now -&Перевірити оновлення зараз - -Check &automatically once a week -Перевіряти &автоматично щотижня - -Cancel -Відмінити - -Compare -Порівняти - -Synchronize -Синхронізувати - -Add folder pair -Додати пару папок - -Remove folder pair -Вилучити пару папок - -Access online storage -Доступ до online сховища - -Close search bar -Закрити панель пошуку - -Find: -Знайти: - -Match case -Враховувати регістр - -New -Нова - -Open... -Відкрити... - -Save -Зберегти - -Save as... -Зберегти як... - -View type: -Тип перегляду: - -Select view: -Вибрати перегляд: - -Save as default -Зберегти як замовчування - -Statistics: -Статистика: - -Number of files and folders that will be deleted -Кількість файлів і папок, які будуть вилучені - -Number of files that will be updated -Кількість файлів і папок, які будуть оновлені - -Number of files and folders that will be created -Кількість файлів і папок, які будуть створені - -Total bytes to copy -Всього скопіювати байтів - -Arrange folder pair -Упорядкувати пару папок - -Main settings: -Головні налаштування: - -Use local settings: -Використати локальні налаштування: - -Select a variant: -Виберіть варіант: - -Include &symbolic links: -Включити &символьні посилання: - -&Follow -&Переходити - -&Direct -&Безпосередньо - -More information -Додаткова інформація - -&Ignore time shift [hh:mm] -&Ігнорувати зсув у часі [hh:mm] - -List of file time offsets to ignore -Список ігнорованих файлових зсувів у часі - -Example: -Приклад: - -Handle daylight saving time -Перехід на літній час вручну - -Ignore errors -Ігнорувати помилки - -Retry count: -Кількість спроб: - -Delay (in seconds): -Затримка (секунд): - -Performance improvements: -Підвищення продуктивності: - -Parallel file operations: -Паралельні файлові операції: - -How to get best performance? -Як отримати найкращу швидкодію? - -Local settings: -Локальні налаштування: - -Include: -Включити: - -Show examples -Показати приклади - -Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair. -Виберіть правила фільтрації для виключення деяких файлів із синхронізації. Введіть шляхи до файлів відносно відповідної пари папок. - -File size: -Розмір файлу: - -Minimum: -Мінімум: - -Maximum: -Максимум: - -Time span: -Відрізок часу: - -C&lear -О&чистити - -Detect moved files -Виявляти переміщені файли - - -- Not supported by all file systems -- Requires and creates database files -- Detection not available for first sync - - -- Не підтримується всіма файловими системами -- Вимагає та створює файли баз даних -- Визначення недоступне для першої синхронізації - - -Delete files: -Вилучати файли: - -&Recycle bin -&Корзина - -&Permanent -&Безповоротно - -&Versioning -&Управління версіями - -Move files to a user-defined folder -Перемістити файли у визначену користувачем папку - -Naming convention: -Метод іменування: - -Limit file versions: -Обмежити версії файлів: - -Last x days: -Останні x днів: - -&Override default log path: -&Перевизначити шлях журналу за замовчуванням: - -Run a command: -Запустити команду: - -OK -OK - -Connection type: -Тип з'єднання: - -Connected user accounts: - - -&Add connection - - -&Disconnect - - -Selected user account: - - -Server name or IP address: -Ім'я серверу чи IP адреса: - -Port: -Порт: - -Encryption: -Шифрування: - -&Disabled -&Вимкнено - -&Explicit SSL/TLS -&Явний SSL/TLS - -Authentication: -Аутентифікація: - -&Password -&Пароль - -&Key file -&Файл ключа - -&SSH agent -&SSH агент - -User name: -Ім'я користувача: - -Private key file: -Приватний файл ключа: - -&Show password -&Показати пароль - -Directory on server: -Папка на сервері: - -Access timeout (in seconds): -Тайм-аут доступу (у секундах): - -SFTP channels per connection: -SFTP канали на з'єднання: - -Detect server limit -Визначити ліміти сервера - -Select Folder -Вибрати Папку - -Variant: -Варіант: - -&Don't show this dialog again -Більше &не показувати цей діалог - -Items found: -Елементів знайдено: - -Time remaining: -Залишилось часу: - -Time elapsed: -Пройшло часу: - -Bytes -Байт - -Items -Елементи - -Synchronizing... -Синхронізація... - -Minimize to notification area -Згорнути в область повідомлень - -When finished: -Після завершення: - -Auto-close -Автозавершення - -Close -Закрити - -&Pause -&Пауза - -Stop -Зупинити - -Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x -Створити пакетний файл для автоматичної синхронізації. Щоб запустити двічі клацніть цей файл або заплануйте в планувальнику завдань: %x - -Progress dialog: -Діалог прогресу: - -Run minimized -Запустити згорнутим - -Show pop-up on errors or warnings -Показувати виринаючі вікна при помилках та попередженнях - -&Cancel -&Відмінити - -Stop synchronization at first error -Зупинити синхронізацію при першій помилці - -How can I schedule a batch job? -Як можна запланувати пакетне завдання? - -&Keep relative paths -&Зберегти відносні шляхи - -&Overwrite existing files -&Перезаписати існуючі файли - -The following settings are used for all synchronization jobs. -Наступні налаштування використовуються для всіх завдань синхронізації. - - -Copy to a temporary file (*.ffs_tmp) before overwriting target. -This guarantees a consistent state even in case of a serious error. - - -Скопіювати в тимчасовий файл (*.ffs_tmp) перед перезаписом цільового. -Це гарантує цілісність навіть у випадку серйозної помилки. - - -recommended -рекомендовано - -Copy shared or locked files using the Volume Shadow Copy Service. -Копіювати спільні та заблоковані файли за допомогою сервісу Тіньового Копіювання Тому. - -requires administrator rights -потрібні права адміністратора - -Transfer file and folder permissions. -Перенести права доступу файлів і папок. - -Show all permanently hidden dialogs and warning messages again -Показати всі сховані діалоги і повідомлення з попередженнями знову - -Default log path: -Шлях до журналу за замовчуванням: - -&Delete logs after x days: -&Видалити журнали після x днів: - -Customize context menu: -Налаштування контекстного меню: - -Description -Опис - -&Default -&За замовчуванням - -Feedback and suggestions are welcome: -Зворотній зв'язок і пропозиції вітаються: - -Home page -Домашня сторінка - -FreeFileSync Forum -Форум FreeFileSync - -Email -Пошта - -If you like FreeFileSync: -Якщо Вам сподобався FreeFileSync: - -Support with a donation -Підтримати пожертвуванням. - -The auto updater was disabled by the administrator. -Автоматичне оновлення було відключене адміністратором. - -Donation details -Докладно про пожертвування - -Source code written in C++ using: -Код програми написаний на C++ з використанням: - -Published under the GNU General Public License: -Опубліковано за GNU General Public License: - -Many thanks for localization: -Подяка за локалізацію: - -Activate the FreeFileSync Donation Edition by one of the following methods: -Активувати FreeFileSync Donation Edition за допомогою одного з наступних методів: - -1. Activate via internet now: -1. Активувати через інтернет зараз: - -Activate online -Активувати online - -2. Retrieve an offline activation key from the following URL: -2. Отримати ключ для offline активації за допомогою наступного посилання: - -&Copy to clipboard -&Копіювати в буфер обміну - -Enter activation key: -Ввести ключ активації: - -Activate offline -Активувати offline - -Highlight configurations that have not been run for more than the following number of days: -Виділити конфігурації що не запускались більше ніж наступну кількість днів: - -Synchronization Settings -Налаштування Синхронізації - -Access Online Storage -Доступ до Online Сховища - -Save as a Batch Job -Зберегти як Пакетне Завдання - -Delete Items -Вилучити Елементи - -Copy Items -Копіювати Елементи - -Options -Опції - -Select Time Span -Виберіть Інтервал Часу - -Highlight Configurations -Налаштування виділення - -Info -Інформація - -No log entries -Немає записів журналу - -Select all -Виділити все - -&Options -&Опції - -Main Bar -Головна панель - -Folder Pairs -Пари Папок - -Find -Знайти - -View Settings -Налаштування перегляду - -Configuration -Конфігурація - -Overview -Огляд - -Swap sides -Поміняти місцями - -Show "%x" -Показати "%x" - -&Show details -&Показати докладніше - -FreeFileSync %x is available! -FreeFileSync %x доступний! - -Local path not available for %x. -Локальний шлях не доступний для %x. - -Confirm -Підтвердити - - -Do you really want to execute the command %y for one item? -Do you really want to execute the command %y for %x items? - - -Справді хочете виконати команду %y для %x елемента? -Справді хочете виконати команду %y для %x елементів? -Справді хочете виконати команду %y для %x елементів? - - -&Execute -&Виконати - - -1 directory -%x directories - - -%x папка -%x папки -%x папок - - - -1 file -%x files - - -%x файл -%x файли -%x файлів - - - -Showing %y of 1 row -Showing %y of %x rows - - -Показано %y з %x рядка -Показано %y з %x рядків -Показано %y з %x рядків - - -Set direction: -Виберіть напрям: - -multiple selection -груповий вибір - -&Include via filter: - - -&Exclude via filter: - - -Include temporarily -Включити тимчасово - -Exclude temporarily -Виключити тимчасово - -&Synchronize selection - - -&Copy to... -&Копіювати до... - -&Delete -Ви&далити - -Include all -Включити всі - -Exclude all -Виключити всі - -Show icons: -Показати іконки: - -Small -Малий - -Medium -Середній - -Large -Великий - -Select time span... -Виберіть інтервал часу... - -Donation Edition -Donation Edition - -Folder Comparison and Synchronization -Порівнювання та Синхронізація папок - -Configuration saved -Налаштування синхронізації збережено - -FreeFileSync batch -Командний файл FreeFileSync - -Do you want to save changes to %x? -Зберегти зміни в %x? - -Never save &changes -Ніколи не зберігати &зміни - -Do&n't save -&Не зберігати - -Hide configuration -Сховати конфігурацію - -Highlight... -Виділити... - -Clear filter -Очистити фільтр - -Show files that exist on left side only -Показати файли, які є тільки ліворуч - -Show files that exist on right side only -Показати файли, які є тільки праворуч - -Show files that are newer on left -Показати файли, які новіші ліворуч - -Show files that are newer on right -Показати файли, які новіші праворуч - -Show files that are equal -Показати однакові файли - -Show files that are different -Показати файли що відрізняються - -Show conflicts -Показати конфлікти - -Show files that will be created on the left side -Показати файли, які будуть створені ліворуч - -Show files that will be created on the right side -Показати файли, які будуть створені праворуч - -Show files that will be deleted on the left side -Показати файли, які будуть вилучені ліворуч - -Show files that will be deleted on the right side -Показати файли, які будуть вилучені праворуч - -Show files that will be updated on the left side -Показати файли, які будуть оновлені ліворуч - -Show files that will be updated on the right side -Показати файли, які будуть оновлені праворуч - -Show files that won't be copied -Показати файли, які не будуть скопійовані - -Show filtered or temporarily excluded files -Показати відфільтровані чи тимчасово виключені елементи - -Filter -Фільтр - -All files are in sync -Всі файли синхронні - -Cannot find %x -Неможливо знайти %x - -Move up -Перемістити вверх - -Move down -Перемістити вниз - -Comma-separated values -Значення розділені комою - -File list exported -Список файлів експортовано - -Searching for program updates... -Пошук оновлень програми... - -Paused -Призупинено - -Stop requested... -Зупинити запит... - -Initializing... -Ініціалізація... - -Comparing content... -Порівнювання вмісту... - -&Continue -&Продовжити - -Progress -Прогрес - -Thank you, %x, for your donation and support! -Дякуємо Вам, %x, за ваше пожертвування та підтримку! - -Connections -З'єднання - -Recommended range: -Рекомендований діапазон: - -Do you really want to disconnect from user account %x? - - -Password: -Пароль: - -Key password: -Пароль ключа: - -Please enter a file path. -Будь-ласка, введіть шлях до файлу. - - -Copy the following item to another folder? -Copy the following %x items to another folder? - - -Копіювати цей %x єлемент у іншу папку? -Копіювати ці %x елементи у іншу папку? -Копіювати ці %x елементів у іншу папку? - - -Please enter a target folder. -Будь ласка, введіть цільову папку. - - -Do you really want to move the following item to the recycle bin? -Do you really want to move the following %x items to the recycle bin? - - -Ви дійсно хочете перемістити цей %x елемент у корзину? -Ви дійсно хочете перемістити ці %x елементи у корзину? -Ви дійсно хочете перемістити ці %x елементів у корзину? - - -Move -Перемістити - - -Do you really want to delete the following item? -Do you really want to delete the following %x items? - - -Ви дійсно хочете вилучити цей %x елемент? -Ви дійсно хочете вилучити ці %x елементи? -Ви дійсно хочете вилучити ці %x елементів? - - -Start to synchronize the selection? - - -Start synchronization now? -Запустити синхронізацію зараз? - -Copy DACL, SACL, Owner, Group -Скопіювати DACL, SACL, власника, групу - -Integrate external applications into context menu. The following macros are available: -Інтеграція зовнішніх додатків до контекстного меню. Наступні макроси доступні: - -Full file or folder path -Повна назва файлу чи папки - -Parent folder path -Шлях до батьківської папки: - -Temporary local copy for SFTP and MTP storage -Тимчасова локальна копія для SFTP і MTP сховища - -Parameters for opposite side -Параметри для протилежної сторони: - -Show hidden dialogs again -Показати сховані діалоги знову - -All dialogs shown -Показано всі діалоги - -Downloading update... -Завантажується оновлення... - -Identify equal files by comparing modification time and size. -Визначити однакові файли порівнюючи час модифікації та розмір. - -Identify equal files by comparing the file content. -Визначати однакові файли порівнюючи їх вміст. - -Identify equal files by comparing their file size. -Визначати однакові файли порівнюючи їх розмір. - -Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database. -Виявити та поширити зміни на обидві сторони. Видалення, перейменування та конфлікти визначаються автоматично використовуючи базу даних. - -Create a mirror backup of the left folder by adapting the right folder to match. -Створення дзеркальної резервної копії лівої папки шляхом приведення правої папки у повну відповідність. - -Copy new and updated files to the right folder. -Скопіювати нові та оновлені файли в праву папку. - -Configure your own synchronization rules. -Налаштувати власні правила синхронізації. - -Comparison -Порівняння - -Synchronization -Синхронізація - -This week -Цього тижня - -This month -Цього місяця - -This year -Цього року - -Byte -Байт - -KB -КБ - -MB -МБ - -Retain deleted and overwritten files in the recycle bin -Залишити видалені і перезаписані файли у корзині - -Delete and overwrite files permanently -Видалити і перезаписати файли назавжди - -Replace -Замінити - -Move files and replace if existing -Перемістити файли замінюючи існуючі - -Time stamp -Відмітка часу - -Move files into a time-stamped subfolder -Перемістити файли в підпапку з часовим шаблоном - -File -Файл - -Append a time stamp to each file name -Приєднати відмітку часу до кожної назви файлу - -On completion: -Після завершення: - -On errors: -Після завершення з помилками: - -On success: -Після успішного завершення: - -Main config -Головна конфігурація - -empty -пусто - -Leave as unresolved conflict -Залишити як невирішений конфлікт - -YYYY-MM-DD hhmmss -YYYY-MM-DD hhmmss - -Minimum version count must be smaller than maximum count. -Мінімальна кількість версій повинна бути меншою, ніж максимальна кількість. - -Files -Файли - -Percentage -Проценти - -Failed to retrieve update information. -Не вдалося отримати інформацію про оновлення. - -Automatic updates: -Автоматичні оновлення: - -Check for Program Updates -Перевірка Оновлень Програми - -Auto-update now or download manually from the FreeFileSync home page? -Автоматично оновити зараз чи завантажити вручную з домашньї сторінки FreeFileSync? - -&Auto-update -&Автоматичне оновлення - -&Home page -&Домашня сторінка - -Download now? -Завантажити зараз? - -&Download -&Завантажити - -FreeFileSync is up to date. -У Вас найновіша версія FreeFileSync. - -Cannot find current FreeFileSync version number online. A newer version is likely available. Check manually now? -Не вдається знайти номер поточної версії FreeFileSync он-лайн. Нова версія схоже доступна. Перевірити вручну зараз? - -&Check -&Перевірити - -Consistency check failed for %x. -Перевірка цілісності неуспішна для %x. - -Installation was registered on a different operating system. -Встановлення було зареєстровано на іншій операційній системі. - -Failed to activate FreeFileSync Donation Edition. -Не вдалося активувати FreeFileSync Donation Edition. - -Incorrect activation key. -Неправильний код активації. - -Unable to register to receive system messages. -Не вдається зареєструватися для отримання системних повідомлень. - -The %x installation option is only available in the FreeFileSync Donation Edition. -Варіант установки %x доступний тільки у FreeFileSync Donation Edition. - -Cannot find system function %x. -Не вдається знайти системну функцію %x. - -Unable to register device notifications for %x. -Не вдається зареєструвати повідомлення пристрою для %x. - -The file is locked by another process: -Файл заблоковано іншим процесом: - -Cannot read security context of %x. -Не вдається прочитати контекст безпеки %x. - -Cannot write security context of %x. -Не вдається записати контекст безпеки %x. - -Cannot read permissions of %x. -Не вдається прочитати права доступу до %x. - -Cannot copy permissions from %x to %y. -Не вдається скопіювати права доступу з %x до %y. - -%x is not a regular directory name. -%x не є звичайним іменем папки. - -Cannot copy attributes from %x to %y. -Не вдається скопіювати атрибути з %x до %y. - -%x TB -%x ТБ - -%x PB -%x ПБ - - -1 min -%x min - - -%x хв -%x хв -%x хв - - - -1 hour -%x hours - - -%x година -%x години -%x годин - - -Cannot set privilege %x. -Не вдається встановити привілеї %x. - -Unable to suspend system sleep mode. -Не вдається призупинити режим сну системи. - -Cannot change process I/O priorities. -Не вдалося змінити пріоритетів Вх/Вих процесу. - -Unable to shut down the system. -Не вдається завершити роботу системи. - -Checking recycle bin failed for folder %x. -Перевірка корзини для папки %x не вдалася. - -Prepare installation -Підготовка встановлення - -Choose which components you want to install. -Виберіть які компоненти ви хочете встановити. - -Select installation type: -Виберіть тип встановлення: - -Local -Локальна - -Portable -Портативна - -Save settings in %x -Зберегти налаштування в %x - -Register FreeFileSync file extensions -Зареєструвати розширення файлів FreeFileSync - -Create Explorer context menu entries -Створити пункти контекстного меню Провідника - -Save settings in installation directory -Зберегти налаштування у папці встановлення - -Do not write to Registry -Не записувати у Реєстр - -Just copy the files -Просто скопіювати файли - -Choose a directory for installation: -Виберіть папку для встановлення: - -Create shortcuts: -Створити ярлики: - -Desktop -Робочий стіл - -Start Menu -Меню "Пуск" - -Send To -Відправити - -Registering FreeFileSync file extensions -Реєстрація розширень файлів FreeFileSync - -Unregistering FreeFileSync file extensions -Вилучення реєстрації розширень файлів FreeFileSync - -FreeFileSync Configuration -Конфігурація FreeFileSync - -FreeFileSync Batch File -Файл пакетного завдання FreeFileSync - -FreeFileSync Synchronization Database -База даних синхронізації FreeFileSync - -RealTimeSync Configuration -Конфігурація RealTimeSync - -Edit with FreeFileSync -Редагувати за допомогою FreeFileSync - -Instead of an ad, here's an animal. -Замість реклами, ось тварина. - -The FreeFileSync portable version cannot install into a subfolder of %x. -Портативна версія FreeFileSync не може бути встановлена в підпапку %x. - -Please choose the local installation type or select a different folder for installation. -Будь ласка, виберіть локальний тип інсталяції чи іншу папку для встановлення. - -Get the Donation Edition with bonus features and help keep FreeFileSync ad-free. -Отримайте Donation Edition з бонусними функціями та допоможіть зберегти FreeFileSync без реклами. - diff --git a/FreeFileSync/Build/ding.wav b/FreeFileSync/Build/ding.wav deleted file mode 100755 index 9a24acc4..00000000 Binary files a/FreeFileSync/Build/ding.wav and /dev/null differ diff --git a/FreeFileSync/Build/gong.wav b/FreeFileSync/Build/gong.wav deleted file mode 100755 index 96dd2a15..00000000 Binary files a/FreeFileSync/Build/gong.wav and /dev/null differ diff --git a/FreeFileSync/Build/harp.wav b/FreeFileSync/Build/harp.wav deleted file mode 100755 index 3fe95e5d..00000000 Binary files a/FreeFileSync/Build/harp.wav and /dev/null differ diff --git a/FreeFileSync/Build/styles.gtk_rc b/FreeFileSync/Build/styles.gtk_rc deleted file mode 100755 index b13985a0..00000000 --- a/FreeFileSync/Build/styles.gtk_rc +++ /dev/null @@ -1,7 +0,0 @@ -style "no-inner-border" -{ - GtkButton::inner-border = {0, 0, 0, 0} /*remove excessive borders on Gnome*/ - /*GtkButton::focus-padding = 0 => keep default: minor difference + looks better on KDE */ -} - -class "GtkButton" style "no-inner-border" diff --git a/FreeFileSync/Source/base/error_log.h b/FreeFileSync/Source/base/error_log.h deleted file mode 100755 index a27e423b..00000000 --- a/FreeFileSync/Source/base/error_log.h +++ /dev/null @@ -1,45 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef ERROR_LOG_H_89734181783491324134 -#define ERROR_LOG_H_89734181783491324134 - -#include -#include -#include -#include "ffs_paths.h" - - -namespace fff -{ -//write error message to a file (even with corrupted stack)- call in desperate situations when no other means of error handling is available -void logFatalError(const std::string& msg); //noexcept - - - - - - - - - -//##################### implementation ############################ -inline -void logFatalError(const std::string& msg) //noexcept -{ - using namespace zen; - - assert(false); //this is stuff we like to debug - const std::string logEntry = "[" + formatTime(FORMAT_DATE) + " " + formatTime(FORMAT_TIME) + "] " + msg; - try - { - saveBinContainer(getConfigDirPathPf() + Zstr("LastError.log"), logEntry, nullptr /*notifyUnbufferedIO*/); //throw FileError - } - catch (FileError&) {} -} -} - -#endif //ERROR_LOG_H_89734181783491324134 diff --git a/FreeFileSync/Source/base/hard_filter.cpp b/FreeFileSync/Source/base/hard_filter.cpp deleted file mode 100755 index dda78b6b..00000000 --- a/FreeFileSync/Source/base/hard_filter.cpp +++ /dev/null @@ -1,366 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#include "hard_filter.h" -#include -#include -#include -#include -#include - -using namespace zen; -using namespace fff; - - -bool fff::operator<(const HardFilter& lhs, const HardFilter& rhs) -{ - if (typeid(lhs) != typeid(rhs)) - return typeid(lhs).before(typeid(rhs)); //in worst case, order is guaranteed to be stable only during each program run - - //lhs, rhs have same type: - return lhs.cmpLessSameType(rhs); -} - - -namespace -{ -//constructing Zstrings of these in addFilterEntry becomes perf issue for large filter lists => use global POD! -const Zchar sepAsterisk[] = Zstr("/*"); -const Zchar asteriskSep[] = Zstr("*/"); -static_assert(FILE_NAME_SEPARATOR == '/'); - - -void addFilterEntry(const Zstring& filterPhrase, std::vector& masksFileFolder, std::vector& masksFolder) -{ - warn_static("3. ignore path separator => bug regarding copyFilterAddingExclusion() after failed directory reads when dir has path separator from other OS in name") - - //normalize filter input: 1. ignore Unicode normalization form 2. ignore case 3. ignore path separator - Zstring filterFmt = makeUpperCopy(filterPhrase); - if constexpr (FILE_NAME_SEPARATOR != Zstr('/' )) replace(filterFmt, Zstr('/'), FILE_NAME_SEPARATOR); - if constexpr (FILE_NAME_SEPARATOR != Zstr('\\')) replace(filterFmt, Zstr('\\'), FILE_NAME_SEPARATOR); - /* - phrase | action - +---------+-------- - | \blah | remove \ - | \*blah | remove \ - | \*\blah | remove \ - | \*\* | remove \ - +---------+-------- - | *blah | - | *\blah | -> add blah - | *\*blah | -> add *blah - +---------+-------- - | blah\ | remove \; folder only - | blah*\ | remove \; folder only - | blah\*\ | remove \; folder only - +---------+-------- - | blah* | - | blah\* | remove \*; folder only - | blah*\* | remove \*; folder only - +---------+-------- - */ - auto processTail = [&masksFileFolder, &masksFolder](const Zstring& phrase) - { - if (endsWith(phrase, FILE_NAME_SEPARATOR) || //only relevant for folder filtering - endsWith(phrase, sepAsterisk)) // abc\* - { - const Zstring dirPhrase = beforeLast(phrase, FILE_NAME_SEPARATOR, IF_MISSING_RETURN_NONE); - if (!dirPhrase.empty()) - masksFolder.push_back(dirPhrase); - } - else if (!phrase.empty()) - masksFileFolder.push_back(phrase); - }; - - if (startsWith(filterFmt, FILE_NAME_SEPARATOR)) // \abc - processTail(afterFirst(filterFmt, FILE_NAME_SEPARATOR, IF_MISSING_RETURN_NONE)); - else - { - processTail(filterFmt); - if (startsWith(filterFmt, asteriskSep)) // *\abc - processTail(afterFirst(filterFmt, asteriskSep, IF_MISSING_RETURN_NONE)); - } -} - - -template inline -const Char* cStringFind(const Char* str, Char ch) //= strchr(), wcschr() -{ - for (;;) - { - const Char s = *str; - if (s == ch) //ch is allowed to be 0 by contract! must return end of string in this case - return str; - - if (s == 0) - return nullptr; - ++str; - } -} - - -/* -struct FullMatch -{ - static bool matchesMaskEnd (const Zchar* path) { return *path == 0; } - static bool matchesMaskStar(const Zchar* path) { return true; } -}; -*/ - -struct ParentFolderMatch //strict match of parent folder path! -{ - static bool matchesMaskEnd (const Zchar* path) { return *path == FILE_NAME_SEPARATOR; } - static bool matchesMaskStar(const Zchar* path) { return cStringFind(path, FILE_NAME_SEPARATOR) != nullptr; } -}; - -struct AnyMatch -{ - static bool matchesMaskEnd (const Zchar* path) { return *path == 0 || *path == FILE_NAME_SEPARATOR; } - static bool matchesMaskStar(const Zchar* path) { return true; } -}; - - -template -bool matchesMask(const Zchar* path, const Zchar* mask) -{ - for (;; ++mask, ++path) - { - Zchar m = *mask; - switch (m) - { - case 0: - return PathEndMatcher::matchesMaskEnd(path); - - case Zstr('?'): - if (*path == 0) - return false; - break; - - case Zstr('*'): - do //advance mask to next non-* char - { - m = *++mask; - } - while (m == Zstr('*')); - - if (m == 0) //mask ends with '*': - return PathEndMatcher::matchesMaskStar(path); - - //*? - pattern - if (m == Zstr('?')) - { - ++mask; - while (*path++ != 0) - if (matchesMask(path, mask)) - return true; - return false; - } - - //*[letter] - pattern - ++mask; - for (;;) - { - path = cStringFind(path, m); - if (!path) - return false; - - ++path; - if (matchesMask(path, mask)) - return true; - } - - default: - if (*path != m) - return false; - } - } -} - - -//returns true if string matches at least the beginning of mask -inline -bool matchesMaskBegin(const Zchar* str, const Zchar* mask) -{ - for (;; ++mask, ++str) - { - const Zchar m = *mask; - switch (m) - { - case 0: - return *str == 0; - - case Zstr('?'): - if (*str == 0) - return true; - break; - - case Zstr('*'): - return true; - - default: - if (*str != m) - return *str == 0; - } - } -} - - -template inline -bool matchesMask(const Zstring& name, const std::vector& masks) -{ - return std::any_of(masks.begin(), masks.end(), [&](const Zstring& mask) { return matchesMask(name.c_str(), mask.c_str()); }); -} - - -inline -bool matchesMaskBegin(const Zstring& name, const std::vector& masks) -{ - return std::any_of(masks.begin(), masks.end(), [&](const Zstring& mask) { return matchesMaskBegin(name.c_str(), mask.c_str()); }); -} -} - - -std::vector fff::splitByDelimiter(const Zstring& filterPhrase) -{ - //delimiters may be FILTER_ITEM_SEPARATOR or '\n' - std::vector output; - - for (const Zstring& str : split(filterPhrase, FILTER_ITEM_SEPARATOR, SplitType::SKIP_EMPTY)) //split by less common delimiter first (create few, large strings) - for (Zstring entry : split(str, Zstr('\n'), SplitType::SKIP_EMPTY)) - { - trim(entry); - if (!entry.empty()) - output.push_back(std::move(entry)); - } - - return output; -} - -//################################################################################################# - -NameFilter::NameFilter(const Zstring& includePhrase, const Zstring& excludePhrase) -{ - //setup include/exclude filters for files and directories - for (const Zstring& entry : splitByDelimiter(includePhrase)) addFilterEntry(entry, includeMasksFileFolder, includeMasksFolder); - for (const Zstring& entry : splitByDelimiter(excludePhrase)) addFilterEntry(entry, excludeMasksFileFolder, excludeMasksFolder); - - removeDuplicates(includeMasksFileFolder); - removeDuplicates(includeMasksFolder); - removeDuplicates(excludeMasksFileFolder); - removeDuplicates(excludeMasksFolder); -} - - -void NameFilter::addExclusion(const Zstring& excludePhrase) -{ - for (const Zstring& entry : splitByDelimiter(excludePhrase)) addFilterEntry(entry, excludeMasksFileFolder, excludeMasksFolder); - - removeDuplicates(excludeMasksFileFolder); - removeDuplicates(excludeMasksFolder); -} - - -bool NameFilter::passFileFilter(const Zstring& relFilePath) const -{ - assert(!startsWith(relFilePath, FILE_NAME_SEPARATOR)); - - //normalize input: 1. ignore Unicode normalization form 2. ignore case - const Zstring& pathFmt = makeUpperCopy(relFilePath); - - if (matchesMask(pathFmt, excludeMasksFileFolder) || //either full match on file or partial match on any parent folder - matchesMask(pathFmt, excludeMasksFolder)) //partial match on any parent folder only - return false; - - return matchesMask(pathFmt, includeMasksFileFolder) || - matchesMask(pathFmt, includeMasksFolder); -} - - -bool NameFilter::passDirFilter(const Zstring& relDirPath, bool* childItemMightMatch) const -{ - assert(!startsWith(relDirPath, FILE_NAME_SEPARATOR)); - assert(!childItemMightMatch || *childItemMightMatch); //check correct usage - - //normalize input: 1. ignore Unicode normalization form 2. ignore case - const Zstring& pathFmt = makeUpperCopy(relDirPath); - - if (matchesMask(pathFmt, excludeMasksFileFolder) || - matchesMask(pathFmt, excludeMasksFolder)) - { - if (childItemMightMatch) - *childItemMightMatch = false; //perf: no need to traverse deeper; subfolders/subfiles would be excluded by filter anyway! - /* - Attention: the design choice that "childItemMightMatch" is optional implies that the filter must provide correct results no matter if this - value is considered by the client! - In particular, if *childItemMightMatch == false, then any filter evaluations for child items must also return "false"! - This is not a problem for folder traversal which stops at the first *childItemMightMatch == false anyway, but other code continues recursing further, - e.g. the database update code in db_file.cpp recurses unconditionally without filter check! It's possible to construct edge cases with incorrect - behavior if "childItemMightMatch" were not optional: - 1. two folders including a subfolder with some files are in sync with up-to-date database files - 2. deny access to this subfolder on both sides and start sync ignoring errors - 3. => database entries of this subfolder are incorrectly deleted! (if sub-folder is excluded, but child items are not!) - */ - return false; - } - - if (!matchesMask(pathFmt, includeMasksFileFolder) && - !matchesMask(pathFmt, includeMasksFolder)) - { - if (childItemMightMatch) - { - const Zstring& childPathBegin = pathFmt + FILE_NAME_SEPARATOR; - - *childItemMightMatch = matchesMaskBegin(childPathBegin, includeMasksFileFolder) || //might match a file or folder in subdirectory - matchesMaskBegin(childPathBegin, includeMasksFolder); // - } - return false; - } - - return true; -} - - -bool NameFilter::isNull(const Zstring& includePhrase, const Zstring& excludePhrase) -{ - const Zstring include = trimCpy(includePhrase); - const Zstring exclude = trimCpy(excludePhrase); - - return include == Zstr("*") && exclude.empty(); - //return NameFilter(includePhrase, excludePhrase).isNull(); -> very expensive for huge lists -} - - -bool NameFilter::isNull() const -{ - return includeMasksFileFolder.size() == 1 && includeMasksFileFolder[0] == Zstr("*") && - includeMasksFolder .empty() && - excludeMasksFileFolder.empty() && - excludeMasksFolder .empty(); - //avoid static non-POD null-NameFilter instance; instead test manually and verify function on startup: -} - - - -bool NameFilter::cmpLessSameType(const HardFilter& other) const -{ - assert(typeid(*this) == typeid(other)); //always given in this context! - - const NameFilter& otherNameFilt = static_cast(other); - - if (includeMasksFileFolder != otherNameFilt.includeMasksFileFolder) - return includeMasksFileFolder < otherNameFilt.includeMasksFileFolder; - - if (includeMasksFolder != otherNameFilt.includeMasksFolder) - return includeMasksFolder < otherNameFilt.includeMasksFolder; - - if (excludeMasksFileFolder != otherNameFilt.excludeMasksFileFolder) - return excludeMasksFileFolder < otherNameFilt.excludeMasksFileFolder; - - if (excludeMasksFolder != otherNameFilt.excludeMasksFolder) - return excludeMasksFolder < otherNameFilt.excludeMasksFolder; - - return false; //all equal -} diff --git a/FreeFileSync/Source/base/hard_filter.h b/FreeFileSync/Source/base/hard_filter.h deleted file mode 100755 index 682c2502..00000000 --- a/FreeFileSync/Source/base/hard_filter.h +++ /dev/null @@ -1,241 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef HARD_FILTER_H_825780275842758345 -#define HARD_FILTER_H_825780275842758345 - -#include -#include -#include - - -namespace fff -{ -//------------------------------------------------------------------ -/* -Semantics of HardFilter: -1. using it creates a NEW folder hierarchy! -> must be considered by variant! -2. it applies equally to both sides => it always matches either both sides or none! => can be used while traversing a single folder! - - class hierarchy: - - HardFilter (interface) - /|\ - _________|_____________ - | | | -NullFilter NameFilter CombinedFilter -*/ - -class HardFilter //interface for filtering -{ -public: - virtual ~HardFilter() {} - - //filtering - virtual bool passFileFilter(const Zstring& relFilePath) const = 0; - virtual bool passDirFilter (const Zstring& relDirPath, bool* childItemMightMatch) const = 0; - //childItemMightMatch: file/dir in subdirectories could(!) match - //note: this hint is only set if passDirFilter returns false! - - virtual bool isNull() const = 0; //filter is equivalent to NullFilter, but may be technically slower - - using FilterRef = std::shared_ptr; //always bound by design! Thread-safety: internally synchronized! - - virtual FilterRef copyFilterAddingExclusion(const Zstring& excludePhrase) const = 0; - -private: - friend bool operator<(const HardFilter& lhs, const HardFilter& rhs); - - virtual bool cmpLessSameType(const HardFilter& other) const = 0; //typeid(*this) == typeid(other) in this context! -}; - -bool operator<(const HardFilter& lhs, const HardFilter& rhs); //GCC: friend-declaration is not a "proper" declaration -inline bool operator==(const HardFilter& lhs, const HardFilter& rhs) { return !(lhs < rhs) && !(rhs < lhs); } -inline bool operator!=(const HardFilter& lhs, const HardFilter& rhs) { return !(lhs == rhs); } - - -//small helper method: merge two hard filters (thereby remove Null-filters) -HardFilter::FilterRef combineFilters(const HardFilter::FilterRef& first, - const HardFilter::FilterRef& second); - - -class NullFilter : public HardFilter //no filtering at all -{ -public: - bool passFileFilter(const Zstring& relFilePath) const override { return true; } - bool passDirFilter(const Zstring& relDirPath, bool* childItemMightMatch) const override; - bool isNull() const override { return true; } - FilterRef copyFilterAddingExclusion(const Zstring& excludePhrase) const override; - -private: - bool cmpLessSameType(const HardFilter& other) const override; -}; - - -class NameFilter : public HardFilter //filter by base-relative file path -{ -public: - NameFilter(const Zstring& includePhrase, const Zstring& excludePhrase); - - void addExclusion(const Zstring& excludePhrase); - - bool passFileFilter(const Zstring& relFilePath) const override; - bool passDirFilter(const Zstring& relDirPath, bool* childItemMightMatch) const override; - - bool isNull() const override; - static bool isNull(const Zstring& includePhrase, const Zstring& excludePhrase); //*fast* check without expensive NameFilter construction! - FilterRef copyFilterAddingExclusion(const Zstring& excludePhrase) const override; - -private: - bool cmpLessSameType(const HardFilter& other) const override; - - std::vector includeMasksFileFolder; // - std::vector includeMasksFolder; //upper-case + Unicode-normalized by construction - std::vector excludeMasksFileFolder; // - std::vector excludeMasksFolder; // -}; - - -class CombinedFilter : public HardFilter //combine two filters to match if and only if both match -{ -public: - CombinedFilter(const NameFilter& first, const NameFilter& second) : first_(first), second_(second) { assert(!first.isNull() && !second.isNull()); } //if either is null, then wy use CombinedFilter? - - bool passFileFilter(const Zstring& relFilePath) const override; - bool passDirFilter(const Zstring& relDirPath, bool* childItemMightMatch) const override; - bool isNull() const override; - FilterRef copyFilterAddingExclusion(const Zstring& excludePhrase) const override; - -private: - bool cmpLessSameType(const HardFilter& other) const override; - - const NameFilter first_; - const NameFilter second_; -}; - -const Zchar FILTER_ITEM_SEPARATOR = Zstr('|'); - - - - - -//--------------- inline implementation --------------------------------------- -inline -bool NullFilter::passDirFilter(const Zstring& relDirPath, bool* childItemMightMatch) const -{ - assert(!childItemMightMatch || *childItemMightMatch); //check correct usage - return true; -} - - -inline -bool NullFilter::cmpLessSameType(const HardFilter& other) const -{ - assert(typeid(*this) == typeid(other)); //always given in this context! - return false; -} - - -inline -HardFilter::FilterRef NullFilter::copyFilterAddingExclusion(const Zstring& excludePhrase) const -{ - auto filter = std::make_shared(Zstr("*"), excludePhrase); - if (filter->isNull()) - return std::make_shared(); - return filter; -} - - -inline -HardFilter::FilterRef NameFilter::copyFilterAddingExclusion(const Zstring& excludePhrase) const -{ - auto tmp = std::make_shared(*this); - tmp->addExclusion(excludePhrase); - return tmp; -} - - -inline -bool CombinedFilter::passFileFilter(const Zstring& relFilePath) const -{ - return first_ .passFileFilter(relFilePath) && //short-circuit behavior - second_.passFileFilter(relFilePath); -} - - -inline -bool CombinedFilter::passDirFilter(const Zstring& relDirPath, bool* childItemMightMatch) const -{ - if (first_.passDirFilter(relDirPath, childItemMightMatch)) - return second_.passDirFilter(relDirPath, childItemMightMatch); - else - { - if (childItemMightMatch && *childItemMightMatch) - second_.passDirFilter(relDirPath, childItemMightMatch); - return false; - } -} - - -inline -bool CombinedFilter::isNull() const -{ - return first_.isNull() && second_.isNull(); -} - - -inline -HardFilter::FilterRef CombinedFilter::copyFilterAddingExclusion(const Zstring& excludePhrase) const -{ - NameFilter tmp(first_); - tmp.addExclusion(excludePhrase); - - return std::make_shared(tmp, second_); -} - - -inline -bool CombinedFilter::cmpLessSameType(const HardFilter& other) const -{ - assert(typeid(*this) == typeid(other)); //always given in this context! - - const CombinedFilter& otherCombFilt = static_cast(other); - - if (first_ != otherCombFilt.first_) - return first_ < otherCombFilt.first_; - - return second_ < otherCombFilt.second_; -} - - -inline -HardFilter::FilterRef constructFilter(const Zstring& includePhrase, - const Zstring& excludePhrase, - const Zstring& includePhrase2, - const Zstring& excludePhrase2) -{ - if (NameFilter::isNull(includePhrase, Zstring())) - { - std::shared_ptr filterTmp = std::make_shared(includePhrase2, excludePhrase + Zstr("\n") + excludePhrase2); - if (filterTmp->isNull()) - return std::make_shared(); - - return filterTmp; - } - else - { - if (NameFilter::isNull(includePhrase2, Zstring())) - return std::make_shared(includePhrase, excludePhrase + Zstr("\n") + excludePhrase2); - else - return std::make_shared(NameFilter(includePhrase, excludePhrase + Zstr("\n") + excludePhrase2), NameFilter(includePhrase2, Zstring())); - } -} - - -std::vector splitByDelimiter(const Zstring& filterPhrase); //keep external linkage for unit test -} - -#endif //HARD_FILTER_H_825780275842758345 diff --git a/FreeFileSync/Source/fs/concrete_impl.h b/FreeFileSync/Source/fs/concrete_impl.h deleted file mode 100755 index aa308372..00000000 --- a/FreeFileSync/Source/fs/concrete_impl.h +++ /dev/null @@ -1,213 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef IMPL_HELPER_H_873450978453042524534234 -#define IMPL_HELPER_H_873450978453042524534234 - -#include "abstract.h" -#include - - -namespace fff -{ -template inline //return ignored error message if available -std::wstring tryReportingDirError(Function cmd /*throw FileError*/, AbstractFileSystem::TraverserCallback& cb /*throw X*/) -{ - for (size_t retryNumber = 0;; ++retryNumber) - try - { - cmd(); //throw FileError - return std::wstring(); - } - catch (const zen::FileError& e) - { - assert(!e.toString().empty()); - switch (cb.reportDirError(e.toString(), retryNumber)) //throw X - { - case AbstractFileSystem::TraverserCallback::ON_ERROR_CONTINUE: - return e.toString(); - case AbstractFileSystem::TraverserCallback::ON_ERROR_RETRY: - break; //continue with loop - } - } -} - - -template -struct Task -{ - Function getResult; //throw FileError - /* [[no_unique_address]] */ Context ctx; -}; - - -template -struct TaskResult -{ - Task wi; - std::exception_ptr error; //mutually exclusive - decltype(wi.getResult()) value; // -}; - -enum class SchedulerStatus -{ - HAVE_RESULT, - FINISHED, -}; - -template //avoid std::function memory alloc + virtual calls -class TaskScheduler -{ -public: - TaskScheduler(size_t threadCount, const std::string& groupName) : - threadGroup_(zen::ThreadGroup>(threadCount, groupName)) {} - - ~TaskScheduler() { threadGroup_ = {}; } //TaskScheduler must out-live threadGroup! (captured "this") - - //context of controlling thread, non-blocking: - template - void run(Task&& wi, bool insertFront = false) - { - threadGroup_->run([this, wi = std::move(wi)] - { - try { this->returnResult({ wi, nullptr, wi.getResult() }); } //throw FileError - catch (...) { this->returnResult({ wi, std::current_exception(), {} }); } - }, insertFront); - - std::lock_guard dummy(lockResult_); - ++resultsPending_; - } - - //context of controlling thread, blocking: - SchedulerStatus getResults(std::tuple>...>& results) - { - std::apply([](auto&... r) { (..., r.clear()); }, results); - - std::unique_lock dummy(lockResult_); - - auto resultsReady = [&] - { - bool ready = false; - std::apply([&ready](const auto&... r) { ready = (... || !r.empty()); }, results_); - return ready; - }; - - if (!resultsReady() && resultsPending_ == 0) - return SchedulerStatus::FINISHED; - - conditionNewResult_.wait(dummy, [&resultsReady] { return resultsReady(); }); - - results.swap(results_); //reuse memory + avoid needless item-level mutex locking - return SchedulerStatus::HAVE_RESULT; - } - -private: - TaskScheduler (const TaskScheduler&) = delete; - TaskScheduler& operator=(const TaskScheduler&) = delete; - - //context of worker threads, non-blocking: - template - void returnResult(TaskResult&& r) - { - { - std::lock_guard dummy(lockResult_); - - std::get>>(results_).push_back(std::move(r)); - --resultsPending_; - } - conditionNewResult_.notify_all(); - } - - std::optional>> threadGroup_; - - std::mutex lockResult_; - size_t resultsPending_ = 0; - std::tuple>...> results_; - std::condition_variable conditionNewResult_; -}; - - -struct TravContext -{ - Zstring errorItemName; //empty if all items affected - size_t errorRetryCount = 0; - std::shared_ptr cb; //call by controlling thread only! => don't require traverseFolderParallel() callbacks to be thread-safe! -}; - - -template -class GenericDirTraverser -{ -public: - using Function1 = zen::GetFirstOfT; - - GenericDirTraverser(std::vector>&& initialTasks /*throw X*/, size_t parallelOps, const std::string& threadGroupName) : - scheduler_(parallelOps, threadGroupName) - { - //set the initial work load - for (auto& item : initialTasks) - scheduler_.template run(std::move(item)); - - //run loop - std::tuple>...> results; //avoid per-getNextResults() memory allocations (=> swap instead!) - - while (scheduler_.getResults(results) == SchedulerStatus::HAVE_RESULT) - std::apply([&](auto&... r) { (..., this->evalResultList(r)); }, results); //throw X - } - -private: - GenericDirTraverser (const GenericDirTraverser&) = delete; - GenericDirTraverser& operator=(const GenericDirTraverser&) = delete; - - template - void evalResultList(std::vector>& results /*throw X*/) - { - for (TaskResult& result : results) - evalResult(result); //throw X - } - - template - void evalResult(TaskResult& result /*throw X*/); - - //specialize! - template - void evalResultValue(const typename Function::Result& r, std::shared_ptr& cb /*throw X*/); - - TaskScheduler scheduler_; -}; - - -template -template -void GenericDirTraverser::evalResult(TaskResult& result /*throw X*/) -{ - auto& cb = result.wi.ctx.cb; - try - { - if (result.error) - std::rethrow_exception(result.error); //throw FileError - } - catch (const zen::FileError& e) - { - switch (result.wi.ctx.errorItemName.empty() ? - cb->reportDirError (e.toString(), result.wi.ctx.errorRetryCount) : //throw X - cb->reportItemError(e.toString(), result.wi.ctx.errorRetryCount, result.wi.ctx.errorItemName)) //throw X - { - case AbstractFileSystem::TraverserCallback::ON_ERROR_RETRY: - //user expects that the task is retried immediately => we can't do much about other errors already waiting in the queue, but at least *prepend* to the work load! - scheduler_.template run({ std::move(result.wi.getResult), TravContext{ result.wi.ctx.errorItemName, result.wi.ctx.errorRetryCount + 1, cb }}, - true /*insertFront*/); - return; - - case AbstractFileSystem::TraverserCallback::ON_ERROR_CONTINUE: - return; - } - } - evalResultValue(result.value, cb); //throw X -} -} - -#endif //IMPL_HELPER_H_873450978453042524534234 diff --git a/FreeFileSync/Source/ui/search.cpp b/FreeFileSync/Source/ui/search.cpp deleted file mode 100755 index dd46c7f8..00000000 --- a/FreeFileSync/Source/ui/search.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#include "search.h" -#include -#include - -using namespace zen; -using namespace fff; - - -namespace -{ -template -class MatchFound -{ -public: - MatchFound(const std::wstring& textToFind) : textToFind_(textToFind) {} - bool operator()(const std::wstring& phrase) const { return contains(phrase, textToFind_); } - -private: - const std::wstring textToFind_; -}; - - -template <> -class MatchFound -{ -public: - MatchFound(const std::wstring& textToFind) : textToFind_(makeUpperCopy(textToFind)) {} - bool operator()(std::wstring&& phrase) const { return contains(makeUpperCopy(phrase), textToFind_); } - -private: - const std::wstring textToFind_; -}; - -//########################################################################################### - -template -ptrdiff_t findRow(const Grid& grid, //return -1 if no matching row found - const std::wstring& searchString, - bool searchAscending, - size_t rowFirst, //specify area to search: - size_t rowLast) // [rowFirst, rowLast) -{ - if (auto prov = grid.getDataProvider()) - { - std::vector colAttr = grid.getColumnConfig(); - erase_if(colAttr, [](const Grid::ColAttributes& ca) { return !ca.visible; }); - if (!colAttr.empty()) - { - const MatchFound matchFound(searchString); - - if (searchAscending) - { - for (size_t row = rowFirst; row < rowLast; ++row) - for (const Grid::ColAttributes& ca : colAttr) - if (matchFound(prov->getValue(row, ca.type))) - return row; - } - else - for (size_t row = rowLast; row-- > rowFirst;) - for (const Grid::ColAttributes& ca : colAttr) - if (matchFound(prov->getValue(row, ca.type))) - return row; - } - } - return -1; -} -} - - -std::pair fff::findGridMatch(const Grid& grid1, const Grid& grid2, const std::wstring& searchString, bool respectCase, bool searchAscending) -{ - //PERF_START - - const size_t rowCount1 = grid1.getRowCount(); - const size_t rowCount2 = grid2.getRowCount(); - - size_t cursorRow1 = grid1.getGridCursor(); - if (cursorRow1 >= rowCount1) - cursorRow1 = 0; - - std::pair result(nullptr, -1); - - auto finishSearch = [&](const Grid& grid, size_t rowFirst, size_t rowLast) - { - const ptrdiff_t targetRow = respectCase ? - findRow(grid, searchString, searchAscending, rowFirst, rowLast) : - findRow(grid, searchString, searchAscending, rowFirst, rowLast); - if (targetRow >= 0) - { - result = { &grid, targetRow }; - return true; - } - return false; - }; - - if (searchAscending) - { - if (!finishSearch(grid1, cursorRow1 + 1, rowCount1)) - if (!finishSearch(grid2, 0, rowCount2)) - finishSearch(grid1, 0, cursorRow1 + 1); - } - else - { - if (!finishSearch(grid1, 0, cursorRow1)) - if (!finishSearch(grid2, 0, rowCount2)) - finishSearch(grid1, cursorRow1, rowCount1); - } - return result; -} diff --git a/FreeFileSync/Source/ui/search.h b/FreeFileSync/Source/ui/search.h deleted file mode 100755 index 81560f7c..00000000 --- a/FreeFileSync/Source/ui/search.h +++ /dev/null @@ -1,19 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef SEARCH_H_423905762345342526587 -#define SEARCH_H_423905762345342526587 - -#include - - -namespace fff -{ -std::pair findGridMatch(const zen::Grid& grid1, const zen::Grid& grid2, const std::wstring& searchString, bool respectCase, bool searchAscending); -//returns (grid/row) where the value was found, (nullptr, -1) if not found -} - -#endif //SEARCH_H_423905762345342526587 diff --git a/FreeFileSync/Source/ui/version_check_impl.h b/FreeFileSync/Source/ui/version_check_impl.h deleted file mode 100755 index 64030de3..00000000 --- a/FreeFileSync/Source/ui/version_check_impl.h +++ /dev/null @@ -1,59 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef VERSION_ID_HEADER_2348769284769242 -#define VERSION_ID_HEADER_2348769284769242 - -#include -#include -#include "../version/version.h" - - -namespace fff -{ -inline -time_t getVersionCheckInactiveId() -{ - //use current version to calculate a changing number for the inactive state near UTC begin, in order to always check for updates after installing a new version - //=> interpret version as 11-based *unique* number (this breaks lexicographical version ordering, but that's irrelevant!) - int id = 0; - const char* first = ffsVersion; - const char* last = first + zen::strLength(ffsVersion); - std::for_each(first, last, [&](char c) - { - id *= 11; - if ('0' <= c && c <= '9') - id += c - '0'; - else - { - assert(c == FFS_VERSION_SEPARATOR); - id += 10; - } - }); - assert(0 < id && id < 3600 * 24 * 365); //as long as value is within a year after UTC begin (1970) there's no risk to clash with *current* time - return id; -} - - -inline -time_t getVersionCheckCurrentTime() -{ - return std::time(nullptr); -} - - -//as declared in version_check.h: -bool shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck) -{ - if (lastUpdateCheck == getVersionCheckInactiveId()) - return false; - - const time_t now = std::time(nullptr); - return numeric::dist(now, lastUpdateCheck) >= 7 * 24 * 3600; //check weekly -} -} - -#endif //VERSION_ID_HEADER_2348769284769242 diff --git a/wx+/zlib_wrap.cpp b/wx+/zlib_wrap.cpp deleted file mode 100755 index fbbe2f09..00000000 --- a/wx+/zlib_wrap.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#include "zlib_wrap.h" -//Windows: use the SAME zlib version that wxWidgets is linking against! //C:\Data\Projects\wxWidgets\Source\src\zlib\zlib.h -//Linux/macOS: use zlib system header for both wxWidgets and Curl (zlib is required for HTTP) -// => don't compile wxWidgets with: --with-zlib=builtin -#include - -using namespace zen; - - -size_t zen::impl::zlib_compressBound(size_t len) -{ - return ::compressBound(static_cast(len)); //upper limit for buffer size, larger than input size!!! -} - - -size_t zen::impl::zlib_compress(const void* src, size_t srcLen, void* trg, size_t trgLen, int level) //throw ZlibInternalError -{ - uLongf bufferSize = static_cast(trgLen); - const int rv = ::compress2(static_cast(trg), //Bytef* dest, - &bufferSize, //uLongf* destLen, - static_cast(src), //const Bytef* source, - static_cast(srcLen), //uLong sourceLen, - level); //int level - // Z_OK: success - // Z_MEM_ERROR: not enough memory - // Z_BUF_ERROR: not enough room in the output buffer - if (rv != Z_OK || bufferSize > trgLen) - throw ZlibInternalError(); - return bufferSize; -} - - -size_t zen::impl::zlib_decompress(const void* src, size_t srcLen, void* trg, size_t trgLen) //throw ZlibInternalError -{ - uLongf bufferSize = static_cast(trgLen); - const int rv = ::uncompress(static_cast(trg), //Bytef* dest, - &bufferSize, //uLongf* destLen, - static_cast(src), //const Bytef* source, - static_cast(srcLen)); //uLong sourceLen - // Z_OK: success - // Z_MEM_ERROR: not enough memory - // Z_BUF_ERROR: not enough room in the output buffer - // Z_DATA_ERROR: input data was corrupted or incomplete - if (rv != Z_OK || bufferSize > trgLen) - throw ZlibInternalError(); - return bufferSize; -} diff --git a/wx+/zlib_wrap.h b/wx+/zlib_wrap.h deleted file mode 100755 index d3bb017b..00000000 --- a/wx+/zlib_wrap.h +++ /dev/null @@ -1,114 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef ZLIB_WRAP_H_428597064566 -#define ZLIB_WRAP_H_428597064566 - -#include - - -namespace zen -{ -class ZlibInternalError {}; - -// compression level must be between 0 and 9: -// 0: no compression -// 9: best compression -template //as specified in serialize.h -BinContainer compress(const BinContainer& stream, int level); //throw ZlibInternalError -//caveat: output stream is physically larger than input! => strip additional reserved space if needed: "BinContainer(output.begin(), output.end())" - -template -BinContainer decompress(const BinContainer& stream); //throw ZlibInternalError - - - - - - - - - - - -//######################## implementation ########################## -namespace impl -{ -size_t zlib_compressBound(size_t len); -size_t zlib_compress (const void* src, size_t srcLen, void* trg, size_t trgLen, int level); //throw ZlibInternalError -size_t zlib_decompress(const void* src, size_t srcLen, void* trg, size_t trgLen); //throw ZlibInternalError -} - - -template -BinContainer compress(const BinContainer& stream, int level) //throw ZlibInternalError -{ - BinContainer contOut; - if (!stream.empty()) //don't dereference iterator into empty container! - { - //save uncompressed stream size for decompression - const uint64_t uncompressedSize = stream.size(); //use portable number type! - contOut.resize(sizeof(uncompressedSize)); - std::copy(reinterpret_cast(&uncompressedSize), - reinterpret_cast(&uncompressedSize) + sizeof(uncompressedSize), - &*contOut.begin()); - - const size_t bufferEstimate = impl::zlib_compressBound(stream.size()); //upper limit for buffer size, larger than input size!!! - - contOut.resize(contOut.size() + bufferEstimate); - - const size_t bytesWritten = impl::zlib_compress(&*stream.begin(), - stream.size(), - &*contOut.begin() + contOut.size() - bufferEstimate, - bufferEstimate, - level); //throw ZlibInternalError - if (bytesWritten < bufferEstimate) - contOut.resize(contOut.size() - (bufferEstimate - bytesWritten)); //caveat: unsigned arithmetics - //caveat: physical memory consumption still *unchanged*! - } - return contOut; -} - - -template -BinContainer decompress(const BinContainer& stream) //throw ZlibInternalError -{ - BinContainer contOut; - if (!stream.empty()) //don't dereference iterator into empty container! - { - //retrieve size of uncompressed data - uint64_t uncompressedSize = 0; //use portable number type! - if (stream.size() < sizeof(uncompressedSize)) - throw ZlibInternalError(); - std::copy(&*stream.begin(), - &*stream.begin() + sizeof(uncompressedSize), - reinterpret_cast(&uncompressedSize)); - //attention: contOut MUST NOT be empty! Else it will pass a nullptr to zlib_decompress() => Z_STREAM_ERROR although "uncompressedSize == 0"!!! - //secondary bug: don't dereference iterator into empty container! - if (uncompressedSize == 0) //cannot be 0: compress() directly maps empty -> empty container skipping zlib! - throw ZlibInternalError(); - - try - { - contOut.resize(static_cast(uncompressedSize)); //throw std::bad_alloc - } - catch (std::bad_alloc&) //most likely due to data corruption! - { - throw ZlibInternalError(); - } - - const size_t bytesWritten = impl::zlib_decompress(&*stream.begin() + sizeof(uncompressedSize), - stream.size() - sizeof(uncompressedSize), - &*contOut.begin(), - static_cast(uncompressedSize)); //throw ZlibInternalError - if (bytesWritten != static_cast(uncompressedSize)) - throw ZlibInternalError(); - } - return contOut; -} -} - -#endif //ZLIB_WRAP_H_428597064566 diff --git a/zen/xml_io.cpp b/zen/xml_io.cpp deleted file mode 100755 index dd116ef0..00000000 --- a/zen/xml_io.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#include "xml_io.h" -#include "file_access.h" -#include "file_io.h" - -using namespace zen; - - -XmlDoc zen::loadXmlDocument(const Zstring& filePath) //throw FileError -{ - FileInput fileIn(filePath, nullptr /*notifyUnbufferedIO*/); //throw FileError, ErrorFileLocked - const size_t blockSize = fileIn.getBlockSize(); - const std::string xmlPrefix = "= xmlPrefix.size() + strLength(BYTE_ORDER_MARK_UTF8)) - { - xmlPrefixChecked = true; - if (!startsWith(buffer, xmlPrefix) && - !startsWith(buffer, BYTE_ORDER_MARK_UTF8 + xmlPrefix)) //allow BOM! - throw FileError(replaceCpy(_("File %x does not contain a valid configuration."), L"%x", fmtPath(filePath))); - } - - if (bytesRead < blockSize) //end of file - break; - } - - try - { - return parse(buffer); //throw XmlParsingError - } - catch (const XmlParsingError& e) - { - throw FileError( - replaceCpy(replaceCpy(replaceCpy(_("Error parsing file %x, row %y, column %z."), - L"%x", fmtPath(filePath)), - L"%y", numberTo(e.row + 1)), - L"%z", numberTo(e.col + 1))); - } -} - - -void zen::saveXmlDocument(const XmlDoc& doc, const Zstring& filePath) //throw FileError -{ - const std::string stream = serialize(doc); //noexcept - - //only update XML file if there are real changes - try - { - if (getFileSize(filePath) == stream.size()) //throw FileError - if (loadBinContainer(filePath, nullptr /*notifyUnbufferedIO*/) == stream) //throw FileError - return; - } - catch (FileError&) {} - - saveBinContainer(filePath, stream, nullptr /*notifyUnbufferedIO*/); //throw FileError -} - - -void zen::checkForMappingErrors(const XmlIn& xmlInput, const Zstring& filePath) //throw FileError -{ - if (xmlInput.errorsOccured()) - { - std::wstring msg = _("The following XML elements could not be read:") + L"\n"; - for (const std::wstring& elem : xmlInput.getErrorsAs()) - msg += L"\n" + elem; - - throw FileError(replaceCpy(_("Configuration file %x is incomplete. The missing elements will be set to their default values."), L"%x", fmtPath(filePath)) + L"\n\n" + msg); - } -} diff --git a/zen/xml_io.h b/zen/xml_io.h deleted file mode 100755 index 81b45aa1..00000000 --- a/zen/xml_io.h +++ /dev/null @@ -1,26 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef XML_IO_H_8914759321263879 -#define XML_IO_H_8914759321263879 - -#include -#include "file_error.h" - - -//combine zen::Xml and zen file I/O -//-> loadXmlDocument vs loadStream: -//1. better error reporting -//2. quick exit if (potentially large) input file is not an XML -namespace zen -{ -XmlDoc loadXmlDocument(const Zstring& filePath); //throw FileError -void checkForMappingErrors(const XmlIn& xmlInput, const Zstring& filePath); //throw FileError - -void saveXmlDocument(const XmlDoc& doc, const Zstring& filePath); //throw FileError -} - -#endif //XML_IO_H_8914759321263879 diff --git a/zenXml/zenxml/bind.h b/zenXml/zenxml/bind.h deleted file mode 100755 index 28f02745..00000000 --- a/zenXml/zenxml/bind.h +++ /dev/null @@ -1,390 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef BIND_H_9081740816593478258435 -#define BIND_H_9081740816593478258435 - -#include -#include "cvrt_struc.h" -#include "parser.h" -#include "io.h" - - -namespace zen -{ -/** -\file -\brief Map user data types to XML -*/ - -///Load XML document from a file -/** -Convenience function that does nothing more than calling loadStream() and parse(). - -\tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... -\param filename Input file name -\returns The loaded XML document -\throw XmlFileError -\throw XmlParsingError -*/ -template inline -XmlDoc load(const String& filename) //throw XmlFileError, XmlParsingError -{ - std::string stream = loadStream(filename); //throw XmlFileError - return parse(stream); //throw XmlParsingError -} - - -///Save XML document to a file -/** -Convenience function that does nothing more than calling serialize() and saveStream(). - -\tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... -\param doc The XML document to save -\param filename Output file name -\param lineBreak Line break, default: carriage return + new line -\param indent Indentation, default: four space characters -\throw XmlFileError -*/ -template inline -void save(const XmlDoc& doc, - const String& filename, - const std::string& lineBreak = "\r\n", - const std::string& indent = " ") //throw XmlFileError -{ - std::string stream = serialize(doc, lineBreak, indent); //noexcept - saveStream(stream, filename); //throw XmlFileError -} - - -///Proxy class to conveniently convert user data into XML structure -class XmlOut -{ -public: - ///Construct an output proxy for an XML document - /** - \code - zen::XmlDoc doc; - - zen::XmlOut out(doc); - out["elem1"]( 1); // - out["elem2"]( 2); //write data into XML elements - out["elem3"](-3); // - - save(doc, "out.xml"); //throw XmlFileError - \endcode - Output: - \verbatim - - - 1 - 2 - -3 - - \endverbatim - */ - XmlOut(XmlDoc& doc) : ref_(&doc.root()) {} - ///Construct an output proxy for a single XML element - /** - \sa XmlOut(XmlDoc& doc) - */ - XmlOut(XmlElement& element) : ref_(&element) {} - - ///Retrieve a handle to an XML child element for writing - /** - The child element will be created if it is not yet existing. - \tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... - \param name The name of the child element - */ - template - XmlOut operator[](const String& name) const - { - const std::string utf8name = utfTo(name); - XmlElement* child = ref_->getChild(utf8name); - return child ? *child : ref_->addChild(utf8name); - } - - ///Write user data to the underlying XML element - /** - This conversion requires a specialization of zen::writeText() or zen::writeStruc() for type T. - \tparam T User type that is converted into an XML element value. - */ - template - void operator()(const T& value) { writeStruc(value, *ref_); } - - ///Write user data to an XML attribute - /** - This conversion requires a specialization of zen::writeText() for type T. - \code - zen::XmlDoc doc; - - zen::XmlOut out(doc); - out["elem"].attribute("attr1", 1); // - out["elem"].attribute("attr2", 2); //write data into XML attributes - out["elem"].attribute("attr3", -3); // - - save(doc, "out.xml"); //throw XmlFileError - \endcode - Output: - \verbatim - - - - - \endverbatim - - \tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... - \tparam T String-convertible user data type: e.g. any string-like type, all built-in arithmetic numbers - \sa XmlElement::setAttribute() - */ - template - void attribute(const String& name, const T& value) { ref_->setAttribute(name, value); } - - ///Return a reference to the underlying Xml element - XmlElement& ref() { return *ref_; } - -private: - XmlElement* ref_; //always bound! -}; - - -///Proxy class to conveniently convert XML structure to user data -class XmlIn -{ - class ErrorLog; - -public: - ///Construct an input proxy for an XML document - /** - \code - zen::XmlDoc doc; - ... //load document - zen::XmlIn in(doc); - in["elem1"](value1); // - in["elem2"](value2); //read data from XML elements into variables "value1", "value2", "value3" - in["elem3"](value3); // - \endcode - */ - XmlIn(const XmlDoc& doc) : log_(std::make_shared()) { refList_.push_back(&doc.root()); } - ///Construct an input proxy for a single XML element, may be nullptr - /** - \sa XmlIn(const XmlDoc& doc) - */ - XmlIn(const XmlElement* element) : log_(std::make_shared()) { refList_.push_back(element); } - ///Construct an input proxy for a single XML element - /** - \sa XmlIn(const XmlDoc& doc) - */ - XmlIn(const XmlElement& element) : log_(std::make_shared()) { refList_.push_back(&element); } - - ///Retrieve a handle to an XML child element for reading - /** - It is \b not an error if the child element does not exist, but only later if a conversion to user data is attempted. - \tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... - \param name The name of the child element - */ - template - XmlIn operator[](const String& name) const - { - std::vector childList; - - if (refIndex_ < refList_.size()) - { - auto iterPair = refList_[refIndex_]->getChildren(name); - std::for_each(iterPair.first, iterPair.second, - [&](const XmlElement& child) { childList.push_back(&child); }); - } - - return XmlIn(childList, childList.empty() ? getChildNameFormatted(name) : std::string(), log_); - } - - ///Refer to next sibling element with the same name - /** - Example: Loop over all XML child elements named "Item" - \verbatim - - - 1 - 3 - 5 - - \endverbatim - - \code - zen::XmlIn in(doc); - ... - for (zen::XmlIn child = in["Item"]; child; child.next()) - { - ... - } - \endcode - */ - void next() { ++refIndex_; } - - ///Read user data from the underlying XML element - /** - This conversion requires a specialization of zen::readText() or zen::readStruc() for type T. - \tparam T User type that receives the data - \return "true" if data was read successfully - */ - template - bool operator()(T& value) const - { - if (refIndex_ < refList_.size()) - { - bool success = readStruc(*refList_[refIndex_], value); - if (!success) - log_->notifyConversionError(getNameFormatted()); - return success; - } - else - { - log_->notifyMissingElement(getNameFormatted()); - return false; - } - } - - ///Read user data from an XML attribute - /** - This conversion requires a specialization of zen::readText() for type T. - - \code - zen::XmlDoc doc; - ... //load document - zen::XmlIn in(doc); - in["elem"].attribute("attr1", value1); // - in["elem"].attribute("attr2", value2); //read data from XML attributes into variables "value1", "value2", "value3" - in["elem"].attribute("attr3", value3); // - \endcode - - \tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... - \tparam T String-convertible user data type: e.g. any string-like type, all built-in arithmetic numbers - \returns "true" if the attribute was found and the conversion to the output value was successful. - \sa XmlElement::getAttribute() - */ - template - bool attribute(const String& name, T& value) const - { - if (refIndex_ < refList_.size()) - { - bool success = refList_[refIndex_]->getAttribute(name, value); - if (!success) - log_->notifyMissingAttribute(getNameFormatted(), utfTo(name)); - return success; - } - else - { - log_->notifyMissingElement(getNameFormatted()); - return false; - } - } - - ///Return a pointer to the underlying Xml element, may be nullptr - const XmlElement* get() const { return refIndex_ < refList_.size() ? refList_[refIndex_] : nullptr; } - - ///Test whether the underlying XML element exists - /** - \code - XmlIn in(doc); - XmlIn child = in["elem1"]; - if (child) - ... - \endcode - Use member pointer as implicit conversion to bool (C++ Templates - Vandevoorde/Josuttis; chapter 20) - */ - explicit operator bool() const { return get() != nullptr; } - - ///Notifies errors while mapping the XML to user data - /** - Error logging is shared by each hiearchy of XmlIn proxy instances that are created from each other. Consequently it doesn't matter which instance you query for errors: - \code - XmlIn in(doc); - XmlIn inItem = in["item1"]; - - int value = 0; - inItem(value); //let's assume this conversion failed - - assert(in.errorsOccured() == inItem.errorsOccured()); - assert(in.getErrorsAs() == inItem.getErrorsAs()); - \endcode - - Note that error logging is \b NOT global, but owned by all instances of a hierarchy of XmlIn proxies. - Therefore it's safe to use unrelated XmlIn proxies in multiple threads. - \n\n - However be aware that the chain of connected proxy instances will be broken once you call XmlIn::get() to retrieve the underlying pointer. - Errors that occur when working with this pointer are not logged by the original set of related instances. - */ - bool errorsOccured() const { return !log_->elementList().empty(); } - - ///Get a list of XML element and attribute names which failed to convert to user data. - /** - \tparam String Arbitrary string class: e.g. std::string, std::wstring, wxString, MyStringClass, ... - \returns A list of XML element and attribute names, empty list if no errors occured. - */ - template - std::vector getErrorsAs() const - { - std::vector output; - const auto& elements = log_->elementList(); - std::transform(elements.begin(), elements.end(), std::back_inserter(output), [](const std::string& str) { return utfTo(str); }); - return output; - } - -private: - XmlIn(const std::vector& siblingList, const std::string& elementNameFmt, const std::shared_ptr& sharedlog) : - refList_(siblingList), formattedName_(elementNameFmt), log_(sharedlog) - { assert((!siblingList.empty() && elementNameFmt.empty()) || (siblingList.empty() && !elementNameFmt.empty())); } - - static std::string getNameFormatted(const XmlElement& elem) //" " - { - return (elem.parent() ? getNameFormatted(*elem.parent()) + " " : std::string()) + "<" + elem.getNameAs() + ">"; - } - - std::string getNameFormatted() const - { - if (refIndex_ < refList_.size()) - { - assert(formattedName_.empty()); - return getNameFormatted(*refList_[refIndex_]); - } - else - return formattedName_; - } - - std::string getChildNameFormatted(const std::string& childName) const - { - std::string parentName = getNameFormatted(); - return (parentName.empty() ? std::string() : (parentName + " ")) + "<" + childName + ">"; - } - - class ErrorLog - { - public: - void notifyConversionError (const std::string& displayName) { insert(displayName); } - void notifyMissingElement (const std::string& displayName) { insert(displayName); } - void notifyMissingAttribute(const std::string& displayName, const std::string& attribName) { insert(displayName + " @" + attribName); } - - const std::vector& elementList() const { return failedElements; } - - private: - void insert(const std::string& newVal) - { - if (usedElements.insert(newVal).second) - failedElements.push_back(newVal); - } - - std::vector failedElements; //unique list of failed elements - std::set usedElements; - }; - - std::vector refList_; //all sibling elements with same name (all pointers bound!) - size_t refIndex_ = 0; //this sibling's index in refList_ - std::string formattedName_; //contains full and formatted element name if (and only if) refList_ is empty - std::shared_ptr log_; //always bound -}; -} - -#endif //BIND_H_9081740816593478258435 diff --git a/zenXml/zenxml/error.h b/zenXml/zenxml/error.h deleted file mode 100755 index ceb36816..00000000 --- a/zenXml/zenxml/error.h +++ /dev/null @@ -1,19 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef ERROR_H_01873461843302148947321 -#define ERROR_H_01873461843302148947321 - -namespace zen -{ -///Exception base class for zen::Xml -struct XmlError -{ - virtual ~XmlError() {} -}; -} - -#endif //ERROR_H_01873461843302148947321 diff --git a/zenXml/zenxml/io.h b/zenXml/zenxml/io.h deleted file mode 100755 index 6d5a21d5..00000000 --- a/zenXml/zenxml/io.h +++ /dev/null @@ -1,98 +0,0 @@ -// ***************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: https://www.gnu.org/licenses/gpl-3.0 * -// * Copyright (C) Zenju (zenju AT freefilesync DOT org) - All Rights Reserved * -// ***************************************************************************** - -#ifndef IO_H_8917640501480763248343343 -#define IO_H_8917640501480763248343343 - -#include -#include -#include -#include -#include "error.h" - - -namespace zen -{ -/** -\file -\brief Save and load byte streams from files -*/ - - - -///Exception thrown due to failed file I/O -struct XmlFileError : public XmlError -{ - using ErrorCode = int; - - explicit XmlFileError(ErrorCode ec) : lastError(ec) {} - ///Native error code: errno - ErrorCode lastError; -}; - - - - -///Save byte stream to a file -/** -\tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... -\param stream Input byte stream -\param filename Output file name -\throw XmlFileError -*/ -template -void saveStream(const std::string& stream, const String& filename) //throw XmlFileError -{ - FILE* handle = ::fopen(utfTo(filename).c_str(), "w"); - if (!handle) - throw XmlFileError(errno); - ZEN_ON_SCOPE_EXIT(::fclose(handle)); - - const size_t bytesWritten = ::fwrite(stream.c_str(), 1, stream.size(), handle); - if (::ferror(handle) != 0) - throw XmlFileError(errno); - - (void)bytesWritten; - assert(bytesWritten == stream.size()); -} - - -///Load byte stream from a file -/** -\tparam String Arbitrary string-like type: e.g. std::string, wchar_t*, char[], wchar_t, wxString, MyStringClass, ... -\param filename Input file name -\return Output byte stream -\throw XmlFileError -*/ -template -std::string loadStream(const String& filename) //throw XmlFileError -{ - FILE* handle = ::fopen(utfTo(filename).c_str(), "r"); - if (!handle) - throw XmlFileError(errno); - ZEN_ON_SCOPE_EXIT(::fclose(handle)); - - std::string stream; - const size_t blockSize = 64 * 1024; - do - { - stream.resize(stream.size() + blockSize); //let's pray std::string implements exponential growth! - - const size_t bytesRead = ::fread(&*(stream.end() - blockSize), 1, blockSize, handle); - if (::ferror(handle)) - throw XmlFileError(errno); - if (bytesRead > blockSize) - throw XmlFileError(0); - if (bytesRead < blockSize) - stream.resize(stream.size() - blockSize + bytesRead); //caveat: unsigned arithmetics - } - while (!::feof(handle)); - - return stream; -} -} - -#endif //IO_H_8917640501480763248343343 -- cgit