summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FreeFileSync/Build/Changelog.txt88
-rw-r--r--FreeFileSync/Build/Help/FreeFileSync.hhc2
-rw-r--r--FreeFileSync/Build/Help/html/FreeFileSync.html4
-rw-r--r--FreeFileSync/Build/Help/html/RealtimeSync.html36
-rw-r--r--FreeFileSync/Build/Help/html/comparison-settings.html38
-rw-r--r--FreeFileSync/Build/Help/html/expert-settings.html33
-rw-r--r--FreeFileSync/Build/Help/html/run-as-service.html16
-rw-r--r--FreeFileSync/Build/Help/html/schedule-a-batch-job.html13
-rw-r--r--FreeFileSync/Build/Help/html/synchronize-with-sftp.html2
-rw-r--r--FreeFileSync/Build/Help/html/tips-and-tricks.html2
-rw-r--r--FreeFileSync/Build/Help/html/variable-drive-letters.html14
-rw-r--r--FreeFileSync/Build/Help/images/RTS-logo.pngbin5416 -> 0 bytes
-rw-r--r--FreeFileSync/Build/Help/images/RealtimeSync.pngbin18759 -> 0 bytes
-rw-r--r--FreeFileSync/Build/Help/images/comparison-settings.pngbin21782 -> 19034 bytes
-rw-r--r--FreeFileSync/Build/Help/images/comparison-variant-double-click.pngbin18810 -> 10744 bytes
-rw-r--r--FreeFileSync/Build/Help/images/create-shortcut.pngbin12551 -> 0 bytes
-rw-r--r--FreeFileSync/Build/Help/images/freefilesync-logo.png (renamed from FreeFileSync/Build/Help/images/FFS-logo.png)bin7488 -> 7488 bytes
-rw-r--r--FreeFileSync/Build/Help/images/ignore-time-shift.pngbin19056 -> 16458 bytes
-rw-r--r--FreeFileSync/Build/Help/images/main-window.png (renamed from FreeFileSync/Build/Help/images/main-dialog.png)bin49108 -> 49108 bytes
-rw-r--r--FreeFileSync/Build/Help/images/monitor-usb-insert.pngbin26087 -> 0 bytes
-rw-r--r--FreeFileSync/Build/Help/images/path-by-volume-name.pngbin2915 -> 2875 bytes
-rw-r--r--FreeFileSync/Build/Help/images/realtimesync-create-shortcut.pngbin0 -> 7797 bytes
-rw-r--r--FreeFileSync/Build/Help/images/realtimesync-logo.pngbin0 -> 6775 bytes
-rw-r--r--FreeFileSync/Build/Help/images/realtimesync-main-window.pngbin0 -> 13099 bytes
-rw-r--r--FreeFileSync/Build/Help/images/realtimesync-monitor-usb.pngbin0 -> 13141 bytes
-rw-r--r--FreeFileSync/Build/Help/images/realtimesync-schedule.pngbin0 -> 12941 bytes
-rw-r--r--FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.pngbin0 -> 11453 bytes
-rw-r--r--FreeFileSync/Build/Help/images/schedule-realtimesync.pngbin14648 -> 0 bytes
-rw-r--r--FreeFileSync/Build/Help/images/shortcut-properties.pngbin17436 -> 0 bytes
-rw-r--r--FreeFileSync/Build/Help/images/synchronization-variant-double-click.pngbin14079 -> 4261 bytes
-rw-r--r--FreeFileSync/Build/Help/images/windows-scheduler.pngbin14087 -> 13906 bytes
-rw-r--r--FreeFileSync/Build/Languages/arabic.lng177
-rw-r--r--FreeFileSync/Build/Languages/bulgarian.lng352
-rw-r--r--FreeFileSync/Build/Languages/chinese_simple.lng282
-rw-r--r--FreeFileSync/Build/Languages/chinese_traditional.lng369
-rw-r--r--FreeFileSync/Build/Languages/croatian.lng286
-rw-r--r--FreeFileSync/Build/Languages/czech.lng284
-rw-r--r--FreeFileSync/Build/Languages/danish.lng279
-rw-r--r--FreeFileSync/Build/Languages/dutch.lng283
-rw-r--r--FreeFileSync/Build/Languages/english_uk.lng198
-rw-r--r--FreeFileSync/Build/Languages/finnish.lng289
-rw-r--r--FreeFileSync/Build/Languages/french.lng285
-rw-r--r--FreeFileSync/Build/Languages/german.lng53
-rw-r--r--FreeFileSync/Build/Languages/greek.lng291
-rw-r--r--FreeFileSync/Build/Languages/hebrew.lng283
-rw-r--r--FreeFileSync/Build/Languages/hindi.lng287
-rw-r--r--FreeFileSync/Build/Languages/hungarian.lng285
-rw-r--r--FreeFileSync/Build/Languages/italian.lng285
-rw-r--r--FreeFileSync/Build/Languages/japanese.lng284
-rw-r--r--FreeFileSync/Build/Languages/korean.lng294
-rw-r--r--FreeFileSync/Build/Languages/lithuanian.lng284
-rw-r--r--FreeFileSync/Build/Languages/outdated/norwegian.lng4
-rw-r--r--FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng2
-rw-r--r--FreeFileSync/Build/Languages/polish.lng298
-rw-r--r--FreeFileSync/Build/Languages/portuguese.lng223
-rw-r--r--FreeFileSync/Build/Languages/portuguese_br.lng283
-rw-r--r--FreeFileSync/Build/Languages/romanian.lng284
-rw-r--r--FreeFileSync/Build/Languages/russian.lng288
-rw-r--r--FreeFileSync/Build/Languages/serbian.lng284
-rw-r--r--FreeFileSync/Build/Languages/slovenian.lng (renamed from FreeFileSync/Build/Languages/outdated/slovenian.lng)765
-rw-r--r--FreeFileSync/Build/Languages/spanish.lng287
-rw-r--r--FreeFileSync/Build/Languages/swedish.lng283
-rw-r--r--FreeFileSync/Build/Languages/turkish.lng566
-rw-r--r--FreeFileSync/Build/Languages/ukrainian.lng294
-rw-r--r--FreeFileSync/Build/Resources.zipbin289174 -> 291282 bytes
-rw-r--r--FreeFileSync/Build/ding.wavbin0 -> 33692 bytes
-rw-r--r--FreeFileSync/Build/gong.wav (renamed from FreeFileSync/Build/Sync_Complete.wav)bin460504 -> 460504 bytes
-rw-r--r--FreeFileSync/Build/harp.wavbin0 -> 364076 bytes
-rw-r--r--FreeFileSync/Source/RealtimeSync/Makefile6
-rw-r--r--FreeFileSync/Source/RealtimeSync/app_icon.h8
-rw-r--r--FreeFileSync/Source/RealtimeSync/application.cpp8
-rw-r--r--FreeFileSync/Source/RealtimeSync/main_dlg.cpp31
-rw-r--r--FreeFileSync/Source/RealtimeSync/tray_menu.cpp2
-rw-r--r--FreeFileSync/Source/RealtimeSync/xml_proc.cpp2
-rw-r--r--FreeFileSync/Source/algorithm.cpp28
-rw-r--r--FreeFileSync/Source/application.cpp3
-rw-r--r--FreeFileSync/Source/comparison.cpp61
-rw-r--r--FreeFileSync/Source/comparison.h1
-rw-r--r--FreeFileSync/Source/lib/dir_exist_async.h6
-rw-r--r--FreeFileSync/Source/lib/ffs_paths.cpp6
-rw-r--r--FreeFileSync/Source/lib/localization.cpp4
-rw-r--r--FreeFileSync/Source/lib/parse_lng.h3
-rw-r--r--FreeFileSync/Source/lib/process_xml.cpp167
-rw-r--r--FreeFileSync/Source/lib/process_xml.h81
-rw-r--r--FreeFileSync/Source/structures.cpp6
-rw-r--r--FreeFileSync/Source/structures.h9
-rw-r--r--FreeFileSync/Source/synchronization.cpp45
-rw-r--r--FreeFileSync/Source/synchronization.h1
-rw-r--r--FreeFileSync/Source/ui/batch_status_handler.cpp3
-rw-r--r--FreeFileSync/Source/ui/batch_status_handler.h1
-rw-r--r--FreeFileSync/Source/ui/folder_selector.cpp6
-rw-r--r--FreeFileSync/Source/ui/folder_selector.h2
-rw-r--r--FreeFileSync/Source/ui/gui_generated.cpp7734
-rw-r--r--FreeFileSync/Source/ui/gui_generated.h1688
-rw-r--r--FreeFileSync/Source/ui/gui_status_handler.cpp3
-rw-r--r--FreeFileSync/Source/ui/gui_status_handler.h1
-rw-r--r--FreeFileSync/Source/ui/main_dlg.cpp208
-rw-r--r--FreeFileSync/Source/ui/main_dlg.h2
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.cpp24
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.h1
-rw-r--r--FreeFileSync/Source/ui/small_dlgs.cpp2
-rw-r--r--FreeFileSync/Source/ui/sync_cfg.cpp68
-rw-r--r--FreeFileSync/Source/ui/version_check.cpp6
-rw-r--r--FreeFileSync/Source/version/version.h2
-rw-r--r--wx+/grid.cpp31
-rw-r--r--zen/dir_watcher.cpp56
-rw-r--r--zen/dir_watcher.h4
-rw-r--r--zen/file_access.cpp25
-rw-r--r--zen/i18n.h33
109 files changed, 11044 insertions, 8873 deletions
diff --git a/FreeFileSync/Build/Changelog.txt b/FreeFileSync/Build/Changelog.txt
index 8d13b2b0..1d444704 100644
--- a/FreeFileSync/Build/Changelog.txt
+++ b/FreeFileSync/Build/Changelog.txt
@@ -1,3 +1,19 @@
+FreeFileSync 7.9
+----------------
+New comparison variant: compare by file size
+Buffer SFTP read/write accesses for optimal packet sizes
+Configure folder access time out via GlobalSettings.xml
+Drag and drop config files anywhere on main dialog
+Work around "argument list too long" file copy error (OS X)
+Work around "invalid argument" file copy error (OS X)
+Support case-change when syncing to case-sensitive SFTP (Windows)
+Select between sync completion sounds gong/harp.wav
+Set up sync completion sound file in GlobalSettings.xml
+Validate monitoring data to avoid RealTimeSync crash
+Updated help file
+Updated translation files
+
+
FreeFileSync 7.8 [2016-01-01]
-----------------------------
Correctly resolve environment variables containing MTP paths
@@ -25,7 +41,7 @@ Handle integer overflows when comparing file times
Ignore more than one file time shift
Reworked grid to support mouse highlight areas
Allow minute precision for file time shifts
-Warn about unsupported MTP and SFTP paths in RealtimeSync
+Warn about unsupported MTP and SFTP paths in RealTimeSync
Strip superfluous mode parameters when creating a directory (Linux, OS X)
Correctly detect system language for English UK
Store program language by name to handle changing ids
@@ -131,7 +147,7 @@ Support opening MTP files with default application
Preselect active MTP folder in folder picker dialog
Work around file not found error when copying alternate data streams
Fixed access denied error when copying file times (Linux)
-Work around boost bug causing RealtimeSync to wake PC (Windows)
+Work around boost bug causing RealTimeSync to wake PC (Windows)
Fixed naming convention "replace" for versioning
Skip space pre-allocation if not supported (OS X)
Use faster space pre-allocation method (Linux)
@@ -158,9 +174,9 @@ Keep UI responsive while loading/saving database file
Improved error reporting indicating failed item when moving to recycle bin
Pass correct thread id when creating Minidump (Windows)
Fixed directory icon loading resource leak (Linux)
-Fixed RealtimeSync message provider exception safety issue (Windows)
+Fixed RealTimeSync message provider exception safety issue (Windows)
Avoid locking issues by creating the log file after batch synchronization
-Fixed RealtimeSync monitoring for items beyond subfolders (Linux)
+Fixed RealTimeSync monitoring for items beyond subfolders (Linux)
Fall back to file extension during file icon load error
Show file icon by extension as temporary placeholder
Work around silent failure to copy file times to external drives (Linux)
@@ -324,10 +340,10 @@ FreeFileSync 6.6 [2014-06-01]
Fixed large font size standard button layout
Fixed config dialog graphics glitch with large font sizes
Exit FreeFileSync launcher process during update
-Exclude temporary files from RealtimeSync monitor
+Exclude temporary files from RealTimeSync monitor
Implement correct standard button spacing (OS X)
Fixed SELinux compilation issue (Linux)
-Installer adds RealtimeSync link to desktop (Windows)
+Installer adds RealTimeSync link to desktop (Windows)
Improved makefile (Linux, OS X)
Reduced binary file size (Linux)
Updated translation files
@@ -391,7 +407,7 @@ Highlight non-zero synchronization statistics
FreeFileSync 6.1 [2014-01-01]
-----------------------------
-Released RealtimeSync for OS X
+Released RealTimeSync for OS X
Handle errors loading reference batch config
Disable user mode exception swallowing for Windows 7 SP1
Always exclude root nodes on manual selection when excluded items are hidden
@@ -431,9 +447,9 @@ Resolved help file W3C validation issues
Fixed high-contrast accessibility issues in help
Fixed crash for CPUs without SSE2 when using VSS (Windows XP)
Prevent progress statistics timer overflow
-Save RealtimeSync settings before forced exit due to shutdown or log off
+Save RealTimeSync settings before forced exit due to shutdown or log off
Resolved contract violation error due to out of memory
-RealtimeSync does not block system shutdown anymore
+RealTimeSync does not block system shutdown anymore
Added "select all" context menu option for progress log
Have progress log keyboard input ignore focus
Fixed category icon background color issues
@@ -512,7 +528,7 @@ Don't show hidden progress dialog when showing an error message in silent batch
Correctly show file names containing ampersand characters in progress dialog
Adapt size of results dialog to fit contents
Correctly execute file move before parent directory will be deleted
-Show a blinking system tray icon on errors instead of a modal dialog in RealtimeSync
+Show a blinking system tray icon on errors instead of a modal dialog in RealTimeSync
Added installation size for Windows' Add/Remove Programs
@@ -619,10 +635,10 @@ FreeFileSync 5.14 [2013-03-31]
Do not process child elements when parent directory creation fails
Start comparison after pressing Enter in directory input fields
Lead grid is determined via keyboard input instead of input focus change
-Ignore empty directory entries in RealtimeSync
+Ignore empty directory entries in RealTimeSync
Restored mouse cursor "snap to default button"
Implemented file icon support for sync preview (OS X)
-RealtimeSync exit via menu working again
+RealTimeSync exit via menu working again
Restore main dialog even if "close progress dialog" is selected
Show full path when failing to create directory on not existing target drive
Middle grid tool tip shown correctly again (Suse Linux/X11)
@@ -696,14 +712,14 @@ FreeFileSync 5.10 [2012-12-03]
Show synchronization log as a grid in results dialog
Improved grid scrolling performance (most noticeable on Linux)
Allow grid selection starting from outside of the grid
-RealtimeSync: Support drag & drop on main dialog for *.ffs_real and *.ffs_batch files
+RealTimeSync: Support drag & drop on main dialog for *.ffs_real and *.ffs_batch files
Optimized memory consumption when generating log for millions of items
Optimized memory consumption when exporting to CSV file
Have grid row height match window default font size
Catch out of memory when copying huge lists into clipboard
Fixed failure to resume aborted sync after having FFS implicitly create target directory
Fixed horizontal mouse wheel scrolling direction for RTL languages (Hebrew)
-RealtimeSync: Fixed drag and drop not working (Linux)
+RealTimeSync: Fixed drag and drop not working (Linux)
Set maximum size of LastSyncs.log in GlobalSettings.xml element <LastSyncsFileSizeMax>
Show error when trying to copy a named pipe rather than hang (Linux)
Improved copy routine minimizing file accesses (Linux)
@@ -717,7 +733,7 @@ Scroll grid under mouse cursor
Move files directly to recycle bin without parent "FFS 2012-05-15 131513" temporary folders
Offer $HOME directory alias in directory drop down list (Linux)
Support for tilde (~) character in input folder paths (Linux)
-New environment variables for RealtimeSync: %change_action%, "%change_path%
+New environment variables for RealTimeSync: %change_action%, "%change_path%
Use Internet Explorer proxy settings for new version check (Windows)
Show proper error message after failed symlink creation
Start comparison upon double-clicking config list
@@ -842,7 +858,7 @@ Show full path in tool tip if multiple folder pairs are used
Show child dialogs on same monitor as parent dialog on multiple monitor systems
Added statistics at beginning of batch log file
Fixed batch mode final speed statistic and reset graph after binary comparison
-RealtimeSync: Automatically retry after 15 seconds if an error occurs
+RealTimeSync: Automatically retry after 15 seconds if an error occurs
Show button images untrimmed (Linux)
Fixed problems with auto-closing progress dialog (Linux)
Fixed unresponsive progress dialog and systray icon (Linux)
@@ -940,7 +956,7 @@ New database format for <Automatic> mode: a full sync is suggested before upgrad
Fixed overwrite symlink with regular file
Fixed synchronization result dialog GUI glitch (Windows XP)
Fixed macro %weekday%
-RealtimeSync: Fixed support for manual volume unmount (Windows)
+RealTimeSync: Fixed support for manual volume unmount (Windows)
Added Croatian language
Updated translation files
@@ -965,7 +981,7 @@ Improved synchronization progress dialog
Show all available aliases in directory history list
Show password prompt when connecting to mapped network share
Removed busy cursor after program start up
-RealtimeSync: atomically detect missing directories
+RealTimeSync: atomically detect missing directories
Handle not existing reference by volume name as an invalid path
Improved start up responsiveness by checking dir/file existence asynchronously
Fixed loading incorrect directory name when using multiple folder pairs
@@ -997,8 +1013,8 @@ Smarter configuration merge algorithm
Correctly show existing folders on both sides when using include filter
Fixed network access using WebDrive
Update modification times during file copy to write current values to database
-RealtimeSync: write name of changed file into environment variable "changed_file"
-RealtimeSync: fixed network drop incorrectly being handled as a failure
+RealTimeSync: write name of changed file into environment variable "changed_file"
+RealTimeSync: fixed network drop incorrectly being handled as a failure
Set default direction according to current configuration when deleting manually
Plenty of GUI improvements
Updated help file
@@ -1021,7 +1037,7 @@ Fixed temporal hang when dropping large files on main dialog
Delete permanently if recycle bin is not available (Linux)
Keep FreeFileSync responsive when trying to access non-existent network folder
Support for Ubuntu Unity Launcher (Linux)
-RealtimeSync: Failure notification if command line is invalid (Linux)
+RealTimeSync: Failure notification if command line is invalid (Linux)
FreeFileSync 3.19 [2011-07-23]
@@ -1041,7 +1057,7 @@ Allow loading/merging multiple configurations in last used config list
Fixed system shutdown interruption during batch mode
Allow saving log files in both silent and non-silent batch jobs
Reduced main dialog flicker when switching configurations
-Database and lock files created by FreeFileSync do not trigger RealtimeSync anymore
+Database and lock files created by FreeFileSync do not trigger RealTimeSync anymore
Restrict maximum number of visible folder pairs to 6 (configurable via GlobalSettings.xml)
New macros: %day%, %hour%, %min%, %sec%
@@ -1097,7 +1113,7 @@ FreeFileSync 3.15 [2011-04-19]
------------------------------
Overwriting a file as fully transactional operation
Optimized synchronization speed (non-cached volumes, e.g. memory sticks in particular)
-Volumes can be specified by name: [<volume-name>]\<path> (use case: variable drive letters, RealtimeSync)
+Volumes can be specified by name: [<volume-name>]\<path> (use case: variable drive letters, RealTimeSync)
Copy NTFS compressed, encrypted and sparse file attributes
Copy NTFS compressed and encrypted directory attributes
Copy NTFS alternate data stream
@@ -1125,7 +1141,7 @@ Fixed possible application crash after comparison
Fixed possible network freeze when comparing
Maximum number of log files can be specified
Don't condense white-space when loading XML configuration
-RealtimeSync: Put executable name in quotes when parsing *.ffs_batch file
+RealTimeSync: Put executable name in quotes when parsing *.ffs_batch file
Large program icons - 256 x 256
Handle daylight saving time(DST) on FAT network shares
Skip DST handling if drive does not support accurate file times
@@ -1148,8 +1164,8 @@ Show folder short names in column file name
Correctly report message "nothing to sync" in batch mode
Removed libjpg-8 dependency (Linux)
Fixed loading correct maximized position on multi-screen desktop
-RealtimeSync: Removed blank icons in ALT-TAB list during execution of command line
-Show RealtimeSync job name as systray tool tip
+RealTimeSync: Removed blank icons in ALT-TAB list during execution of command line
+Show RealTimeSync job name as systray tool tip
Last used configurations as sorted list without size limitation
Remove redundant configuration when merging multiple ffs_gui/ffs_batch files
Warning if folder is modified that is part of multiple folder pairs
@@ -1166,12 +1182,12 @@ Resize grid columns on both sides in parallel
Fixed tool tip foreground text color (Linux)
Search via CTRL + F and F3 now as global hotkeys
Fully portable use of directory locking (Windows/Linux, 32/64 bit)
-RealtimeSync: Treat missing network path the same as missing local path
+RealTimeSync: Treat missing network path the same as missing local path
Show current job name during synchronization (batch/gui)
Allow copying dereferenced (=followed) directory Symlinks over network share
Fail to copy Symlinks (=direct) over network share instead of silently creating empty folder (Windows XP)
Copy NTFS junctions as Symlinks (avoiding permission checks)
-RealtimeSync: ignore request for device removal on network mapped drives
+RealTimeSync: ignore request for device removal on network mapped drives
Support for copying SELinux security contexts
Fixed moving buttons in synchronization dialog
Allow deleting currently selected item from list of last used folders (not before wxWidgets 2.9.1)
@@ -1194,11 +1210,11 @@ Instantly resolve abandoned directory locks associated with local computer
Show expanded directory name as tool tip and label text (resolves macros and relative paths)
Do not copy relative file attributes for base target directories that are created implicitly
Move dialogs by clicking (almost) anywhere
-RealtimeSync: ignore request for device removal on Samba shares
+RealTimeSync: ignore request for device removal on Samba shares
Added UTF-8 BOM for CSV export
Correctly handle window position on multi-screen desktop
Disabled warning "database not yet existing"
-RealtimeSync: replaced delay by minimum idle time
+RealTimeSync: replaced delay by minimum idle time
Maximum number of folder pairs configurable via GlobalSettings.xml (XML node <FolderPairsMax>)
Added tool tips to display long filenames on main grid
Keep application responsive when deleting large directories
@@ -1220,7 +1236,7 @@ Copy file and folder permissions (requires admin rights):
- new option in global settings
Compare by content evaluates Symbolic Links
32-Bit build compiled with MinGW/GCC to preserve Windows 2000 compatibility
-RealtimeSync: Handle requests for device removal (USB stick) while monitoring
+RealTimeSync: Handle requests for device removal (USB stick) while monitoring
Sort by file size: group symlinks before directories
Added macros %week%, %month%, %year% for creating time-stamped directories
Touch database file when changes occurred only
@@ -1246,7 +1262,7 @@ Updated translation files
FreeFileSync 3.7 [2010-05-16]
-----------------------------
-RealtimeSync: Trigger command line only if all directories are existing
+RealTimeSync: Trigger command line only if all directories are existing
Allow for drag and drop of very large files
Batch modus: New "Switch" button opens GUI modus when warnings occur
Support copying old 8.3 filenames correctly
@@ -1277,7 +1293,7 @@ Reduced progress indicator flicker
Prevent silent batch mode from taking keyboard focus
Improved error messages (loading/saving/copying files)
Improved environment variable tolerance: strip blanks and double-quotes
-RealtimeSync: Fixed crash when double-clicking systray icon
+RealTimeSync: Fixed crash when double-clicking systray icon
Allow aborting all operations via Escape key
Added British English translation
@@ -1295,7 +1311,7 @@ New optional grid column: file extension
New comparison category icons
Fixed handling sync-config of first folder pair
Allow moving main dialog by dragging client area instead of title bar only
-Enhanced help file: Run RealtimeSync as Service
+Enhanced help file: Run RealTimeSync as Service
Prefix log files with name of batch job
Fixed GUI right-to-left mirroring for locales Hebrew and Arabic
Portable version: save configuration in installation folder
@@ -1309,7 +1325,7 @@ FreeFileSync 3.3 [2010-02-02]
New installer package for portable/local/32/64-bit versions
Built-in support for very long filenames: apply \\?\-prefix automatically
New button for synchronization preview: show equal files
-RealtimeSync: Respond to directory or volume arrival, e.g. USB stick insert
+RealTimeSync: Respond to directory or volume arrival, e.g. USB stick insert
Start comparison automatically when double-clicking on *.ffs_gui files
Visual progress indicator for sys-tray icon
Fixed string comparison for 'ß' and 'ss' (all Windows versions)
@@ -1415,7 +1431,7 @@ Improved warning/error handling
Auto-adjust columns automatically or manually with CTRL + '+'
New macros for double-click command line: %name, %dir, %nameCo, %dirCo
Fixed runtime error when multiple folder pairs are used
-New tool 'RealtimeSync': Watch directories for changes and start synchronization automatically
+New tool 'RealTimeSync': Watch directories for changes and start synchronization automatically
Improved XML parsing, fault tolerance and concept revisioned
More detailed statistics before start of synchronization
Removed superfluous border for bitmap buttons (Linux only)
diff --git a/FreeFileSync/Build/Help/FreeFileSync.hhc b/FreeFileSync/Build/Help/FreeFileSync.hhc
index 91bf0ec3..79864cd9 100644
--- a/FreeFileSync/Build/Help/FreeFileSync.hhc
+++ b/FreeFileSync/Build/Help/FreeFileSync.hhc
@@ -73,7 +73,7 @@
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
- <param name="Name" value="RealtimeSync">
+ <param name="Name" value="RealTimeSync">
<param name="Local" value="html\realtimesync.html">
<param name="ImageNumber" value="2">
</OBJECT>
diff --git a/FreeFileSync/Build/Help/html/FreeFileSync.html b/FreeFileSync/Build/Help/html/FreeFileSync.html
index 39223381..ffbe372a 100644
--- a/FreeFileSync/Build/Help/html/FreeFileSync.html
+++ b/FreeFileSync/Build/Help/html/FreeFileSync.html
@@ -8,7 +8,7 @@
<body>
<h1 style="text-align: center">
- <img src="../images/FFS-logo.png" alt="FreeFileSync"><br>
+ <img src="../images/freefilesync-logo.png" alt="FreeFileSync"><br>
<span style="font-weight: normal"><i>Folder Comparison and Synchronization</i></span>
</h1>
@@ -31,7 +31,7 @@
<h2>Main Dialog Overview</h2>
- <img style="float:left; margin-right:45px; margin-bottom:15px" src="../images/main-dialog.png" alt="FreeFileSync main dialog">
+ <img style="float:left; margin-right:45px; margin-bottom:15px" src="../images/main-window.png" alt="FreeFileSync main window">
<div style="display: inline-block; min-width: 150px">
<ol>
<li>Start comparison
diff --git a/FreeFileSync/Build/Help/html/RealtimeSync.html b/FreeFileSync/Build/Help/html/RealtimeSync.html
index c9a5e6a9..fcbcc753 100644
--- a/FreeFileSync/Build/Help/html/RealtimeSync.html
+++ b/FreeFileSync/Build/Help/html/RealtimeSync.html
@@ -3,31 +3,31 @@
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="base.css" >
- <title>RealtimeSync - Automated Synchronization</title>
+ <title>RealTimeSync - Automated Synchronization</title>
</head>
<body>
<h1 style="text-align: center">
- <img src="../images/RTS-logo.png" alt="RealtimeSync"><br>
+ <img src="../images/realtimesync-logo.png" alt="RealTimeSync"><br>
<i><span style="font-weight: normal">Automated Synchronization</span></i>
</h1>
<p>
- The primary purpose of RealtimeSync is to execute a command line each time it <b>detects changes</b> in one of the monitored directories
+ The primary purpose of RealTimeSync is to execute a command line each time it <b>detects changes</b> in one of the monitored directories
or when a <b>directory becomes available</b> (e. g. insert of a USB-stick). Usually this command line will trigger a FreeFileSync batch job.
</p>
<br>
<h2>Example: <span style="font-weight:normal">Real time synchronization - in combination with FreeFileSync</span></h2>
<p>
- Start RealtimeSync.exe located in FreeFileSync's installation directory and
+ Start RealTimeSync.exe located in FreeFileSync's installation directory and
enter all folders you want to monitor. Instead of doing this manually you can import a ffs_batch
file via <b>Menu &rarr; File &rarr; Open</b>. This not only extracts all directories relevant for synchronization
but also sets up the command line to execute the ffs_batch file each time changes are detected.
Now press <b>Start</b> to begin monitoring.
</p>
<div style="margin-left: 1.3cm">
- <img src="../images/RealtimeSync.png" alt="RealtimeSync main window">
+ <img src="../images/realtimesync-main-window.png" alt="RealTimeSync main window">
</div>
<br>
@@ -38,14 +38,14 @@
sure it does not show any popup windows. See notes in <a href="command-line.html">Command Line Usage</a>.
<br>&nbsp;
- <li>RealtimeSync will skip showing the main dialog and begin monitoring immediately if
+ <li>RealTimeSync will skip showing the main dialog and begin monitoring immediately if
you pass a ffs_real configuration file <b>or</b> a FreeFileSync ffs_batch file as first
- command line argument to RealtimeSync.exe. This helps you integrate RealtimeSync into your operating system's auto start:<br>
- <div class="command-line">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;C:\Program Files\FreeFileSync\RealtimeSync.exe&quot; &quot;D:\Backup Projects.ffs_real&quot;</div>
- <div class="command-line">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;C:\Program Files\FreeFileSync\RealtimeSync.exe&quot; &quot;D:\Backup Projects.ffs_batch&quot;</div>
+ command line argument to RealTimeSync.exe. This helps you integrate RealTimeSync into your operating system's auto start:<br>
+ <div class="command-line">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;C:\Program Files\FreeFileSync\RealTimeSync.exe&quot; &quot;D:\Backup Projects.ffs_real&quot;</div>
+ <div class="command-line">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;C:\Program Files\FreeFileSync\RealTimeSync.exe&quot; &quot;D:\Backup Projects.ffs_batch&quot;</div>
<br>
- <li>RealtimeSync is not tied to starting FreeFileSync. It can also be used in other scenarios, like sending an email whenever a certain directory is modified.
+ <li>RealTimeSync is not tied to starting FreeFileSync. It can also be used in other scenarios, like sending an email whenever a certain directory is modified.
</ul>
</div></div></div>
<br>
@@ -58,17 +58,17 @@
But instead of hard coding the USB drive letter <span class="file-path">H:\</span> (which may change occasionally),
refer to the USB stick via its <a href="variable-drive-letters.html">volume name</a> instead.<br>
<br>
- Configure RealtimeSync as follows:<br>
+ Configure RealTimeSync as follows:<br>
</p>
<div style="display:inline-block; margin-left: 1.3cm; text-align: center;">
- <img src="../images/monitor-usb-insert.png" alt="Monitor USB stick insert"><br>
+ <img src="../images/realtimesync-monitor-usb.png" alt="Monitor USB stick insert"><br>
<i>"Backup" is the volume name of the USB stick in our example.</i>
</div>
<p>
- Whenever directory <span class="file-path">H:\Data</span> 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 <span class="file-path">H:\Data</span>.
+ Whenever directory <span class="file-path">H:\Data</span> 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 <span class="file-path">H:\Data</span>.
</p>
<div class="box-outer"><div class="bluebox"><div class="box-inner">
@@ -98,7 +98,7 @@
<div class="box-outer"><div class="bluebox"><div class="box-inner">
<b>Note</b><br>
- 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
+ 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
<span class="file-path">HideConsole.vbs</span> located in FreeFileSync's installation directory:
<br><br>
<div class="command-line">wscript &quot;C:\Program files\FreeFileSync\HideConsole.vbs&quot; C:\MyBatchFile.cmd</div>
@@ -109,12 +109,12 @@
<h2>Limitations:</h2>
<ul>
<li>If multiple changes happen at the same time, only the path of the first file is written to variable <b><span class="command-line">%changed_file%</span></b>.
- <li>While RealtimeSync is executing the command line, monitoring for changed files is deliberately inactive.
+ <li>While RealTimeSync is executing the command line, monitoring for changed files is deliberately inactive.
</ul>
<p>
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 a user-specified idle time has passed.
+ 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 a 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.
</p>
</body>
diff --git a/FreeFileSync/Build/Help/html/comparison-settings.html b/FreeFileSync/Build/Help/html/comparison-settings.html
index ee34df26..a67d1e46 100644
--- a/FreeFileSync/Build/Help/html/comparison-settings.html
+++ b/FreeFileSync/Build/Help/html/comparison-settings.html
@@ -45,11 +45,11 @@
<br>
<br>
- <h2>I. Compare by File time and size</h2>
-
- <p>This variant considers two files with the same name as equal when both modification
- time <b>and</b> file size match. The following categories are distinguished:</p>
-
+ <h2>I. Compare by file time and size</h2>
+ <p>
+ This variant considers two files with the same name as equal when both modification
+ time <b>and</b> file size match. The following categories are distinguished:
+ </p>
<ol style="list-style: upper-roman">
<li><b>file exists on one side only</b>
<ul>
@@ -72,15 +72,13 @@
</ol>
</ol>
<br>
-
- <h2>II. Compare by File content</h2>
-
+
+ <h2>II. Compare by file content</h2>
<p>
Two files with the same name are marked as equal if and only if they have
the same content. This option is more useful for consistency checks
rather than backup operations since a bitwise comparison can be slow.
</p>
-
<ol style="list-style: upper-roman">
<li><b>file exists on one side only</b>
<ul>
@@ -94,5 +92,27 @@
<li>different content
</ul>
</ol>
+ <br>
+
+ <h2>III. Compare by file size</h2>
+ <p>
+ Two files with the same name are considered equal if they have
+ the same file size.
+ Since it's possible for files with 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.
+ </p>
+ <ol style="list-style: upper-roman">
+ <li><b>file exists on one side only</b>
+ <ul>
+ <li>left only
+ <li>right only
+ </ul>
+
+ <li><b>file exists on both sides</b>
+ <ul>
+ <li>equal
+ <li>different size
+ </ul>
+ </ol>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/expert-settings.html b/FreeFileSync/Build/Help/html/expert-settings.html
index 67314a19..d430be4e 100644
--- a/FreeFileSync/Build/Help/html/expert-settings.html
+++ b/FreeFileSync/Build/Help/html/expert-settings.html
@@ -24,12 +24,14 @@
<div class="command-line">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br>
&lt;FreeFileSync XmlType=&quot;GLOBAL&quot;&gt;<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&lt;Shared&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&lt;General&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>FileTimeTolerance</b> Seconds=&quot;2&quot;/&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>FolderAccessTimeout</b> Seconds=&quot;20&quot;/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>RunWithBackgroundPriority</b> Enabled=&quot;false&quot;/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>LockDirectoriesDuringSync</b> Enabled=&quot;true&quot;/&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>VerifyCopiedFiles</b> Enabled=&quot;false&quot;/&gt;<br>
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>LastSyncsLogSizeMax</b> Bytes=&quot;100000&quot;/&gt;
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>LastSyncsLogSizeMax</b> Bytes=&quot;100000&quot;/&gt;<br>
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<b>NotificationSound</b> SyncComplete=&quot;harp.wav&quot;/&gt;
</div>
</div></div></div>
<br>
@@ -39,18 +41,18 @@
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 with a 2 second precision only.<br>This setting
- can also be used to simulate a &quot;compare by file size&quot;,
- ignoring last modification times:
- Set tolerance to -1 which will be considered as an unlimited file time tolerance.
- Changed files will then be detected as a
- conflict (same date, different file size) and the
- synchronization direction for conflicts can be used accordingly.
+ store file times only with a 2-second precision.
+ </p>
+
+ <p>
+ <b>FolderAccessTimeout:</b><br>
+ 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).
</p>
<p>
<b>RunWithBackgroundPriority:</b><br>
- While synchronization is running, other applications which are accessing the same
+ 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.
@@ -61,6 +63,8 @@
In order to avoid race conditions of multiple FreeFileSync instances
writing to the same folder at the same time, synchronization tasks are serialized
with lock files (<span class="file-path">sync.ffs_lock</span>).
+ The lock files are only recognized by FreeFileSync and make sure that only a single instance
+ can read and write a shared folder while other instances are queued to wait.
This is primarily intended for network synchronization scenarios where
multiple users may run FreeFileSync concurrently against a common network folder.
</p>
@@ -70,9 +74,9 @@
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 and corruption is not hidden by
+ corrupted prior to copying. Additionally corruption may be hidden by
deceptively reading valid data from various buffers in the
- application and hardware stack.<br>
+ application and hardware stack:<br>
<a rel="nofollow" target="_blank" href="https://blogs.msdn.microsoft.com/oldnewthing/20120919-00/?p=6563/">Does
the CopyFile function verify that the data reached its final destination successfully?</a>
</p>
@@ -82,5 +86,10 @@
The progress logs of the most recent synchronizations (for both GUI and batch jobs) are collected automatically in the file <span class="file-path">LastSyncs.log</span>.
The maximum size of this log file can be set here.
</p>
+
+ <p>
+ <b>NotificationSound:</b><br>
+ Select a sound file from the FreeFileSync installation directory to be played after synchronization. Set an empty name if no sound should be played.
+ </p>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/run-as-service.html b/FreeFileSync/Build/Help/html/run-as-service.html
index 2a5d1e8f..239c28f3 100644
--- a/FreeFileSync/Build/Help/html/run-as-service.html
+++ b/FreeFileSync/Build/Help/html/run-as-service.html
@@ -10,13 +10,13 @@
<h1>Run as Service <span style="font-weight: normal">(Windows)</span></h1>
<p>
- RealtimeSync is designed to run as a background process which does not need further
+ 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:
</p>
<div class="box-outer"><div class="greybox"><div class="box-inner">
- <div class="command-line">&lt;FreeFileSync installation folder&gt;\RealtimeSync.exe &lt;path to *.ffs_real or *.ffs_batch file&gt;</div>
+ <div class="command-line">&lt;FreeFileSync installation folder&gt;\RealTimeSync.exe &lt;path to *.ffs_real or *.ffs_batch file&gt;</div>
</div></div></div>
<br>
<br>
@@ -24,28 +24,28 @@
<h2>Example:</h2>
<div class="box-outer"><div class="greybox"><div class="box-inner">
- <div class="command-line">&quot;C:\Program Files\FreeFileSync\RealtimeSync.exe&quot; &quot;D:\Backup Projects.ffs_real&quot;</div>
+ <div class="command-line">&quot;C:\Program Files\FreeFileSync\RealTimeSync.exe&quot; &quot;D:\Backup Projects.ffs_real&quot;</div>
</div></div></div>
<br>
<ol>
<li><p>
- RealtimeSync should be monitoring while a user is logged in:<br>
+ RealTimeSync should be monitoring while a user is logged in:<br>
Create a new shortcut, enter the command line from above as target and place it into the Windows autostart folder.
(Enter <span class="command-line"><b>%AppData%\Microsoft\Windows\Start Menu\Programs\Startup</b></span> in the Windows Explorer address bar to find the folder quickly.)
</p>
- <img src="../images/create-shortcut.png" alt="Create shortcut"><br><br>
- <img src="../images/shortcut-properties.png" alt="Shortcut properties">
+ <img src="../images/realtimesync-create-shortcut.png" alt="Create shortcut"><br><br>
+ <img src="../images/realtimesync-shortcut-properties.png" alt="Shortcut properties">
<br>&nbsp;
<li><p>
- RealtimeSync should be monitoring while Windows is running irrespective of currently logged in users:<br>
+ RealTimeSync should be monitoring while Windows is running irrespective of currently logged in users:<br>
Create a new task in your operating systems's task scheduler and have it execute the command line above
when the system starts. See <a href="schedule-a-batch-job.html">Schedule a Batch Job</a> for an example how to add a task. Then change
the user which runs the task to <b>SYSTEM</b> - a special user account always running in the background.
</p>
- <img src="../images/schedule-realtimesync.png" alt="Schedule RealtimeSync">
+ <img src="../images/realtimesync-schedule.png" alt="Schedule RealTimeSync">
</ol>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/html/schedule-a-batch-job.html b/FreeFileSync/Build/Help/html/schedule-a-batch-job.html
index e0acc45b..201947b7 100644
--- a/FreeFileSync/Build/Help/html/schedule-a-batch-job.html
+++ b/FreeFileSync/Build/Help/html/schedule-a-batch-job.html
@@ -55,10 +55,15 @@
<div class="box-outer"><div class="bluebox"><div class="box-inner">
<b>Note</b><br>
- In Windows 7 <i>Program/script</i> always needs to point to an executable file like FreeFileSync.exe even
- when the ffs_batch file association is registered. If a ffs_batch file were entered instead, the task would return with
- error code 2147942593 (0x800700C1), &quot;%1 is not a valid Win32 application&quot;.<br>
- For Windows 8 and later this limitation does not apply and you may enter the ffs_batch file path directly into <i>Program/script</i> and leave out <i>Add arguments</i>.
+ <ul>
+ <li>In Windows 7 <i>Program/script</i> always needs to point to an executable file like FreeFileSync.exe even
+ when the ffs_batch file association is registered. If a ffs_batch file were entered instead, the task would return with
+ error code 2147942593 (0x800700C1), &quot;%1 is not a valid Win32 application&quot;.<br>
+ For Windows 8 and later this limitation does not apply and you may enter the ffs_batch file path directly into <i>Program/script</i> and leave out <i>Add arguments</i>.
+ <li>If you schedule FreeFileSync to run under a different user account, note that settings (e.g. <span class="file-path">GlobalSettings.xml</span>)
+ will also be read from a different path, <span class="file-path">C:\Users\&lt;username&gt;\AppData\Roaming\FreeFileSync</span>, or in the case of the SYSTEM account from
+ <span class="file-path">C:\Windows\System32\config\systemprofile\AppData\Roaming\FreeFileSync</span>.
+ </ul>
</div></div></div>
<br>
diff --git a/FreeFileSync/Build/Help/html/synchronize-with-sftp.html b/FreeFileSync/Build/Help/html/synchronize-with-sftp.html
index 87e758e5..77578cb6 100644
--- a/FreeFileSync/Build/Help/html/synchronize-with-sftp.html
+++ b/FreeFileSync/Build/Help/html/synchronize-with-sftp.html
@@ -17,7 +17,7 @@
<div class="box-outer"><div class="bluebox"><div class="box-inner">
<b>Note</b><br>In case the SFTP server sets file modification times to the current time
- you can do a <a href="expert-settings.html">Compare by File Size</a> as a workaround.
+ you can do a <a href="comparison-settings.html">Compare by File Size</a> as a workaround.
</div></div></div>
<br>
<br>
diff --git a/FreeFileSync/Build/Help/html/tips-and-tricks.html b/FreeFileSync/Build/Help/html/tips-and-tricks.html
index 0444c3eb..9376b208 100644
--- a/FreeFileSync/Build/Help/html/tips-and-tricks.html
+++ b/FreeFileSync/Build/Help/html/tips-and-tricks.html
@@ -23,7 +23,7 @@
<body>
<h1>Tips and Tricks</h1>
- <div class="tip">Quickly change settings with a single mouse click: Press and hold the right mouse button until the context menu is shown then release over the selection.</div>
+ <div class="tip">Change settings with a single mouse click: Press and hold the right mouse button until the context menu is shown then release over the selection.</div>
<img style="vertical-align: top;" src="../images/com-settings-context.png" alt="Comparison settings context menu">
<img style="vertical-align: top;" src="../images/filter-context.png" alt="Filter context menu">
<img style="vertical-align: top;" src="../images/sync-settings-context.png" alt="Synchronization settings context menu"><br>
diff --git a/FreeFileSync/Build/Help/html/variable-drive-letters.html b/FreeFileSync/Build/Help/html/variable-drive-letters.html
index 23da8354..0002b8e7 100644
--- a/FreeFileSync/Build/Help/html/variable-drive-letters.html
+++ b/FreeFileSync/Build/Help/html/variable-drive-letters.html
@@ -18,8 +18,8 @@
<p><b>Option 1: </b>Specify a folder path by using the volume name:</p>
<div class="box-outer"><div class="greybox"><div class="box-inner">
- Use <span class="file-path">[ZENJU-USB]\folder</span> instead of <span class="file-path">G:\folder</span> where ZENJU-USB
- is the volume name of the USB stick which is currently mounted in drive <span class="file-path">G:\</span>.
+ Enter the path as <span class="file-path">[USB-NAME]\folder</span> instead of <span class="file-path">E:\folder</span> where USB-NAME
+ is the volume name of the USB stick which is currently mounted in drive <span class="file-path">E:\</span>.
</div></div></div>
<br>
@@ -34,15 +34,15 @@
<div class="box-outer"><div class="greybox"><div class="box-inner">
<ul style="margin: 0">
- <li>Use <span class="file-path">\folder</span> instead of <span class="file-path">G:\folder</span>
+ <li>Use <span class="file-path">\folder</span> instead of <span class="file-path">E:\folder</span>
- <li>Save and copy synchronization settings to the USB stick: <span class="file-path">G:\Backup.ffs_gui</span>
+ <li>Save and copy synchronization settings to the USB stick: <span class="file-path">E:\Backup.ffs_gui</span>
- <li>Start FreeFileSync by double-clicking on <span class="file-path">G:\Backup.ffs_gui</span><br>
+ <li>Start FreeFileSync by double-clicking on <span class="file-path">E:\Backup.ffs_gui</span><br>
</ul>
<br>
- The working directory is then automatically set to <span class="file-path">G:\</span> by the operating system so that the
- relative path <span class="file-path">\folder</span> will be resolved as <span class="file-path">G:\folder</span> during synchronization.
+ The working directory is then automatically set to <span class="file-path">E:\</span> by the operating system so that the
+ relative path <span class="file-path">\folder</span> will be resolved as <span class="file-path">E:\folder</span> during synchronization.
</div></div></div>
</body>
</html> \ No newline at end of file
diff --git a/FreeFileSync/Build/Help/images/RTS-logo.png b/FreeFileSync/Build/Help/images/RTS-logo.png
deleted file mode 100644
index f5b53065..00000000
--- a/FreeFileSync/Build/Help/images/RTS-logo.png
+++ /dev/null
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/RealtimeSync.png b/FreeFileSync/Build/Help/images/RealtimeSync.png
deleted file mode 100644
index 5770d7e9..00000000
--- a/FreeFileSync/Build/Help/images/RealtimeSync.png
+++ /dev/null
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/comparison-settings.png b/FreeFileSync/Build/Help/images/comparison-settings.png
index 756cde04..c224dae4 100644
--- a/FreeFileSync/Build/Help/images/comparison-settings.png
+++ b/FreeFileSync/Build/Help/images/comparison-settings.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/comparison-variant-double-click.png b/FreeFileSync/Build/Help/images/comparison-variant-double-click.png
index 471d6a44..8fde4654 100644
--- a/FreeFileSync/Build/Help/images/comparison-variant-double-click.png
+++ b/FreeFileSync/Build/Help/images/comparison-variant-double-click.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/create-shortcut.png b/FreeFileSync/Build/Help/images/create-shortcut.png
deleted file mode 100644
index 4aee94d9..00000000
--- a/FreeFileSync/Build/Help/images/create-shortcut.png
+++ /dev/null
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/FFS-logo.png b/FreeFileSync/Build/Help/images/freefilesync-logo.png
index d893a6e7..d893a6e7 100644
--- a/FreeFileSync/Build/Help/images/FFS-logo.png
+++ b/FreeFileSync/Build/Help/images/freefilesync-logo.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/ignore-time-shift.png b/FreeFileSync/Build/Help/images/ignore-time-shift.png
index 8ea24423..5dbeb0ae 100644
--- a/FreeFileSync/Build/Help/images/ignore-time-shift.png
+++ b/FreeFileSync/Build/Help/images/ignore-time-shift.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/main-dialog.png b/FreeFileSync/Build/Help/images/main-window.png
index 5fbbca9f..5fbbca9f 100644
--- a/FreeFileSync/Build/Help/images/main-dialog.png
+++ b/FreeFileSync/Build/Help/images/main-window.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/monitor-usb-insert.png b/FreeFileSync/Build/Help/images/monitor-usb-insert.png
deleted file mode 100644
index 74251f17..00000000
--- a/FreeFileSync/Build/Help/images/monitor-usb-insert.png
+++ /dev/null
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/path-by-volume-name.png b/FreeFileSync/Build/Help/images/path-by-volume-name.png
index 1f83a04c..2e606e25 100644
--- a/FreeFileSync/Build/Help/images/path-by-volume-name.png
+++ b/FreeFileSync/Build/Help/images/path-by-volume-name.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/realtimesync-create-shortcut.png b/FreeFileSync/Build/Help/images/realtimesync-create-shortcut.png
new file mode 100644
index 00000000..4df9413b
--- /dev/null
+++ b/FreeFileSync/Build/Help/images/realtimesync-create-shortcut.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/realtimesync-logo.png b/FreeFileSync/Build/Help/images/realtimesync-logo.png
new file mode 100644
index 00000000..b5aba408
--- /dev/null
+++ b/FreeFileSync/Build/Help/images/realtimesync-logo.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/realtimesync-main-window.png b/FreeFileSync/Build/Help/images/realtimesync-main-window.png
new file mode 100644
index 00000000..ded56422
--- /dev/null
+++ b/FreeFileSync/Build/Help/images/realtimesync-main-window.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/realtimesync-monitor-usb.png b/FreeFileSync/Build/Help/images/realtimesync-monitor-usb.png
new file mode 100644
index 00000000..0aadf3b6
--- /dev/null
+++ b/FreeFileSync/Build/Help/images/realtimesync-monitor-usb.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/realtimesync-schedule.png b/FreeFileSync/Build/Help/images/realtimesync-schedule.png
new file mode 100644
index 00000000..a964590d
--- /dev/null
+++ b/FreeFileSync/Build/Help/images/realtimesync-schedule.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.png b/FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.png
new file mode 100644
index 00000000..bcfc1da8
--- /dev/null
+++ b/FreeFileSync/Build/Help/images/realtimesync-shortcut-properties.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/schedule-realtimesync.png b/FreeFileSync/Build/Help/images/schedule-realtimesync.png
deleted file mode 100644
index 38c88429..00000000
--- a/FreeFileSync/Build/Help/images/schedule-realtimesync.png
+++ /dev/null
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/shortcut-properties.png b/FreeFileSync/Build/Help/images/shortcut-properties.png
deleted file mode 100644
index 15db849e..00000000
--- a/FreeFileSync/Build/Help/images/shortcut-properties.png
+++ /dev/null
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/synchronization-variant-double-click.png b/FreeFileSync/Build/Help/images/synchronization-variant-double-click.png
index 02cc9916..709ad67d 100644
--- a/FreeFileSync/Build/Help/images/synchronization-variant-double-click.png
+++ b/FreeFileSync/Build/Help/images/synchronization-variant-double-click.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/images/windows-scheduler.png b/FreeFileSync/Build/Help/images/windows-scheduler.png
index 354cc9fa..09a6af1d 100644
--- a/FreeFileSync/Build/Help/images/windows-scheduler.png
+++ b/FreeFileSync/Build/Help/images/windows-scheduler.png
Binary files differ
diff --git a/FreeFileSync/Build/Languages/arabic.lng b/FreeFileSync/Build/Languages/arabic.lng
index dc488423..ab6214f9 100644
--- a/FreeFileSync/Build/Languages/arabic.lng
+++ b/FreeFileSync/Build/Languages/arabic.lng
@@ -7,15 +7,6 @@
<plural_definition>n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5</plural_definition>
</header>
-<source>empty</source>
-<target></target>
-
-<source>Main config</source>
-<target></target>
-
-<source>Folder pair:</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>كلا الجانبين قد تغير منذ المزامنة الأخيرة.</target>
@@ -76,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>لا يمكن العثور على المجلد %x.</target>
+<source>Error</source>
+<target>خطأ</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>لا يحتوي الملف %x تكويناً صحيحاً.</target>
@@ -118,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>تعذر العثور على المجلدات التالية:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>بإمكانك إهمال هذا الخطأ لاعتبار كل مجلد على أنه مجلد فارغ. سيتم إنشاء المجلدات تلقائياً خلال المزامنة.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>إذا تجاهلت هذا الخطأ سيتم اعتبار المجلدات فارغة. يتم إنشاء المجلدات المفقودة تلقائيا عند الحاجة.</target>
<source>A folder input field is empty.</source>
<target>حقل إدخال خاص بمجلد فارغ.</target>
@@ -264,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>لا يمكن العثور على الجهاز %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>لا يمكن تحديد مساحة القرص الحرة لـ %x.</target>
-
<source>Cannot create directory %x.</source>
<target>لا يمكن إنشاء المسار %x.</target>
@@ -285,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>لا يمكن حل الارتباط الرمزي %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>تعذر نقل %x إلى سلة المحذوفات.</target>
-
<source>Cannot open directory %x.</source>
<target>لا يمكن فتح المسار %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>لا يمكن تحديد مساحة القرص الحرة لـ %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>تعذر نقل %x إلى سلة المحذوفات.</target>
+
<source>Incorrect command line:</source>
<target>سطر أوامر خاطئ:</target>
@@ -515,8 +509,8 @@ The command is triggered if:
-ظهور مجلدات جديدة (مثال: إدخال USB stick)
</target>
-<source>&Start</source>
-<target>&ابدأ</target>
+<source>Start</source>
+<target>بدء</target>
<source>About</source>
<target>حول</target>
@@ -530,15 +524,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>مزامنة تلقائية</target>
+<source>The following path does not support directory monitoring:</source>
+<target>المسار التالي لا يدعم مراقبة الدليل:</target>
+
<source>Directory monitoring active</source>
<target>مراقبة المسارات فعالة</target>
<source>Waiting until all directories are available...</source>
<target>انتظر حتى توفر جميع المسارات...</target>
-<source>Error</source>
-<target>خطأ</target>
-
<source>&Restore</source>
<target>&استعادة</target>
@@ -551,11 +545,14 @@ The command is triggered if:
<source>&Retry</source>
<target>إ&عادة المحاولة</target>
+<source>File time and size</source>
+<target>تاريخ الملف و حجمه</target>
+
<source>File content</source>
<target>محتوى الملف</target>
-<source>File time and size</source>
-<target>تاريخ الملف و حجمه</target>
+<source>File size</source>
+<target>حجم الملف</target>
<source>Two way</source>
<target>بالاتجاهين</target>
@@ -705,30 +702,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>خطأ فادح</target>
-<source>Check for Program Updates</source>
-<target>تفقد وجود تحديثات للبرنامج</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>يتوفر إصدار جديد من FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>تنزيل الآن؟</target>
-
-<source>&Download</source>
-<target>&تنزيل</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>البرنامج هو الأحدث حتى الآن.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>تعذر الاتصال بـ www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>لم نستطع العثور على على رقم إصدار FreeFileSync على الشبكة. هل تريد التحقق يدوياً؟</target>
-
-<source>&Check</source>
-<target>&تحقق</target>
-
<source>Symlink</source>
<target>ارتباط-رمزي</target>
@@ -918,27 +891,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>إجمالي عدد الـ bytes التي سيتم نسخها</target>
+<source>Folder pair:</source>
+<target>زوج المجلدات:</target>
+
<source>Use local settings:</source>
<target>استخدام الإعدادات المحلية:</target>
<source>Select a variant:</source>
<target>اختيار بديل:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>التعرف على الملفات المتساوية عن طريق مقارنة التاريخ و الحجم.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>التعرف على الملفات المتساوية عن طريق مقارنة محتوى الملف.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&تجاهل تبديل الوقت (بالساعات)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>اعتبار الملفات ذات الفارق الزمني المحدد و كأنها متساوية</target>
-
-<source>Handle daylight saving time</source>
-<target>تعامل مع التوقيت الصيفي</target>
-
<source>Include &symbolic links:</source>
<target>تضمين &الروابط الرمزية:</target>
@@ -951,6 +912,18 @@ The command is triggered if:
<source>More information</source>
<target>المزيد من المعلومات</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&تجاهل تغيير الوقت [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>قائمة إزاحات وقت للملفات ليتم تجاهلها</target>
+
+<source>Example:</source>
+<target>مثال:</target>
+
+<source>Handle daylight saving time</source>
+<target>تعامل مع التوقيت الصيفي</target>
+
<source>Local settings:</source>
<target>الإعدادات المحلية:</target>
@@ -1052,9 +1025,6 @@ The command is triggered if:
<source>Port:</source>
<target>المنفذ:</target>
-<source>Examples:</source>
-<target>أمثلة:</target>
-
<source>User name:</source>
<target>اسم المستخدم:</target>
@@ -1067,6 +1037,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>المسار على الخادم:</target>
+<source>Select a directory on the server:</source>
+<target>تحديد دليل على الخادم:</target>
+
+<source>Select Folder</source>
+<target>اختر مجلد</target>
+
<source>Start synchronization now?</source>
<target>بدأ المزامنة الآن؟</target>
@@ -1133,9 +1109,6 @@ The command is triggered if:
<source>&Overwrite existing files</source>
<target>&الكتابة فوق الملفات الموجودة</target>
-<source>&Copy</source>
-<target>&نسخ</target>
-
<source>The following settings are used for all synchronization jobs.</source>
<target>هذه الإعدادات مستخدمة لجميع مهمات المزامنة.</target>
@@ -1256,6 +1229,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>نظرة عامة</target>
+<source>&Download</source>
+<target>&تنزيل</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>يتوفر إصدار جديد من FreeFileSync:</target>
+
<source>Confirm</source>
<target>تأكيد</target>
@@ -1332,11 +1311,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>استبعاد مؤقتاً</target>
-<source>Copy to...</source>
-<target>نسخ إلى...</target>
+<source>&Copy to...</source>
+<target>&نسخ إلى...</target>
-<source>Delete</source>
-<target>حذف</target>
+<source>&Delete</source>
+<target>&حذف</target>
<source>Include all</source>
<target>شمول الكل</target>
@@ -1503,6 +1482,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>السجل</target>
+<source>Loading...</source>
+<target>تحميل...</target>
+
<source>
<pluralform>Copy the following item to another folder?</pluralform>
<pluralform>Copy the following %x items to another folder?</pluralform>
@@ -1572,6 +1554,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&إظهار</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>التعرف على الملفات المتساوية عن طريق مقارنة التاريخ و الحجم.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>التعرف على الملفات المتساوية عن طريق مقارنة محتوى الملف.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>تحديد الملفات المتساوية بمقارنة حجم الملف لها.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>تحديد التغيرات و مواكبتها على الجانبين. عمليات الحذف, النقل و المشاكل المكتشفة باستخدام قواعد البيانات.</target>
@@ -1629,6 +1620,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>إلحاق ختم زمني بكل اسم ملف</target>
+<source>Main config</source>
+<target>التكوين الرئيسي</target>
+
+<source>empty</source>
+<target>فارغ</target>
+
<source>Leave as unresolved conflict</source>
<target>ترك كاختلافات من دون حل</target>
@@ -1647,6 +1644,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>النسبة المئوية</target>
+<source>Internet access failed.</source>
+<target>فشل الوصول إلى الإنترنت.</target>
+
+<source>Check for Program Updates</source>
+<target>تفقد وجود تحديثات للبرنامج</target>
+
+<source>Download now?</source>
+<target>تنزيل الآن؟</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>البرنامج هو الأحدث حتى الآن.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>تعذر الاتصال بـ www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>لم نستطع العثور على على رقم إصدار FreeFileSync على الشبكة. هل تريد التحقق يدوياً؟</target>
+
+<source>&Check</source>
+<target>&تحقق</target>
+
<source>Unable to register to receive system messages.</source>
<target>تعذر التسجيل لاستقبال رسائل النظام.</target>
@@ -1674,6 +1692,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>لا يمكن نسخ الأذونات من %x إلى %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x ليس اسم دليل اعتيادي.</target>
+
<source>Cannot find system function %x.</source>
<target>لا يمكن العثور على وظيفة نظام %x.</target>
@@ -1812,9 +1833,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>قاعدة بيانات المزامنة الخاصة بـ FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>تضبيطات RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>تضبيطات RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>تعديل بواسطة FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>شكرا على تبرعك ودعمك !</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>مثبت FreeFileSync للمنبرعين هذا وصل حدود التثبيت. هل تريد تحميل النسخة الاعتيادة من الصفحة الرئيسية لـ FreeFileSync الآن ؟</target>
+
diff --git a/FreeFileSync/Build/Languages/bulgarian.lng b/FreeFileSync/Build/Languages/bulgarian.lng
index 2a3f99a2..67909db9 100644
--- a/FreeFileSync/Build/Languages/bulgarian.lng
+++ b/FreeFileSync/Build/Languages/bulgarian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Задават се подразбирани посоки на синхронизация: старите файлове ще се заменят с по-нови.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Проверява се достъпността на кошчето за папка %x...</target>
+<source>Creating folder %x</source>
+<target>Създава се папка %x</target>
+
+<source>Creating file %x</source>
+<target>Създава се файл %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Създава се символна връзка %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Файл %x се премества в кошчето</target>
@@ -35,16 +41,19 @@
<target>Символна връзка %x се премества в кошчето</target>
<source>Deleting file %x</source>
-<target>Файл %x се изтрива</target>
+<target>Изтрива се файл %x</target>
<source>Deleting folder %x</source>
-<target>Папка %x се изтрива</target>
+<target>Изтрива се папка %x</target>
<source>Deleting symbolic link %x</source>
-<target>Символна връзка %x се изтрива</target>
+<target>Изтрива се символна връзка %x</target>
+
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Проверява се достъпността на кошчето за папка %x...</target>
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
-<target>Кошчето е недостъпно за следните папки. Вместо това файловете ще бъдат изтрити необратимо:</target>
+<target>Кошчето е недостъпно за следните папки. Вместо това файловете ще бъдат необратимо изтрити:</target>
<source>An exception occurred</source>
<target>Получи се изключение</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Не е намерен файл %x.</target>
+<source>Error</source>
+<target>Грешка</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Файл %x не съдържа валидна конфигурация.</target>
@@ -89,7 +101,7 @@
<target>Път до алтернативен файл GlobalSettings.xml.</target>
<source>Any number of FreeFileSync .ffs_gui and/or .ffs_batch configuration files.</source>
-<target>Произволен брой конфигурационни файлове .ffs_gui и/или .ffs_batch на FFS.</target>
+<target>Произволен брой конфигурационни файлове .ffs_gui и/или .ffs_batch за FreeFileSync.</target>
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Произволен брой алтернативни двойки директории за най-много един конфигурационен файл.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Не са намерени следните папки:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Може да игнорирате тази грешка, като всяка папка се счита празна и се създава автоматично по време на синхронизацията.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ако игнорирате тази грешка, папките ще се считат празни. Липсващи папки се създават автоматично при нужда.</target>
<source>A folder input field is empty.</source>
<target>Полето за въведена папка е празно.</target>
@@ -125,7 +137,7 @@
<target>Размер:</target>
<source>Content comparison was skipped for excluded files %x.</source>
-<target>Сравняването на съдържанието беше прескочено за изключените файлове %x.</target>
+<target>Беше прескочено сравняване на съдържанието за изключените файлове %x.</target>
<source>Items differ in attributes only</source>
<target>Елементите се различават само по атрибути</target>
@@ -140,7 +152,7 @@
<target>Създава се списък на файловете...</target>
<source>Starting comparison</source>
-<target>Сравняването започва</target>
+<target>Започва сравняване</target>
<source>Calculating sync directions...</source>
<target>Пресмятат се посоките на синхронизация...</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>Не е намерено устройство %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Не може да се определи свободното дисково пространство за %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Не може да се създаде директория %x.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Не може да се проследи символната връзка %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Не може да се премести %x в кошчето.</target>
-
<source>Cannot open directory %x.</source>
<target>Не може да се отвори директория %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Не може да се определи свободното дисково пространство за %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Не може да се премести %x в кошчето.</target>
+
<source>Incorrect command line:</source>
<target>Невалиден команден ред:</target>
@@ -304,19 +316,19 @@ Actual: %y bytes
<target>Не може да се зареди файл %x.</target>
<source>Database file %x is incompatible.</source>
-<target>Файлът на базата данни %x е несъвместим.</target>
+<target>Файлът с база данни %x е несъвместим.</target>
<source>Initial synchronization:</source>
<target>Начална синхронизация:</target>
<source>Database file %x does not yet exist.</source>
-<target>Файлът на базата данни %x още не съществува.</target>
+<target>Файлът с база данни %x още не съществува.</target>
<source>Database file is corrupt:</source>
-<target>Файлът на базата данни е повреден:</target>
+<target>Файлът с база данни е повреден:</target>
<source>Database files do not share a common session.</source>
-<target>Файловете на базата данни не споделят обща сесия.</target>
+<target>Файловете с бази данни не споделят обща сесия.</target>
<source>Searching for folder %x...</source>
<target>Търсене на папка %x...</target>
@@ -345,9 +357,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>Откриване на изоставено заключване...</target>
-<source>Creating file %x</source>
-<target>Създава се файл %x</target>
-
<source>Saving file %x...</source>
<target>Запазва се файл %x...</target>
@@ -366,9 +375,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>Не може да се заключи директорията за %x.</target>
-<source>Scanning:</source>
-<target>Търсят се файлове:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Actual: %y bytes
<pluralform>%x нишки</pluralform>
</target>
+<source>Scanning:</source>
+<target>Търсят се файлове:</target>
+
<source>/sec</source>
<target>/сек.</target>
@@ -394,10 +403,10 @@ Actual: %y bytes
<target>Преглед на директорията</target>
<source>Cannot access the Volume Shadow Copy Service.</source>
-<target>Не може да получи достъп до услуга Volume Shadow Copy.</target>
+<target>Не може да се получи достъп до услуга Volume Shadow Copy.</target>
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
-<target>Моля, ползвайте 64-бит. версия на FFS за създаване фонови копия на тази система.</target>
+<target>Моля, ползвайте 64-битов FreeFileSync за създаване фонови копия на тази система.</target>
<source>Cannot determine volume name for %x.</source>
<target>Не може да се определи името на тома за %x.</target>
@@ -454,7 +463,7 @@ Actual: %y bytes
<target>3. Натиснете 'Старт'.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>Просто импортирайте файл .ffs_batch за стартиране.</target>
+<target>За стартиране просто импортирайте файл .ffs_batch.</target>
<source>Folders to watch:</source>
<target>Папки за следене:</target>
@@ -488,8 +497,8 @@ The command is triggered if:
- се явят нови папки (напр. вкарана флашка).
</target>
-<source>&Start</source>
-<target>&Старт</target>
+<source>Start</source>
+<target>Старт</target>
<source>About</source>
<target>Относно</target>
@@ -503,15 +512,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>Автоматична синхронизация</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Посочения път не поддържа следене на директория:</target>
+
<source>Directory monitoring active</source>
<target>Следенето на директории е активирано</target>
<source>Waiting until all directories are available...</source>
<target>Изчаква се достъпност на всички директории...</target>
-<source>Error</source>
-<target>Грешка</target>
-
<source>&Restore</source>
<target>Въ&зстановяване</target>
@@ -524,17 +533,20 @@ The command is triggered if:
<source>&Retry</source>
<target>Пов&торение</target>
+<source>File time and size</source>
+<target>Дата и размер на файла</target>
+
<source>File content</source>
<target>Съдържание на файла</target>
-<source>File time and size</source>
-<target>Дата и размер на файла</target>
+<source>File size</source>
+<target>Размер на файла</target>
<source>Two way</source>
-<target>Двупосочно</target>
+<target>Двупосочна</target>
<source>Mirror</source>
-<target>Огледално</target>
+<target>Огледална</target>
<source>Update</source>
<target>Актуализиране</target>
@@ -557,12 +569,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>Премахва стари версии...</target>
-<source>Creating symbolic link %x</source>
-<target>Създава символна връзка %x</target>
-
-<source>Creating folder %x</source>
-<target>Създава папка %x</target>
-
<source>Updating file %x</source>
<target>Актуализира файл %x</target>
@@ -648,7 +654,7 @@ The command is triggered if:
<target>Изчистват се старите log-файлове...</target>
<source>You can switch to FreeFileSync's main window to resolve this issue.</source>
-<target>За решаване на този проблем може да превключите на главното меню на FFS.</target>
+<target>За решение на този проблем може да превключите на главното меню на FreeFileSync.</target>
<source>&Don't show this warning again</source>
<target>Не показвай ве&че това предупреждение</target>
@@ -680,30 +686,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>Сериозна грешка</target>
-<source>Check for Program Updates</source>
-<target>Проверка за нова версия на програмата</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Има нова версия на FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>Свали веднага?</target>
-
-<source>&Download</source>
-<target>Свал&яне</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync вече е актуална.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Не може да се свърже с www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Не е открит номера на текущата версия на FFS онлайн. Ще опитате ли ръчно?</target>
-
-<source>&Check</source>
-<target>Оп&итай</target>
-
<source>Symlink</source>
<target>Символна връзка</target>
@@ -764,11 +746,20 @@ The command is triggered if:
<source>Paste</source>
<target>Вмъкни</target>
-<source>Local Synchronization Settings</source>
-<target>Локални Настройки за Синхронизация</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Избраната папка %x не може да се ползва с FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Моля, изберете папка от локална файлова система, мрежа или MTP-устройство.</target>
+
+<source>SFTP folder</source>
+<target>SFTP-папка</target>
+
+<source>Select SFTP folder</source>
+<target>Изберете SFTP-папка</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Избраната папка %x не може да се ползва с FreeFileSync. Моля, изберете папка от локална файлова система, мрежа или MTP-устройство.</target>
+<source>Select alternative folder type</source>
+<target>Изберете алтернативен тип папка</target>
<source>&New</source>
<target>&Нов</target>
@@ -797,8 +788,8 @@ The command is triggered if:
<source>&Actions</source>
<target>&Действия</target>
-<source>&Options</source>
-<target>&Опции</target>
+<source>&Preferences</source>
+<target>&Предпочитания</target>
<source>&Language</source>
<target>&Език</target>
@@ -839,9 +830,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>Отнемане на двойка папки</target>
-<source>Select SFTP folder</source>
-<target>Изберете SFTP-папка</target>
-
<source>Swap sides</source>
<target>Размяна на страните</target>
@@ -887,32 +875,14 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>Общо байтове за копиране</target>
+<source>Folder pair:</source>
+<target>Двойка папки:</target>
+
<source>Use local settings:</source>
<target>Ползвай локални настройки:</target>
<source>Select a variant:</source>
-<target>Изберете вариант:</target>
-
-<source>Identify equal files by comparing modification time and size.</source>
-<target>
-Определяне на еднаквите файлове,
-сравнявайки времето на промяна и размера.
-</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>
-Определяне на еднаквите файлове,
-сравнявайки файловото съдържание.
-</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Игнорирай разликата във времето (в часове)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Считай файловите времена със зададена разлика за еднакви</target>
-
-<source>Handle daylight saving time</source>
-<target>Отчитай лятното време</target>
+<target>Избор на вариант:</target>
<source>Include &symbolic links:</source>
<target>Включи &символни връзки:</target>
@@ -926,6 +896,18 @@ The command is triggered if:
<source>More information</source>
<target>Още информация</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Игнорирай времевото отместване [чч:мм]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Списък на файлови времеви отмествания за игнориране</target>
+
+<source>Example:</source>
+<target>Пример:</target>
+
+<source>Handle daylight saving time</source>
+<target>Отчитай лятното време</target>
+
<source>Local settings:</source>
<target>Локални настройки:</target>
@@ -951,10 +933,7 @@ The command is triggered if:
<target>Максимум:</target>
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
-<target>
-Изберете филтърни правила за изключване на някои файлове от синхронизация.
-Въведете относителни файлови пътища към съответните двойки папки.
-</target>
+<target>Изберете филтърни правила за изключване на някои файлове от синхронизация. Въведете относителни файлови пътища към съответните двойки папки.</target>
<source>C&lear</source>
<target>И&зчисти</target>
@@ -1018,14 +997,17 @@ The command is triggered if:
<source>OK</source>
<target>ОК</target>
+<source>Arrange folder pair</source>
+<target>Подреди двойката папки</target>
+
<source>Enter your SFTP login details:</source>
<target>Въведете данните си за SFTP-логване:</target>
<source>Server name or IP address:</source>
<target>Име на сървъра или IP-адрес:</target>
-<source>Examples:</source>
-<target>Примери:</target>
+<source>Port:</source>
+<target>Порт:</target>
<source>User name:</source>
<target>Потребителско име:</target>
@@ -1039,8 +1021,14 @@ The command is triggered if:
<source>Directory on server:</source>
<target>Директория на сървъра:</target>
+<source>Select a directory on the server:</source>
+<target>Изберете директория на сървъра:</target>
+
+<source>Select Folder</source>
+<target>Изберете папка</target>
+
<source>Start synchronization now?</source>
-<target>Почни синхронизация веднага?</target>
+<target>Старт на синхронизация веднага?</target>
<source>Variant:</source>
<target>Вариант:</target>
@@ -1048,9 +1036,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>&Не показвай вече този диалог</target>
-<source>Arrange folder pair</source>
-<target>Подреди двойката папки</target>
-
<source>Items found:</source>
<target>Намерени елементи:</target>
@@ -1102,6 +1087,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>Как се планира пакетна задача?</target>
+<source>&Keep relative paths</source>
+<target>&Запази относителните пътища</target>
+
+<source>&Overwrite existing files</source>
+<target>&Презапиши съществуващите файлове</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Следните настройки се ползват от всички задачи за синхронизация.</target>
@@ -1166,7 +1157,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Ако харесвате FreeFileSync:</target>
<source>Donate with PayPal</source>
-<target>Дарение чрез PayPal</target>
+<target>Дарете чрез PayPal</target>
<source>Feedback and suggestions are welcome</source>
<target>Забележки и предложения са добре дошли</target>
@@ -1192,14 +1183,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>Изтрий елементите</target>
+<source>Copy items</source>
+<target>Копирай елементите</target>
+
<source>Options</source>
<target>Опции</target>
<source>Select Time Span</source>
-<target>Избери интервала време</target>
+<target>Избор на времеви интервал</target>
-<source>&Preferences</source>
-<target>&Предпочитания</target>
+<source>&Options</source>
+<target>&Опции</target>
<source>Main Bar</source>
<target>Главен панел</target>
@@ -1219,6 +1213,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>Обзор</target>
+<source>&Download</source>
+<target>Свал&яне</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Има нова версия на FreeFileSync:</target>
+
<source>Confirm</source>
<target>Потвърждение</target>
@@ -1279,8 +1279,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Изключи временно</target>
-<source>Delete</source>
-<target>Изтрий</target>
+<source>&Copy to...</source>
+<target>&Копирай към...</target>
+
+<source>&Delete</source>
+<target>&Изтрий</target>
<source>Include all</source>
<target>Включи всички</target>
@@ -1301,7 +1304,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Големи</target>
<source>Select time span...</source>
-<target>Избери интервала време...</target>
+<target>Избор на времеви интервал...</target>
<source>Show "%x"</source>
<target>Покажи "%x"</target>
@@ -1316,7 +1319,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Конфигурацията е запазена</target>
<source>FreeFileSync batch</source>
-<target>FreeFileSync пакет</target>
+<target>FreeFileSync-пакет</target>
<source>Do you want to save changes to %x?</source>
<target>Ще запазите ли промените на %x?</target>
@@ -1330,9 +1333,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>Премахни позицията от списъка</target>
-<source>Synchronization Settings</source>
-<target>Настройки на синхронизация</target>
-
<source>Clear filter</source>
<target>Изчисти филтъра</target>
@@ -1343,10 +1343,10 @@ This guarantees a consistent state even in case of a serious error.
<target>Покажи файловете, съществуващи само отдясно</target>
<source>Show files that are newer on left</source>
-<target>Покажи файловете от двете страни; левият файл е по-нов</target>
+<target>Покажи по-новите файлове отляво</target>
<source>Show files that are newer on right</source>
-<target>Покажи файловете от двете страни; десният файл е по-нов</target>
+<target>Покажи по-новите файлове отдясно</target>
<source>Show files that are equal</source>
<target>Покажи еднаквите файлове</target>
@@ -1400,7 +1400,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Премести надолу</target>
<source>Comma-separated values</source>
-<target>Отделени със запетая стойности</target>
+<target>Стойности, отделени с запетая</target>
<source>File list exported</source>
<target>Файловия списък е експортиран</target>
@@ -1420,27 +1420,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>Изключи компютъра</target>
+<source>Paused</source>
+<target>Пауза</target>
+
+<source>Initializing...</source>
+<target>Инициализация...</target>
+
<source>Scanning...</source>
<target>Търсене на файлове...</target>
<source>Comparing content...</source>
<target>Сравняване съдържанието на файлове...</target>
+<source>Completed</source>
+<target>Завършено</target>
+
<source>Info</source>
<target>Информация</target>
<source>Select all</source>
<target>Маркирай всичко</target>
-<source>Paused</source>
-<target>Пауза</target>
-
-<source>Initializing...</source>
-<target>Инициализация...</target>
-
-<source>Completed</source>
-<target>Завършено</target>
-
<source>&Continue</source>
<target>&Продължи</target>
@@ -1450,6 +1450,21 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Протокол</target>
+<source>Loading...</source>
+<target>Зареждане...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Копиране на следния елемент в друга папка?</pluralform>
+<pluralform>Копиране на следните %x елемента в друга папка?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Моля, въведете целева папка.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1471,9 +1486,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Трябва ли следните %x елемента да бъдат изтрити?</pluralform>
</target>
-<source>Preferences</source>
-<target>Предпочитания</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Копирай DACL, SACL, Притежател, Група</target>
@@ -1498,6 +1510,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&Покажи</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Определяне на еднаквите файлове, сравнявайки времето на промяна и размера.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Определяне на еднаквите файлове, сравнявайки файловото съдържание.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Определяне на еднаквите файлове, сравнявайки файловия размер.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Откриване и разпростиране на промените в двете страни. Изтривания, премествания и конфликти се откриват автоматично с база данни.</target>
@@ -1510,6 +1531,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Създаване на собствени правила за синхронизация.</target>
+<source>Synchronization Settings</source>
+<target>Настройки на синхронизация</target>
+
+<source>Comparison</source>
+<target>Сравняване</target>
+
+<source>Synchronization</source>
+<target>Синхронизация</target>
+
<source>Today</source>
<target>Днес</target>
@@ -1546,11 +1576,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Добави времето към името на всеки файл</target>
-<source>Comparison</source>
-<target>Сравняване</target>
+<source>Main config</source>
+<target>Главна конфигурация</target>
-<source>Synchronization</source>
-<target>Синхронизиране</target>
+<source>empty</source>
+<target>empty</target>
<source>Leave as unresolved conflict</source>
<target>Остави като нерешен конфликт</target>
@@ -1570,8 +1600,29 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>Процент</target>
+<source>Internet access failed.</source>
+<target>Няма достъп до Интернет.</target>
+
+<source>Check for Program Updates</source>
+<target>Проверка за нова версия на програмата</target>
+
+<source>Download now?</source>
+<target>Свали веднага?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync вече е актуална.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Няма връзка със www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Номера на текущата версия на FreeFileSync не е открит онлайн. Ще опитате ли ръчно?</target>
+
+<source>&Check</source>
+<target>Оп&итай</target>
+
<source>Unable to register to receive system messages.</source>
-<target>Регистрацията за получаване на системни съобщения е невъзможна.</target>
+<target>Невъзможна регистрация за получаване на системни съобщения.</target>
<source>Unable to register device notifications for %x.</source>
<target>Не се регистрират съобщенията на устройство %x.</target>
@@ -1597,6 +1648,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>Не могат да се копират правата за достъп от %x в %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x не е регулярно име на директория.</target>
+
<source>Cannot find system function %x.</source>
<target>Не е намерена системната функция %x.</target>
@@ -1664,7 +1718,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Подготовка за инсталиране</target>
<source>Choose which components you want to install.</source>
-<target>Изберете желаните компоненти за исталиране.</target>
+<target>Изберете желаните компоненти за инсталиране.</target>
<source>Select installation type:</source>
<target>Изберете типа инсталация:</target>
@@ -1700,7 +1754,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Изберете директория за инсталиране:</target>
<source>Create shortcuts:</source>
-<target>Създай къси пътища:</target>
+<target>Създай кратки пътища:</target>
<source>Desktop</source>
<target>На десктопа</target>
@@ -1723,9 +1777,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>Синхронизираща база данни на FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Конфигуриране на RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Конфигуриране на RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Редактиране с FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Благодарности за Вашите дарения и подкрепа!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Този FreeFileSync-инсталатор за дарители изчерпа инсталационния си лимит. Ще свалите ли регулярната версия от страницата на FreeFileSync сега?</target>
+
diff --git a/FreeFileSync/Build/Languages/chinese_simple.lng b/FreeFileSync/Build/Languages/chinese_simple.lng
index 4c581f19..0ca7d726 100644
--- a/FreeFileSync/Build/Languages/chinese_simple.lng
+++ b/FreeFileSync/Build/Languages/chinese_simple.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>设置默认的同步方向:旧文件会被新文件覆盖.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>正在为文件夹 %x 检测回收站可用性...</target>
+<source>Creating folder %x</source>
+<target>正创建文件夹 %x</target>
+
+<source>Creating file %x</source>
+<target>正在创建文件 %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>正在创建符号连接 %x</target>
<source>Moving file %x to the recycle bin</source>
<target>移动文件 %x 到回收站</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>正在删除符号连接 %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>正在为文件夹 %x 检测回收站可用性...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>对于如下的文件夹回收站不可用. 文件将被永久性删除:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>无法找到文件 %x.</target>
+<source>Error</source>
+<target>错误</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>文件 %x 并未包含合法的配置.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>无法找到如下文件夹:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>你可忽略此错误而将每个文件夹视为空. 这些文件夹将会在同步过程中被自动创建.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>如果你忽略这个错误, 文件夹将被认为是空的. 在需要的时候丢失的文件夹将会被自动创建.</target>
<source>A folder input field is empty.</source>
<target>有一个文件夹输入框为空.</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>无法找到设备 %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>无法确定 %x 上的可用磁盘空间.</target>
-
<source>Cannot create directory %x.</source>
<target>无法创建目录 %x.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>无法解决符号连接 %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>无法将 %x 移动到回收站.</target>
-
<source>Cannot open directory %x.</source>
<target>无法打开目录 %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>无法确定 %x 上的可用磁盘空间.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>无法将 %x 移动到回收站.</target>
+
<source>Incorrect command line:</source>
<target>不正确的命令行:</target>
@@ -343,9 +355,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>正在检测被遗弃的锁定...</target>
-<source>Creating file %x</source>
-<target>正在创建文件 %x</target>
-
<source>Saving file %x...</source>
<target>正在保存文件 %x...</target>
@@ -364,9 +373,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>无法为 %x 设置目录锁定.</target>
-<source>Scanning:</source>
-<target>扫描中:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -375,6 +381,9 @@ Actual: %y bytes
<pluralform>%x 线程</pluralform>
</target>
+<source>Scanning:</source>
+<target>扫描中:</target>
+
<source>/sec</source>
<target>/秒</target>
@@ -485,8 +494,8 @@ The command is triggered if:
- 新文件夹到达(例如U盘插入)
</target>
-<source>&Start</source>
-<target>开始(&S)</target>
+<source>Start</source>
+<target>开始</target>
<source>About</source>
<target>关于</target>
@@ -500,15 +509,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>自动同步</target>
+<source>The following path does not support directory monitoring:</source>
+<target>如下路径并不支持目录监视:</target>
+
<source>Directory monitoring active</source>
<target>目录监视激活</target>
<source>Waiting until all directories are available...</source>
<target>正在等待直到所有目录都可用...</target>
-<source>Error</source>
-<target>错误</target>
-
<source>&Restore</source>
<target>恢复(&R)</target>
@@ -521,11 +530,14 @@ The command is triggered if:
<source>&Retry</source>
<target>重试(&R)</target>
+<source>File time and size</source>
+<target>文件时间和大小</target>
+
<source>File content</source>
<target>文件内容</target>
-<source>File time and size</source>
-<target>文件时间和大小</target>
+<source>File size</source>
+<target>文件大小</target>
<source>Two way</source>
<target>双向</target>
@@ -554,12 +566,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>移除旧版本...</target>
-<source>Creating symbolic link %x</source>
-<target>正在创建符号连接 %x</target>
-
-<source>Creating folder %x</source>
-<target>正创建文件夹 %x</target>
-
<source>Updating file %x</source>
<target>正在更新文件 %x</target>
@@ -676,30 +682,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>严重错误</target>
-<source>Check for Program Updates</source>
-<target>检查程序的更新</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>已经有新版本的FreeFileSync可用:</target>
-
-<source>Download now?</source>
-<target>立即下载?</target>
-
-<source>&Download</source>
-<target>下载(&D)</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync 已是最新.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>无法连接到www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>无法在线找到当前FreeFileSync版本号. 你要手动检查吗?</target>
-
-<source>&Check</source>
-<target>检查(&C)</target>
-
<source>Symlink</source>
<target>符号连接</target>
@@ -760,11 +742,20 @@ The command is triggered if:
<source>Paste</source>
<target>粘贴</target>
-<source>Local Synchronization Settings</source>
-<target>本地同步设置</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>所选定的文件夹 %x 不能由FreeFileSync使用.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>请选择在本地文件系统, 网络或MTP设备上的文件夹.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>已选择的文件夹 %x 无法用于FreeFileSync. 请选择在本地文件系统, 网络或MTP设备上的文件夹.</target>
+<source>SFTP folder</source>
+<target>SFTP文件夹</target>
+
+<source>Select SFTP folder</source>
+<target>选择SFTP文件夹</target>
+
+<source>Select alternative folder type</source>
+<target>选择替代的文件夹类型</target>
<source>&New</source>
<target>新建(&N)</target>
@@ -793,8 +784,8 @@ The command is triggered if:
<source>&Actions</source>
<target>动作(&A)</target>
-<source>&Options</source>
-<target>选项(&O)</target>
+<source>&Preferences</source>
+<target>首选项(&P)</target>
<source>&Language</source>
<target>切换语言(&L)</target>
@@ -835,9 +826,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>移除文件夹对</target>
-<source>Select SFTP folder</source>
-<target>选择SFTP文件夹</target>
-
<source>Swap sides</source>
<target>两侧互换</target>
@@ -883,27 +871,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>要复制的总字节数</target>
+<source>Folder pair:</source>
+<target>文件夹对:</target>
+
<source>Use local settings:</source>
<target>使用本地设置:</target>
<source>Select a variant:</source>
<target>选择一个变化:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>以比较修改时间和文件大小来识别相同文件.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>以比较文件内容来识别相同的文件.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>忽略时间转换(以小时为单位)(&I)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>将文件时间有指定的偏移时视为相等</target>
-
-<source>Handle daylight saving time</source>
-<target>处理夏令时</target>
-
<source>Include &symbolic links:</source>
<target>包括符号连接(&S):</target>
@@ -916,6 +892,18 @@ The command is triggered if:
<source>More information</source>
<target>更多信息</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>忽略时间偏移[时:分](&I)</target>
+
+<source>List of file time offsets to ignore</source>
+<target>要忽略的文件时间偏移列表</target>
+
+<source>Example:</source>
+<target>例如:</target>
+
+<source>Handle daylight saving time</source>
+<target>处理夏令时</target>
+
<source>Local settings:</source>
<target>本地设置:</target>
@@ -1005,14 +993,17 @@ The command is triggered if:
<source>OK</source>
<target>确定</target>
+<source>Arrange folder pair</source>
+<target>排列文件夹对</target>
+
<source>Enter your SFTP login details:</source>
<target>输入你的SFTP登录详情:</target>
<source>Server name or IP address:</source>
<target>服务器名称或IP地址:</target>
-<source>Examples:</source>
-<target>例如:</target>
+<source>Port:</source>
+<target>端口:</target>
<source>User name:</source>
<target>用户名:</target>
@@ -1026,6 +1017,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>服务器上的目录:</target>
+<source>Select a directory on the server:</source>
+<target>选择一个服务器上的目录:</target>
+
+<source>Select Folder</source>
+<target>选择文件夹</target>
+
<source>Start synchronization now?</source>
<target>现在开始同步吗?</target>
@@ -1035,9 +1032,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>不要再显示这个对话框(&D)</target>
-<source>Arrange folder pair</source>
-<target>排列文件夹对</target>
-
<source>Items found:</source>
<target>已找到的项目:</target>
@@ -1089,6 +1083,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>我如何计划一个批处理作业?</target>
+<source>&Keep relative paths</source>
+<target>保持相对路径(&K)</target>
+
+<source>&Overwrite existing files</source>
+<target>覆盖已存在文件(&O)</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>如下的设置使用于所有同步作业.</target>
@@ -1176,14 +1176,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>删除项目</target>
+<source>Copy items</source>
+<target>复制项目</target>
+
<source>Options</source>
<target>选项</target>
<source>Select Time Span</source>
<target>选择时间跨度</target>
-<source>&Preferences</source>
-<target>首选项(&P)</target>
+<source>&Options</source>
+<target>选项(&O)</target>
<source>Main Bar</source>
<target>主工具栏</target>
@@ -1203,6 +1206,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>摘要</target>
+<source>&Download</source>
+<target>下载(&D)</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>已经有新版本的FreeFileSync可用:</target>
+
<source>Confirm</source>
<target>确认</target>
@@ -1259,8 +1268,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>暂时排除</target>
-<source>Delete</source>
-<target>删除</target>
+<source>&Copy to...</source>
+<target>复制到(&C)...</target>
+
+<source>&Delete</source>
+<target>删除(&D)</target>
<source>Include all</source>
<target>包括所有</target>
@@ -1310,9 +1322,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>从列表中移除此项</target>
-<source>Synchronization Settings</source>
-<target>同步设置</target>
-
<source>Clear filter</source>
<target>清除过滤器</target>
@@ -1400,27 +1409,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>关机</target>
+<source>Paused</source>
+<target>已暂停</target>
+
+<source>Initializing...</source>
+<target>正在初始化...</target>
+
<source>Scanning...</source>
<target>正扫描...</target>
<source>Comparing content...</source>
<target>正在比较文件内容...</target>
+<source>Completed</source>
+<target>完成</target>
+
<source>Info</source>
<target>信息</target>
<source>Select all</source>
<target>选择全部</target>
-<source>Paused</source>
-<target>已暂停</target>
-
-<source>Initializing...</source>
-<target>正在初始化...</target>
-
-<source>Completed</source>
-<target>完成</target>
-
<source>&Continue</source>
<target>继续(&C)</target>
@@ -1430,6 +1439,20 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>日志</target>
+<source>Loading...</source>
+<target>正在载入...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>复制如下的 %x 个项目到另一个文件夹?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>请输入一下目录文件夹.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1449,9 +1472,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>是否真的要删除如下 %x 个项目?</pluralform>
</target>
-<source>Preferences</source>
-<target>首选项</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>复制DACL, SACL, 所有者, 群组</target>
@@ -1476,6 +1496,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>显示(&S)</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>以比较修改时间和文件大小来识别相同文件.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>以比较文件内容来识别相同的文件.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>以比较文件大小来识别相同的文件.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>识别和传播两侧的变化. 删除, 移动和冲突会使用一个数据库来自动检测.</target>
@@ -1488,6 +1517,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>配置你自己的同步规则.</target>
+<source>Synchronization Settings</source>
+<target>同步设置</target>
+
+<source>Comparison</source>
+<target>比较</target>
+
+<source>Synchronization</source>
+<target>同步</target>
+
<source>Today</source>
<target>今天</target>
@@ -1524,11 +1562,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>添加一个时间戳到每个文件名</target>
-<source>Comparison</source>
-<target>比较</target>
+<source>Main config</source>
+<target>主配置</target>
-<source>Synchronization</source>
-<target>同步</target>
+<source>empty</source>
+<target>空</target>
<source>Leave as unresolved conflict</source>
<target>遗留为未解决的冲突</target>
@@ -1548,6 +1586,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>百分比</target>
+<source>Internet access failed.</source>
+<target>因特网接入失败.</target>
+
+<source>Check for Program Updates</source>
+<target>检查程序的更新</target>
+
+<source>Download now?</source>
+<target>立即下载?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync 已是最新.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>无法连接到www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>无法在线找到当前FreeFileSync版本号. 你要手动检查吗?</target>
+
+<source>&Check</source>
+<target>检查(&C)</target>
+
<source>Unable to register to receive system messages.</source>
<target>无法注册以接收系统信息.</target>
@@ -1575,6 +1634,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>无法从 %x 复制权限到 %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x 不是一个正规的目录名.</target>
+
<source>Cannot find system function %x.</source>
<target>无法找到系统功能 %x.</target>
@@ -1698,9 +1760,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync同步数据库</target>
-<source>RealtimeSync Configuration</source>
-<target>实时同步配置</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync配置</target>
<source>Edit with FreeFileSync</source>
<target>使用FreeFileSync编辑</target>
+<source>Thanks for your donation and support!</source>
+<target>谢谢你的捐助和支持!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>这个用于捐赠者的FreeFileSync安装程序已经达到了安装次数的限制. 是否从FreeFileSync主页下载普通版本?</target>
+
diff --git a/FreeFileSync/Build/Languages/chinese_traditional.lng b/FreeFileSync/Build/Languages/chinese_traditional.lng
index 375f0aac..411ef4dd 100644
--- a/FreeFileSync/Build/Languages/chinese_traditional.lng
+++ b/FreeFileSync/Build/Languages/chinese_traditional.lng
@@ -7,9 +7,6 @@
<plural_definition>0</plural_definition>
</header>
-<source>Port:</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>自上次同步後,兩邊均已變更過。</target>
@@ -20,13 +17,19 @@
<target>自上次同步以來都沒有變更。</target>
<source>The database entry is not in sync considering current settings.</source>
-<target>資料庫條目在同步時,不會考慮到目前的設定。</target>
+<target>資料庫條目未同步考慮到目前設定。</target>
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>設定預設同步方向:舊檔案會被較新的檔案覆蓋。</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>正在檢查資源回收筒的可用性資料夾 %x...</target>
+<source>Creating folder %x</source>
+<target>正在新建資料夾 %x</target>
+
+<source>Creating file %x</source>
+<target>正在新建檔案 %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>正在新建符號連結 %x</target>
<source>Moving file %x to the recycle bin</source>
<target>正在移動檔案 %x 到資源回收筒</target>
@@ -46,8 +49,11 @@
<source>Deleting symbolic link %x</source>
<target>正在刪除符號連結 %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>正在檢查資源回收筒的可用性資料夾 %x…</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
-<target>資源回收筒不可用於以下資料夾。檔案將被永久刪除替代:</target>
+<target>資源回收筒不可用於以下資料夾。相反的檔案將永久被刪除:</target>
<source>An exception occurred</source>
<target>發生異常</target>
@@ -61,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>找不到檔案 %x。</target>
+<source>Error</source>
+<target>錯誤</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>檔案 %x 不包含一個有效的配置。</target>
@@ -95,7 +104,7 @@
<target>FreeFileSync .ffs_gui和/或.ffs_batch配置檔案的任意數量。</target>
<source>Any number of alternative directory pairs for at most one config file.</source>
-<target>任意數量的替代配對目錄為最多一個配置檔案。</target>
+<target>任意數量的備用配對目錄為最多一個配置檔案。</target>
<source>Open configuration for editing without executing it.</source>
<target>開啟配置進行編輯而不執行。</target>
@@ -103,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>找不到下列資料夾:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>您可以忽略每個資料夾視為空的錯誤。資料夾會在同步過程中自動新建。</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>如果您忽略此錯誤的資料夾都將被視為空的。遺失的資料夾會在需要時自動新建。</target>
<source>A folder input field is empty.</source>
<target>資料夾輸入欄位是空的。</target>
@@ -140,13 +149,13 @@
<target>正在比對檔案内容 %x</target>
<source>Generating file list...</source>
-<target>正在產生檔案清單...</target>
+<target>正在產生檔案清單…</target>
<source>Starting comparison</source>
<target>開始比對</target>
<source>Calculating sync directions...</source>
-<target>正在計算同步方向...</target>
+<target>正在計算同步方向…</target>
<source>Out of memory.</source>
<target>記憶體不足。</target>
@@ -249,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>找不到裝置 %x。</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>無法確定 %x 的可用磁碟空間。</target>
-
<source>Cannot create directory %x.</source>
<target>無法新建目錄 %x。</target>
@@ -270,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>無法解析符號連結 %x。</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>無法將 %x 移動到資源回收筒。</target>
-
<source>Cannot open directory %x.</source>
<target>無法開啟目錄 %x。</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>無法確定 %x 的可用磁碟空間。</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>無法將 %x 移動到資源回收筒。</target>
+
<source>Incorrect command line:</source>
<target>不正確的命令列:</target>
@@ -321,7 +330,7 @@ Actual: %y bytes
<target>資料庫檔案不會共享一個共同的連線。</target>
<source>Searching for folder %x...</source>
-<target>正在搜尋資料夾 %x...</target>
+<target>正在搜尋資料夾 %x…</target>
<source>Time out while searching for folder %x.</source>
<target>搜尋資料夾 %x 時超時。</target>
@@ -330,7 +339,7 @@ Actual: %y bytes
<target>無法得到進程資訊。</target>
<source>Waiting while directory is locked:</source>
-<target>等待同時目錄被鎖定:</target>
+<target>正在等待鎖定目錄時:</target>
<source>Lock owner:</source>
<target>鎖定擁有者:</target>
@@ -344,13 +353,10 @@ Actual: %y bytes
</target>
<source>Detecting abandoned lock...</source>
-<target>正在檢測被放棄的鎖定...</target>
-
-<source>Creating file %x</source>
-<target>正在新建檔案 %x</target>
+<target>正在檢測被放棄的鎖定…</target>
<source>Saving file %x...</source>
-<target>正在儲存檔案 %x...</target>
+<target>正在儲存檔案 %x…</target>
<source>Items processed:</source>
<target>已處理項目:</target>
@@ -367,9 +373,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>無法對 %x 設定目錄鎖。</target>
-<source>Scanning:</source>
-<target>正在掃瞄:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +381,9 @@ Actual: %y bytes
<pluralform>%x 個執行緒</pluralform>
</target>
+<source>Scanning:</source>
+<target>正在掃瞄:</target>
+
<source>/sec</source>
<target>/秒</target>
@@ -406,7 +412,7 @@ Actual: %y bytes
<target>卷名 %x 不是檔案路徑 %y 的一部分。</target>
<source>Stop requested: Waiting for current operation to finish...</source>
-<target>停止要求:等待目前的操作結束...</target>
+<target>停止要求:等待目前的操作結束…</target>
<source>Unable to create time stamp for versioning:</source>
<target>無法新建時間戳記的版本控制:</target>
@@ -421,10 +427,10 @@ Actual: %y bytes
<target>選擇一個資料夾</target>
<source>&Open...</source>
-<target>開啟(&O)...</target>
+<target>開啟(&O)…</target>
<source>Save &as...</source>
-<target>另存新檔(&A)...</target>
+<target>另存新檔(&A)…</target>
<source>E&xit</source>
<target>離開(&x)</target>
@@ -488,8 +494,8 @@ The command is triggered if:
- 新資料夾到來(例如插入USB隨身碟)
</target>
-<source>&Start</source>
-<target>開始(&S)</target>
+<source>Start</source>
+<target>開始</target>
<source>About</source>
<target>關於</target>
@@ -503,14 +509,14 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>自動化同步</target>
+<source>The following path does not support directory monitoring:</source>
+<target>以下路徑不支援目錄監測:</target>
+
<source>Directory monitoring active</source>
<target>目錄監測啟動</target>
<source>Waiting until all directories are available...</source>
-<target>等到所有目錄可用...</target>
-
-<source>Error</source>
-<target>錯誤</target>
+<target>正在等待所有目錄可用…</target>
<source>&Restore</source>
<target>還原(&R)</target>
@@ -524,11 +530,14 @@ The command is triggered if:
<source>&Retry</source>
<target>重試(&R)</target>
+<source>File time and size</source>
+<target>檔案大小和日期</target>
+
<source>File content</source>
<target>檔案内容</target>
-<source>File time and size</source>
-<target>檔案大小和日期</target>
+<source>File size</source>
+<target>檔案大小</target>
<source>Two way</source>
<target>雙向</target>
@@ -543,7 +552,7 @@ The command is triggered if:
<target>自訂</target>
<source>Multiple...</source>
-<target>多個...</target>
+<target>多個…</target>
<source>Moving file %x to %y</source>
<target>正在移動檔案 %x 到 %y</target>
@@ -555,19 +564,13 @@ The command is triggered if:
<target>正在移動符號連結 %x 到 %y</target>
<source>Removing old versions...</source>
-<target>正在刪除舊版本...</target>
-
-<source>Creating symbolic link %x</source>
-<target>正在新建符號連結 %x</target>
-
-<source>Creating folder %x</source>
-<target>正在新建資料夾 %x</target>
+<target>正在刪除舊版本…</target>
<source>Updating file %x</source>
-<target>正在更新檔案 %x...</target>
+<target>正在更新檔案 %x</target>
<source>Updating symbolic link %x</source>
-<target>正在更新符號連結 %x...</target>
+<target>正在更新符號連結 %x</target>
<source>Verifying file %x</source>
<target>正在驗證檔案 %x</target>
@@ -582,16 +585,16 @@ The command is triggered if:
<target>資料驗證錯誤:</target>
<source>Creating a Volume Shadow Copy for %x...</source>
-<target>正在新建卷影複製為 %x...</target>
+<target>正在新建卷影複製為 %x…</target>
<source>Target folder %x already existing.</source>
<target>目標資料夾 %x 已存在。</target>
<source>Target folder input field must not be empty.</source>
-<target>目標資料夾輸入欄位不能為空。</target>
+<target>目標資料夾輸入欄位不能為空白。</target>
<source>Source folder %x not found.</source>
-<target>來源資料夾 %x 找不到。</target>
+<target>找不到來源資料夾 %x。</target>
<source>Please enter a target folder for versioning.</source>
<target>請輸入版本控制的目的資料夾。</target>
@@ -618,7 +621,7 @@ The command is triggered if:
<target>同步配對資料夾:</target>
<source>Generating database...</source>
-<target>正在產生資料庫...</target>
+<target>正在產生資料庫…</target>
<source>job name</source>
<target>作業名稱</target>
@@ -645,7 +648,7 @@ The command is triggered if:
<target>同步已成功完成</target>
<source>Cleaning up old log files...</source>
-<target>清理舊日誌檔...</target>
+<target>清理舊日誌檔…</target>
<source>You can switch to FreeFileSync's main window to resolve this issue.</source>
<target>您可以切換到FreeFileSync的主視窗中來解決此問題。</target>
@@ -667,42 +670,18 @@ The command is triggered if:
<pluralform>Automatic retry in %x seconds...</pluralform>
</source>
<target>
-<pluralform>在 %x 秒自動重試...</pluralform>
+<pluralform>在 %x 秒自動重試…</pluralform>
</target>
<source>&Ignore subsequent errors</source>
<target>忽略後續的錯誤(&I)</target>
<source>Retrying operation...</source>
-<target>重試操作...</target>
+<target>重試操作…</target>
<source>Serious Error</source>
<target>嚴重錯誤</target>
-<source>Check for Program Updates</source>
-<target>檢查程式更新</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>FreeFileSync有新版本可用:</target>
-
-<source>Download now?</source>
-<target>要立即下載嗎?</target>
-
-<source>&Download</source>
-<target>下載(&D)</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync已經是最新版本。</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>無法連接到www.freefilesync.org。</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>找不到線上目前FreeFileSync版號!是否要手動檢查?</target>
-
-<source>&Check</source>
-<target>檢查(&C)</target>
-
<source>Symlink</source>
<target>符號連結</target>
@@ -719,7 +698,7 @@ The command is triggered if:
<target>對應資料夾</target>
<source>Base folder</source>
-<target>底層資料夾</target>
+<target>基本資料夾</target>
<source>Size</source>
<target>大小</target>
@@ -763,11 +742,20 @@ The command is triggered if:
<source>Paste</source>
<target>貼上</target>
-<source>Local Synchronization Settings</source>
-<target>本機同步設定</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>所選資料夾 %x 無法使用於FreeFileSync。</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>請選擇一個本機檔案系統、網路或MTP設備上的資料夾。</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>所選資料夾 %x 不能用在FreeFileSync。請選擇一個本機檔案系統、網路或MTP裝置上的資料夾。</target>
+<source>SFTP folder</source>
+<target>SFTP資料夾</target>
+
+<source>Select SFTP folder</source>
+<target>選擇SFTP資料夾</target>
+
+<source>Select alternative folder type</source>
+<target>選擇備用資料夾類型</target>
<source>&New</source>
<target>新增(&N)</target>
@@ -776,7 +764,7 @@ The command is triggered if:
<target>儲存(&S)</target>
<source>Save as &batch job...</source>
-<target>另存為批次處理作業(&b)...</target>
+<target>另存為批次處理作業(&b)…</target>
<source>Start &comparison</source>
<target>開始比對(&c)</target>
@@ -796,20 +784,20 @@ The command is triggered if:
<source>&Actions</source>
<target>動作(&A)</target>
-<source>&Options</source>
-<target>選項(&O)</target>
+<source>&Preferences</source>
+<target>偏好設定(&P)</target>
<source>&Language</source>
<target>語言(&L)</target>
<source>&Find...</source>
-<target>尋找(&F)...</target>
+<target>尋找(&F)…</target>
<source>&Reset layout</source>
<target>重置佈局(&R)</target>
<source>&Export file list...</source>
-<target>匯出檔案清單(&E)...</target>
+<target>匯出檔案清單(&E)…</target>
<source>&Tools</source>
<target>工具(&T)</target>
@@ -821,7 +809,7 @@ The command is triggered if:
<target>現在檢查(&C)</target>
<source>Check &automatically once a week</source>
-<target>一週自動檢查一次(&a)</target>
+<target>每週自動檢查一次(&a)</target>
<source>Cancel</source>
<target>取消</target>
@@ -838,9 +826,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>移除配對資料夾</target>
-<source>Select SFTP folder</source>
-<target>選擇SFTP資料夾</target>
-
<source>Swap sides</source>
<target>兩邊交換</target>
@@ -857,13 +842,13 @@ The command is triggered if:
<target>新增</target>
<source>Open...</source>
-<target>開啟...</target>
+<target>開啟…</target>
<source>Save</source>
<target>儲存</target>
<source>Save as...</source>
-<target>另存新檔...</target>
+<target>另存新檔…</target>
<source>View type:</source>
<target>檢視類型:</target>
@@ -886,27 +871,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>要複製的位元組總數</target>
+<source>Folder pair:</source>
+<target>配對資料夾:</target>
+
<source>Use local settings:</source>
<target>使用本機設定:</target>
<source>Select a variant:</source>
<target>選擇一個變數:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>由修改時間和檔案大小比對來判斷相同檔案。</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>由比對檔案內容來判斷相同檔案。</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>忽略時間轉變(小時)(&I)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>考慮檔案時間和相等的指定偏移量</target>
-
-<source>Handle daylight saving time</source>
-<target>日光節約時間處理</target>
-
<source>Include &symbolic links:</source>
<target>包括符號連結(&s):</target>
@@ -919,6 +892,18 @@ The command is triggered if:
<source>More information</source>
<target>詳細資訊</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>忽略時間的轉變(&D)</target>
+
+<source>List of file time offsets to ignore</source>
+<target>忽略清單中的檔案時間偏移</target>
+
+<source>Example:</source>
+<target>範例:</target>
+
+<source>Handle daylight saving time</source>
+<target>日光節約時間處理</target>
+
<source>Local settings:</source>
<target>本機設定:</target>
@@ -960,7 +945,7 @@ The command is triggered if:
<target>
- 不支援所有檔案系統
- 需要新建資料庫檔案
-- 檢測不可用於第一次同步
+- 檢測不可用於首次同步
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1008,14 +993,17 @@ The command is triggered if:
<source>OK</source>
<target>確定</target>
+<source>Arrange folder pair</source>
+<target>排列配對資料夾</target>
+
<source>Enter your SFTP login details:</source>
<target>請輸入您的SFTP登錄詳細資訊:</target>
<source>Server name or IP address:</source>
<target>伺服器名稱或IP位址:</target>
-<source>Examples:</source>
-<target>範例:</target>
+<source>Port:</source>
+<target>連接埠:</target>
<source>User name:</source>
<target>使用者名稱:</target>
@@ -1029,6 +1017,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>在伺服器上的目錄:</target>
+<source>Select a directory on the server:</source>
+<target>選擇伺服器上的目錄:</target>
+
+<source>Select Folder</source>
+<target>選擇資料夾:</target>
+
<source>Start synchronization now?</source>
<target>現在開始同步?</target>
@@ -1038,9 +1032,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>不要再顯示此對話框(&D)</target>
-<source>Arrange folder pair</source>
-<target>排列配對資料夾</target>
-
<source>Items found:</source>
<target>尋找項目:</target>
@@ -1051,7 +1042,7 @@ The command is triggered if:
<target>經過時間:</target>
<source>Synchronizing...</source>
-<target>正在同步...</target>
+<target>正在同步…</target>
<source>Minimize to notification area</source>
<target>最小化到通知區域</target>
@@ -1069,7 +1060,7 @@ The command is triggered if:
<target>停止</target>
<source>Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x</source>
-<target>新建一個批次處理檔,用於無人值守同步。開始,點兩下此檔案,或安排在任務規劃中:%x</target>
+<target>新建一個批次處理檔,用於無人值守同步。開始,在此檔案點兩下,或安排在任務規劃中:%x</target>
<source>&Stop</source>
<target>停止(&S)</target>
@@ -1092,6 +1083,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>如何安排批次處理作業?</target>
+<source>&Keep relative paths</source>
+<target>保持相對路徑(&K)</target>
+
+<source>&Overwrite existing files</source>
+<target>覆蓋現有檔案(&O)</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>以下設定用於所有同步作業。</target>
@@ -1159,7 +1156,7 @@ This guarantees a consistent state even in case of a serious error.
<target>使用PayPal捐款</target>
<source>Feedback and suggestions are welcome</source>
-<target>歡迎反饋意見和建議</target>
+<target>歡迎反映意見和建議</target>
<source>Homepage</source>
<target>首頁</target>
@@ -1182,14 +1179,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>刪除項目</target>
+<source>Copy items</source>
+<target>複製項目</target>
+
<source>Options</source>
<target>選項</target>
<source>Select Time Span</source>
<target>選擇時間間隔</target>
-<source>&Preferences</source>
-<target>偏好設定(&P)</target>
+<source>&Options</source>
+<target>選項(&O)</target>
<source>Main Bar</source>
<target>主欄位</target>
@@ -1209,6 +1209,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>摘要</target>
+<source>&Download</source>
+<target>下載(&D)</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>FreeFileSync有新版本可用:</target>
+
<source>Confirm</source>
<target>確認</target>
@@ -1265,8 +1271,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>暫時排除</target>
-<source>Delete</source>
-<target>刪除</target>
+<source>&Copy to...</source>
+<target>複製到(&C)…</target>
+
+<source>&Delete</source>
+<target>刪除(&D)</target>
<source>Include all</source>
<target>包括所有</target>
@@ -1287,7 +1296,7 @@ This guarantees a consistent state even in case of a serious error.
<target>大</target>
<source>Select time span...</source>
-<target>選擇時間間隔...</target>
+<target>選擇時間間隔…</target>
<source>Show "%x"</source>
<target>顯示 "%x"</target>
@@ -1316,9 +1325,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>從清單中項目刪除</target>
-<source>Synchronization Settings</source>
-<target>同步設定</target>
-
<source>Clear filter</source>
<target>清除篩選器</target>
@@ -1392,7 +1398,7 @@ This guarantees a consistent state even in case of a serious error.
<target>檔案清單已匯出</target>
<source>Searching for program updates...</source>
-<target>正在搜尋程式更新...</target>
+<target>正在搜尋程式更新…</target>
<source>Close progress dialog</source>
<target>關閉進度對話框</target>
@@ -1406,11 +1412,20 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>關機</target>
+<source>Paused</source>
+<target>已暫停</target>
+
+<source>Initializing...</source>
+<target>正在初始化…</target>
+
<source>Scanning...</source>
-<target>正在掃瞄...</target>
+<target>正在掃瞄…</target>
<source>Comparing content...</source>
-<target>正在比對内容...</target>
+<target>正在比對内容…</target>
+
+<source>Completed</source>
+<target>已完成</target>
<source>Info</source>
<target>訊息</target>
@@ -1418,15 +1433,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Select all</source>
<target>全選</target>
-<source>Paused</source>
-<target>已暫停</target>
-
-<source>Initializing...</source>
-<target>正在初始化...</target>
-
-<source>Completed</source>
-<target>已完成</target>
-
<source>&Continue</source>
<target>繼續(&C)</target>
@@ -1436,12 +1442,26 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>日誌</target>
+<source>Loading...</source>
+<target>正在載入…</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>將下列 %x 項目複製到另一個資料夾?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>請輸入目的資料夾。</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
</source>
<target>
-<pluralform>您真的要將以下項目 %x 移動到資源回收筒嗎?</pluralform>
+<pluralform>您真的要將下列 %x 項目移動到資源回收筒嗎?</pluralform>
</target>
<source>Move</source>
@@ -1455,9 +1475,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>您真的要將下列 %x 項目刪除嗎?</pluralform>
</target>
-<source>Preferences</source>
-<target>偏好設定</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>複製DACL、SACL、擁有者、群組</target>
@@ -1482,8 +1499,17 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>顯示(&S)</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>由修改時間和檔案大小比對來判斷相同檔案。</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>由比對檔案內容來判斷相同檔案。</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>由比對檔案大小來判斷相同檔案。</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
-<target>識別和傳播兩邊的變更。自動檢測刪除、移動和衝突使用的資料庫。</target>
+<target>識別和傳達兩邊的變更。自動檢測刪除、移動和衝突使用的資料庫。</target>
<source>Create a mirror backup of the left folder by adapting the right folder to match.</source>
<target>新建一個鏡像備份的左邊資料夾來調整匹配右邊資料夾。</target>
@@ -1494,6 +1520,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>配置您自己的同步規則。</target>
+<source>Synchronization Settings</source>
+<target>同步設定</target>
+
+<source>Comparison</source>
+<target>比對</target>
+
+<source>Synchronization</source>
+<target>同步</target>
+
<source>Today</source>
<target>今日</target>
@@ -1522,7 +1557,7 @@ This guarantees a consistent state even in case of a serious error.
<target>取代</target>
<source>Move files and replace if existing</source>
-<target>如果存在,移動檔案並取代</target>
+<target>如果存在,移動並取代檔案</target>
<source>Time stamp</source>
<target>時間戳記</target>
@@ -1530,11 +1565,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>將時間戳記附加到每個檔案名稱上</target>
-<source>Comparison</source>
-<target>比對</target>
+<source>Main config</source>
+<target>主要配置</target>
-<source>Synchronization</source>
-<target>同步</target>
+<source>empty</source>
+<target>空的</target>
<source>Leave as unresolved conflict</source>
<target>保留給未解決的衝突</target>
@@ -1554,6 +1589,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>百分比</target>
+<source>Internet access failed.</source>
+<target>網際網路連線失敗。</target>
+
+<source>Check for Program Updates</source>
+<target>檢查程式更新</target>
+
+<source>Download now?</source>
+<target>要立即下載嗎?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync已經是最新版本。</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>無法連接到www.freefilesync.org。</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>線上找不到目前FreeFileSync版號!是否要手動檢查?</target>
+
+<source>&Check</source>
+<target>檢查(&C)</target>
+
<source>Unable to register to receive system messages.</source>
<target>無法登錄接收系統訊息。</target>
@@ -1581,6 +1637,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>無法從 %x 複製權限到 %y。</target>
+<source>%x is not a regular directory name.</source>
+<target>%x 不是一個常規目錄名稱。</target>
+
<source>Cannot find system function %x.</source>
<target>找不到系統函數 %x。</target>
@@ -1704,9 +1763,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync同步資料庫</target>
-<source>RealtimeSync Configuration</source>
-<target>即時同步配置</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync配置</target>
<source>Edit with FreeFileSync</source>
<target>使用FreeFileSync進行編輯</target>
+<source>Thanks for your donation and support!</source>
+<target>感謝您的捐贈和支援!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>捐贈者為此FreeFileSync安裝程式已達到其安裝限制。現在要從FreeFileSync首頁下載普通版嗎?</target>
+
diff --git a/FreeFileSync/Build/Languages/croatian.lng b/FreeFileSync/Build/Languages/croatian.lng
index e96b1fbe..73b0a527 100644
--- a/FreeFileSync/Build/Languages/croatian.lng
+++ b/FreeFileSync/Build/Languages/croatian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Postavljam zadani sinkronizacijski smjer: Stare datoteke će biti prepisane novim datotekama.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Provjeravanje dosupnosti kante za smeće za mapu %x...</target>
+<source>Creating folder %x</source>
+<target>Kreiranje mape %x</target>
+
+<source>Creating file %x</source>
+<target>Izrađujem datoteku %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Izrađujem simboličnu poveznicu %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Premještnje datoteke %x u koš za smeće</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Brisanje simboličnog linka %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Provjeravanje dosupnosti kante za smeće za mapu %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Koš za smeće nije dostupna za sljedeće mape. Zbog toga će datoteke biti trajno obrisane:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Nije moguće pronaći datoteku %x.</target>
+<source>Error</source>
+<target>Greška</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Datoteka %x ne sadrži valjane postavke.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Ne mogu pronaći slijedeće mape:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Možete ignorirati ovu pogrešku i smatrati da je svaka mapa kao prazna. Mape se tada stvaraju automatski tokom sinkronizacije.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ukoliko zanemarite ovu pogrešku mape će se smatrati praznima. Nedostajuće mape se stvaraju automatski po potrebi.</target>
<source>A folder input field is empty.</source>
<target>Polje za odabir mape je prazno.</target>
@@ -246,9 +258,6 @@ Stvarno: %y bajta
<source>Cannot find device %x.</source>
<target>Nije moguće pronaći uređaj %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Nije moguće izračunati slobodan prostor diska za %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Ne mogu izraditi mapu %x.</target>
@@ -267,12 +276,15 @@ Stvarno: %y bajta
<source>Cannot resolve symbolic link %x.</source>
<target>Ne mogu odrediti simboličnu poveznicu %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Nije moguće premjestiti %x u koš za smeće.</target>
-
<source>Cannot open directory %x.</source>
<target>Ne mogu otvoriti mapu %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Nije moguće izračunati slobodan prostor diska za %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Nije moguće premjestiti %x u koš za smeće.</target>
+
<source>Incorrect command line:</source>
<target>Netočna naredbena linija:</target>
@@ -347,9 +359,6 @@ Stvarno: %y bajta
<source>Detecting abandoned lock...</source>
<target>Pronalazim napušteni ključ...</target>
-<source>Creating file %x</source>
-<target>Izrađujem datoteku %x</target>
-
<source>Saving file %x...</source>
<target>Spremanje datoteke %x...</target>
@@ -368,9 +377,6 @@ Stvarno: %y bajta
<source>Cannot set directory lock for %x.</source>
<target>Ne mogu zaključiti mapu za %x.</target>
-<source>Scanning:</source>
-<target>Pretražujem:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -381,6 +387,9 @@ Stvarno: %y bajta
<pluralform>%x niti</pluralform>
</target>
+<source>Scanning:</source>
+<target>Pretražujem:</target>
+
<source>/sec</source>
<target>/sek</target>
@@ -491,8 +500,8 @@ Naredba će biti pokrenuta ako se:
- pojave nove mape (npr. umetanje USB stika)
</target>
-<source>&Start</source>
-<target>&Započni</target>
+<source>Start</source>
+<target>Započni</target>
<source>About</source>
<target>O programu</target>
@@ -506,15 +515,15 @@ Naredba će biti pokrenuta ako se:
<source>Automated Synchronization</source>
<target>Automatska Sinkronizacija</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Slijedeća putanja ne podržava nadzor nad mapama:</target>
+
<source>Directory monitoring active</source>
<target>Nadzor direktorija je aktivan</target>
<source>Waiting until all directories are available...</source>
<target>Čekanje na dostupnost svih direktorija...</target>
-<source>Error</source>
-<target>Greška</target>
-
<source>&Restore</source>
<target>&Vrati</target>
@@ -527,11 +536,14 @@ Naredba će biti pokrenuta ako se:
<source>&Retry</source>
<target>&Ponovi</target>
+<source>File time and size</source>
+<target>Vrijeme i veličina datoteke</target>
+
<source>File content</source>
<target>Sadržaj datoteke</target>
-<source>File time and size</source>
-<target>Vrijeme i veličina datoteke</target>
+<source>File size</source>
+<target>Veličina datoteke</target>
<source>Two way</source>
<target>Dvosmjerno</target>
@@ -560,12 +572,6 @@ Naredba će biti pokrenuta ako se:
<source>Removing old versions...</source>
<target>Uklanjanje starije verzije...</target>
-<source>Creating symbolic link %x</source>
-<target>Izrađujem simboličnu poveznicu %x</target>
-
-<source>Creating folder %x</source>
-<target>Kreiranje mape %x</target>
-
<source>Updating file %x</source>
<target>Ažuriram datoteku %x</target>
@@ -618,7 +624,7 @@ Naredba će biti pokrenuta ako se:
<target>Višestruki parovi mapa zapisuju u zajedničku podmapu. Molimo provjerite vaše postavke.</target>
<source>Synchronizing folder pair:</source>
-<target>Par sinkroniziranja mapa:</target>
+<target>Mape sinkronizacije::</target>
<source>Generating database...</source>
<target>Izrađivanje baze podataka...</target>
@@ -684,30 +690,6 @@ Naredba će biti pokrenuta ako se:
<source>Serious Error</source>
<target>Ozbiljna Pogreška</target>
-<source>Check for Program Updates</source>
-<target>Provjeri za nadogradnje programa</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Nova verzija FreeFileSync je dostupna:</target>
-
-<source>Download now?</source>
-<target>Preuzeti sada?</target>
-
-<source>&Download</source>
-<target>&Preuzmi</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync je ažuran.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Nije moguće povezivanje s www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Ne mogu pronaći trenutnu verziju FreeFileSync-a online. Da li želite ručno potražiti?</target>
-
-<source>&Check</source>
-<target>&Provjeri</target>
-
<source>Symlink</source>
<target>Poveznica simbola</target>
@@ -768,11 +750,20 @@ Naredba će biti pokrenuta ako se:
<source>Paste</source>
<target>Zalijepi</target>
-<source>Local Synchronization Settings</source>
-<target>Lokalne Sinkronizacijske Postavke</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Odabrana mapa %x ne može biti korištena u FreeFileSync-u.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Molimo odaberite mapu na lokalnom disku, mreži ili MTP uređaju.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Odabrana mapa %x ne može biti korištena u FreeFileSync-u. Molimo odaberite mapu na lokalnom disku, mreži ili MTP uređaju.</target>
+<source>SFTP folder</source>
+<target>SFTP mapa</target>
+
+<source>Select SFTP folder</source>
+<target>Odaberite SFTP mapu</target>
+
+<source>Select alternative folder type</source>
+<target>Odaberite alternativni tip mape</target>
<source>&New</source>
<target>&Novo</target>
@@ -801,8 +792,8 @@ Naredba će biti pokrenuta ako se:
<source>&Actions</source>
<target>&Akcije</target>
-<source>&Options</source>
-<target>&Opcije</target>
+<source>&Preferences</source>
+<target>&Perfomanse</target>
<source>&Language</source>
<target>&Jezik</target>
@@ -843,9 +834,6 @@ Naredba će biti pokrenuta ako se:
<source>Remove folder pair</source>
<target>Ukloni ovu mapu</target>
-<source>Select SFTP folder</source>
-<target>Odaberite SFTP mapu</target>
-
<source>Swap sides</source>
<target>Zamjeni strane</target>
@@ -891,27 +879,15 @@ Naredba će biti pokrenuta ako se:
<source>Total bytes to copy</source>
<target>Ukupno bajta za kopirati</target>
+<source>Folder pair:</source>
+<target>Par mapa:</target>
+
<source>Use local settings:</source>
<target>Koristi lokalne postavke:</target>
<source>Select a variant:</source>
<target>Odaberi opciju:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Ustanovi jednake datoteke uspoređujući vrijeme izmjene i veličinu.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Ustanovi jednake datoteke uspoređujući sadržaj datoteke.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignoriraj vremenski pomak (u satima)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Smatraj vrijeme datoteke u ovom razmaku istima</target>
-
-<source>Handle daylight saving time</source>
-<target>Upravljaj ljetnim računanjem vremena</target>
-
<source>Include &symbolic links:</source>
<target>Koristi &simbolične poveznice:</target>
@@ -924,6 +900,18 @@ Naredba će biti pokrenuta ako se:
<source>More information</source>
<target>Više informacija</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Zanemari vremenski pomak [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Popis u vremenskim razlikama datoteka za ignorirati</target>
+
+<source>Example:</source>
+<target>Primjer:</target>
+
+<source>Handle daylight saving time</source>
+<target>Upravljaj ljetnim računanjem vremena</target>
+
<source>Local settings:</source>
<target>Lokalne postavke:</target>
@@ -1013,14 +1001,17 @@ Naredba će biti pokrenuta ako se:
<source>OK</source>
<target>U redu</target>
+<source>Arrange folder pair</source>
+<target>Rasporedi par mapa</target>
+
<source>Enter your SFTP login details:</source>
<target>Unesite SFTP pristupne podatke:</target>
<source>Server name or IP address:</source>
<target>Naziv servera ili IP adresa:</target>
-<source>Examples:</source>
-<target>Primjeri:</target>
+<source>Port:</source>
+<target>Port:</target>
<source>User name:</source>
<target>Korisničko ime:</target>
@@ -1034,6 +1025,12 @@ Naredba će biti pokrenuta ako se:
<source>Directory on server:</source>
<target>Mapa na serveru:</target>
+<source>Select a directory on the server:</source>
+<target>Odaberi mapu na serveru:</target>
+
+<source>Select Folder</source>
+<target>Odaberi mapu</target>
+
<source>Start synchronization now?</source>
<target>Započeti sinkronizaciju sada?</target>
@@ -1043,9 +1040,6 @@ Naredba će biti pokrenuta ako se:
<source>&Don't show this dialog again</source>
<target>&Nemoj više prikazivati ovaj dijaloški prozor</target>
-<source>Arrange folder pair</source>
-<target>Rasporedi par mapa</target>
-
<source>Items found:</source>
<target>Pronađene stavke:</target>
@@ -1097,6 +1091,12 @@ Naredba će biti pokrenuta ako se:
<source>How can I schedule a batch job?</source>
<target>Kako zakazati slijedni zadatak?</target>
+<source>&Keep relative paths</source>
+<target>&Zadrži relativne putanje</target>
+
+<source>&Overwrite existing files</source>
+<target>&Prepiši postojeće datoteke</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Ove postavke se koriste za sve sinkronizacijske zadatke.</target>
@@ -1187,14 +1187,17 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Delete Items</source>
<target>Izbriši stavke</target>
+<source>Copy items</source>
+<target>Kopiraj stavke</target>
+
<source>Options</source>
<target>Opcije</target>
<source>Select Time Span</source>
<target>Odaberite vremenski raspon</target>
-<source>&Preferences</source>
-<target>&Perfomanse</target>
+<source>&Options</source>
+<target>&Opcije</target>
<source>Main Bar</source>
<target>Glavna traka</target>
@@ -1214,6 +1217,12 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Overview</source>
<target>Pregled</target>
+<source>&Download</source>
+<target>&Preuzmi</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Nova verzija FreeFileSync je dostupna:</target>
+
<source>Confirm</source>
<target>Potvrdi</target>
@@ -1278,8 +1287,11 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Exclude temporarily</source>
<target>Izuzmi privremeno</target>
-<source>Delete</source>
-<target>Izbriši</target>
+<source>&Copy to...</source>
+<target>&Kopiraj na...</target>
+
+<source>&Delete</source>
+<target>&Izbriši</target>
<source>Include all</source>
<target>Uključi sve</target>
@@ -1329,9 +1341,6 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Remove entry from list</source>
<target>Ukloni stavku iz liste</target>
-<source>Synchronization Settings</source>
-<target>Postavke Sinkronizacije</target>
-
<source>Clear filter</source>
<target>Očisti filter</target>
@@ -1419,27 +1428,27 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Shut down</source>
<target>Isključi računalo</target>
+<source>Paused</source>
+<target>Pauzirano</target>
+
+<source>Initializing...</source>
+<target>Započinjem...</target>
+
<source>Scanning...</source>
<target>Tražim...</target>
<source>Comparing content...</source>
<target>Uspoređujem sadržaj...</target>
+<source>Completed</source>
+<target>Dovršeno</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Odaberi sve</target>
-<source>Paused</source>
-<target>Pauzirano</target>
-
-<source>Initializing...</source>
-<target>Započinjem...</target>
-
-<source>Completed</source>
-<target>Dovršeno</target>
-
<source>&Continue</source>
<target>&Nastavi</target>
@@ -1449,6 +1458,22 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Log</source>
<target>Izvješće</target>
+<source>Loading...</source>
+<target>Učitavam...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Kopirati navedenu %x stavku u drugu mapu?</pluralform>
+<pluralform>Kopirati slijedeće %x stavke u drugu mapu?</pluralform>
+<pluralform>Kopirati slijedećih %x stavki u drugu mapu?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Molim unesite odredišnu mapu.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1472,9 +1497,6 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<pluralform>Da li zaista želite obristi sljedećih %x stavki?</pluralform>
</target>
-<source>Preferences</source>
-<target>Prioriteti</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Kopiraj DACL, SACL, Vlasnika, Grupu</target>
@@ -1499,6 +1521,15 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>&Show</source>
<target>&Prikaži</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Ustanovi jednake datoteke uspoređujući vrijeme izmjene i veličinu.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Ustanovi jednake datoteke uspoređujući sadržaj datoteke.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Prepoznaj jednake datoteke uspoređujući njihovu veličinu.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Pronađi i izvrši izmjene na obje strane. Izbrisano, premješteno te sukobi se otkriju automatski pomoću baze podataka.</target>
@@ -1511,6 +1542,15 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Configure your own synchronization rules.</source>
<target>Postavite vaša vlastita sinkronizacijska pravila.</target>
+<source>Synchronization Settings</source>
+<target>Postavke Sinkronizacije</target>
+
+<source>Comparison</source>
+<target>Usporedba</target>
+
+<source>Synchronization</source>
+<target>Sinkronizacija</target>
+
<source>Today</source>
<target>Danas</target>
@@ -1547,11 +1587,11 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Append a time stamp to each file name</source>
<target>Dodijeli vremensku oznaku za svaki naziv datoteke</target>
-<source>Comparison</source>
-<target>Usporedba</target>
+<source>Main config</source>
+<target>Glavne postavke</target>
-<source>Synchronization</source>
-<target>Sinkronizacija</target>
+<source>empty</source>
+<target>prazno</target>
<source>Leave as unresolved conflict</source>
<target>Ostavi kao neriješeni konflikt</target>
@@ -1571,6 +1611,27 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Percentage</source>
<target>Postotak</target>
+<source>Internet access failed.</source>
+<target>Mrežna veza nije dostupna.</target>
+
+<source>Check for Program Updates</source>
+<target>Provjeri za nadogradnje programa</target>
+
+<source>Download now?</source>
+<target>Preuzeti sada?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync je ažuran.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Nije moguće povezivanje s www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Ne mogu pronaći trenutnu verziju FreeFileSync-a online. Da li želite ručno potražiti?</target>
+
+<source>&Check</source>
+<target>&Provjeri</target>
+
<source>Unable to register to receive system messages.</source>
<target>Nije moguće registriranje za primanje sistemskih poruka.</target>
@@ -1598,6 +1659,9 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>Cannot copy permissions from %x to %y.</source>
<target>Nije moguće kopiranje dozvola za %x prema %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x nije ispravan naziv mape.</target>
+
<source>Cannot find system function %x.</source>
<target>Ne mogu pronaći sistemsku funkciju %x.</target>
@@ -1727,9 +1791,15 @@ Ovo garantira čvrsto stanje čak u slučaju ozbiljne greške.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync sinkronizacijska baza podataka</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync postavke</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync postavke</target>
<source>Edit with FreeFileSync</source>
<target>Uredi pomoću FreeFileSynca</target>
+<source>Thanks for your donation and support!</source>
+<target>Hvala na donaciji i podršci!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Ovaj FreeFileSync instalacijski paket za donatore je prekoračio broj instalacija. Preuzeti normalnu verziju s FreeFileSync stranice sada?</target>
+
diff --git a/FreeFileSync/Build/Languages/czech.lng b/FreeFileSync/Build/Languages/czech.lng
index 820acad3..85cb2f62 100644
--- a/FreeFileSync/Build/Languages/czech.lng
+++ b/FreeFileSync/Build/Languages/czech.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Nastaven výchozí způsob synchronizace: Staré soubory budou nahrazeny novými.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Kontrola Koše na složku %x ...</target>
+<source>Creating folder %x</source>
+<target>Vytváření adresáře %x</target>
+
+<source>Creating file %x</source>
+<target>Vytváření souboru %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Vytváření symbolického odkazu %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Přesouvání souboru %x do Koše</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Mazání symbolického odkazu %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Kontrola Koše na složku %x ...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Nelze použít Koš pro následující složky. Soubory tak budou odstraněny permanentně:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Nelze najít soubor %x.</target>
+<source>Error</source>
+<target>Chyba</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Soubor %x neobsahuje platnou konfiguraci.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nelze najít následující složky:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Tuto chybu můžete přeskočit a považovat neexistující složku za prázdnou. Složka pak bude vytvořena při synchronizaci automaticky.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Pokud přeskočíte tuto chybu, složka bude považována za prázdnou. Chybějící složky pak budou automaticky vytvořeny.</target>
<source>A folder input field is empty.</source>
<target>Není zadána vstupní složka.</target>
@@ -246,9 +258,6 @@ Aktuálně: %y b
<source>Cannot find device %x.</source>
<target>Nelze nalézt zařízení %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Nelze zjistit volné místo na disku %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Nelze vytvořit adresář %x.</target>
@@ -267,12 +276,15 @@ Aktuálně: %y b
<source>Cannot resolve symbolic link %x.</source>
<target>Nelze najít odkaz zástupce %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Není možné přesunout %x do Koše.</target>
-
<source>Cannot open directory %x.</source>
<target>Nelze otevřít adresář %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Nelze zjistit volné místo na disku %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Není možné přesunout %x do Koše.</target>
+
<source>Incorrect command line:</source>
<target>Neplatný příkaz:</target>
@@ -347,9 +359,6 @@ Aktuálně: %y b
<source>Detecting abandoned lock...</source>
<target>Prověřování uzamčení...</target>
-<source>Creating file %x</source>
-<target>Vytváření souboru %x</target>
-
<source>Saving file %x...</source>
<target>Ukládání souboru %x...</target>
@@ -368,9 +377,6 @@ Aktuálně: %y b
<source>Cannot set directory lock for %x.</source>
<target>Nelze nastavit zámek adresáře %x.</target>
-<source>Scanning:</source>
-<target>Zpracováváno:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -381,6 +387,9 @@ Aktuálně: %y b
<pluralform>%x procesů</pluralform>
</target>
+<source>Scanning:</source>
+<target>Zpracováváno:</target>
+
<source>/sec</source>
<target>/s</target>
@@ -491,8 +500,8 @@ Příkaz je spuštěn když:
- je zjištěna nová složka (např. vložením USB disku)
</target>
-<source>&Start</source>
-<target>&Start</target>
+<source>Start</source>
+<target>Start</target>
<source>About</source>
<target>O programu</target>
@@ -506,15 +515,15 @@ Příkaz je spuštěn když:
<source>Automated Synchronization</source>
<target>Automatická synchronizace</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Následující cesta nepodporuje sledování adresářů:</target>
+
<source>Directory monitoring active</source>
<target>Sledování adresářů je aktivní</target>
<source>Waiting until all directories are available...</source>
<target>Čekání na nedostupné adresáře...</target>
-<source>Error</source>
-<target>Chyba</target>
-
<source>&Restore</source>
<target>&Obnovit</target>
@@ -527,11 +536,14 @@ Příkaz je spuštěn když:
<source>&Retry</source>
<target>&Opakovat</target>
+<source>File time and size</source>
+<target>Podle velikosti a data souboru</target>
+
<source>File content</source>
<target>Podle obsahu souboru</target>
-<source>File time and size</source>
-<target>Podle velikosti a data souboru</target>
+<source>File size</source>
+<target>Podle velikosti souboru</target>
<source>Two way</source>
<target>Databáze</target>
@@ -560,12 +572,6 @@ Příkaz je spuštěn když:
<source>Removing old versions...</source>
<target>Odstraňování starých verzí...</target>
-<source>Creating symbolic link %x</source>
-<target>Vytváření symbolického odkazu %x</target>
-
-<source>Creating folder %x</source>
-<target>Vytváření adresáře %x</target>
-
<source>Updating file %x</source>
<target>Aktualizace souboru %x</target>
@@ -684,30 +690,6 @@ Příkaz je spuštěn když:
<source>Serious Error</source>
<target>Závažná chyba</target>
-<source>Check for Program Updates</source>
-<target>Hledání aktualizací programu</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Je dostupná novější verze FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>Stáhnout nyní?</target>
-
-<source>&Download</source>
-<target>&Stahování</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync je aktuální.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Není možné se připojit k www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Současná verze FreeFileSync nebyla nalezena online! Chcete verzi zkontrolovat ručně?</target>
-
-<source>&Check</source>
-<target>&Kontrola</target>
-
<source>Symlink</source>
<target>Symlink</target>
@@ -768,11 +750,20 @@ Příkaz je spuštěn když:
<source>Paste</source>
<target>Vložit</target>
-<source>Local Synchronization Settings</source>
-<target>Nastavení porovnání</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Vybranou složku %x nelze použít pro FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Prosím vyberte složku na místním souborovém systému, síti nebo multimediální zařízení.</target>
+
+<source>SFTP folder</source>
+<target>SFTP složka</target>
+
+<source>Select SFTP folder</source>
+<target>Vyberte SFTP složku</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Vybranou složku %x nelze použít pro FreeFileSync. Prosím vyberte složku na místním souborovém systému, síti nebo multimediální zařízení.</target>
+<source>Select alternative folder type</source>
+<target>Vyberte typ složky</target>
<source>&New</source>
<target>&Nový</target>
@@ -801,8 +792,8 @@ Příkaz je spuštěn když:
<source>&Actions</source>
<target>&Akce</target>
-<source>&Options</source>
-<target>Nastavení &programu</target>
+<source>&Preferences</source>
+<target>&Předvolby...</target>
<source>&Language</source>
<target>&Jazyk</target>
@@ -843,9 +834,6 @@ Příkaz je spuštěn když:
<source>Remove folder pair</source>
<target>Odstranit dvojici adresářů</target>
-<source>Select SFTP folder</source>
-<target>Vyberte SFTP složku</target>
-
<source>Swap sides</source>
<target>Změna stran</target>
@@ -891,27 +879,15 @@ Příkaz je spuštěn když:
<source>Total bytes to copy</source>
<target>Celkový objem dat</target>
+<source>Folder pair:</source>
+<target>Dvojice složek:</target>
+
<source>Use local settings:</source>
<target>Použít nastavení:</target>
<source>Select a variant:</source>
<target>Výběr varianty:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Rozpoznat shodné soubory porovnáním jejich data změny a velikosti.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Rozpoznat shodné soubory porovnáním jejich obsahu.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignorovat časový posun (v hodinách)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Považovat časy souborů s daným posunem jako stejné</target>
-
-<source>Handle daylight saving time</source>
-<target>Používat letní čas</target>
-
<source>Include &symbolic links:</source>
<target>&Symbolické odkazy:</target>
@@ -924,6 +900,18 @@ Příkaz je spuštěn když:
<source>More information</source>
<target>Více informací</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignorovat časový posun [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Seznam ignorovaných časových posunů souborů</target>
+
+<source>Example:</source>
+<target>Příklad:</target>
+
+<source>Handle daylight saving time</source>
+<target>Používat letní čas</target>
+
<source>Local settings:</source>
<target>Nastavení:</target>
@@ -1013,14 +1001,17 @@ Příkaz je spuštěn když:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Uspořádat složky</target>
+
<source>Enter your SFTP login details:</source>
<target>Zadejte přihlašovací údaje k SFTP:</target>
<source>Server name or IP address:</source>
<target>Jméno sevru nebo jeho IP adresa:</target>
-<source>Examples:</source>
-<target>Například:</target>
+<source>Port:</source>
+<target>Port:</target>
<source>User name:</source>
<target>Uživatelské jméno:</target>
@@ -1034,6 +1025,12 @@ Příkaz je spuštěn když:
<source>Directory on server:</source>
<target>Adresář na servru:</target>
+<source>Select a directory on the server:</source>
+<target>Výběr adresáře na servru:</target>
+
+<source>Select Folder</source>
+<target>Výběr složky</target>
+
<source>Start synchronization now?</source>
<target>Začít synchronizovat nyní?</target>
@@ -1043,9 +1040,6 @@ Příkaz je spuštěn když:
<source>&Don't show this dialog again</source>
<target>Tento dialog již &nezobrazovat</target>
-<source>Arrange folder pair</source>
-<target>Uspořádat složky</target>
-
<source>Items found:</source>
<target>Nalezeno položek:</target>
@@ -1097,6 +1091,12 @@ Příkaz je spuštěn když:
<source>How can I schedule a batch job?</source>
<target>Jak nastavit spouštění dávky?</target>
+<source>&Keep relative paths</source>
+<target>&Zachovat relativní cesty</target>
+
+<source>&Overwrite existing files</source>
+<target>&Přepsat existující soubory</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Toto nastavení je platné pro všechny synchronizační úlohy.</target>
@@ -1184,14 +1184,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>Smazané položky</target>
+<source>Copy items</source>
+<target>Kopírované položky</target>
+
<source>Options</source>
<target>Nastavení programu</target>
<source>Select Time Span</source>
<target>Časové rozmezí</target>
-<source>&Preferences</source>
-<target>&Předvolby...</target>
+<source>&Options</source>
+<target>Nastavení &programu</target>
<source>Main Bar</source>
<target>Hlavní lišta</target>
@@ -1211,6 +1214,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>Přehled</target>
+<source>&Download</source>
+<target>&Stahování</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Je dostupná novější verze FreeFileSync:</target>
+
<source>Confirm</source>
<target>Potvrdit</target>
@@ -1275,8 +1284,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Vynechat dočasně</target>
-<source>Delete</source>
-<target>Smazat</target>
+<source>&Copy to...</source>
+<target>&Kopírovat do...</target>
+
+<source>&Delete</source>
+<target>&Smazat</target>
<source>Include all</source>
<target>Zahrnout vše</target>
@@ -1326,9 +1338,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>Odstranit položku ze seznamu</target>
-<source>Synchronization Settings</source>
-<target>Nastavení synchronizace</target>
-
<source>Clear filter</source>
<target>Vymazat filtr</target>
@@ -1416,27 +1425,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>Vypnout počítač</target>
+<source>Paused</source>
+<target>Pauza</target>
+
+<source>Initializing...</source>
+<target>Inicializace...</target>
+
<source>Scanning...</source>
<target>Zpracovávání...</target>
<source>Comparing content...</source>
<target>Porovnávání obsahu...</target>
+<source>Completed</source>
+<target>Hotovo</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Vybrat vše</target>
-<source>Paused</source>
-<target>Pauza</target>
-
-<source>Initializing...</source>
-<target>Inicializace...</target>
-
-<source>Completed</source>
-<target>Hotovo</target>
-
<source>&Continue</source>
<target>&Pokračovat</target>
@@ -1446,6 +1455,22 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Záznam zpracování</target>
+<source>Loading...</source>
+<target>Načítání...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Kopírovat následující položku do jiné složy?</pluralform>
+<pluralform>Kopírovat následující %x položky do jiné složkyr?</pluralform>
+<pluralform>Kopírovat následujících %x položek do jiné složkyr?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Prosím zadejte cílovou složku.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1469,9 +1494,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Opravdu chcete smazat následujících %x položek?</pluralform>
</target>
-<source>Preferences</source>
-<target>Předvolby</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Kopírovat DACL, SACL, Owner, Group</target>
@@ -1496,6 +1518,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&Zobrazit</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Rozpoznat shodné soubory porovnáním jejich data změny a velikosti.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Rozpoznat shodné soubory porovnáním jejich obsahu.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Rozpoznat stejné soubory porovnáním jejich velikosti.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Rozpoznat a provést změny na obou stranách. Odstraněné, přesunuté nebo přejmenované soubory a konflikty budou detekovány automaticky pomocí databáze.</target>
@@ -1508,6 +1539,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Nastavení vlastních pravidel synchronizace.</target>
+<source>Synchronization Settings</source>
+<target>Nastavení synchronizace</target>
+
+<source>Comparison</source>
+<target>Porovnání</target>
+
+<source>Synchronization</source>
+<target>Synchronizace</target>
+
<source>Today</source>
<target>Dnes</target>
@@ -1544,11 +1584,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Přidat časovou značku ke jménu souboru</target>
-<source>Comparison</source>
-<target>Porovnání</target>
+<source>Main config</source>
+<target>Hlavní nastavení</target>
-<source>Synchronization</source>
-<target>Synchronizace</target>
+<source>empty</source>
+<target>nezadáno</target>
<source>Leave as unresolved conflict</source>
<target>Ponechat jako nevyřešený konflikt</target>
@@ -1568,6 +1608,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>Procentní podíl</target>
+<source>Internet access failed.</source>
+<target>Není přístup k internetu.</target>
+
+<source>Check for Program Updates</source>
+<target>Hledání aktualizací programu</target>
+
+<source>Download now?</source>
+<target>Stáhnout nyní?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync je aktuální.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Není možné se připojit k www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Současná verze FreeFileSync nebyla nalezena online! Chcete verzi zkontrolovat ručně?</target>
+
+<source>&Check</source>
+<target>&Kontrola</target>
+
<source>Unable to register to receive system messages.</source>
<target>Nepodařilo se zaregistrovat k odběru systémových zpráv.</target>
@@ -1595,6 +1656,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>Nelze kopírovat oprávnění z %x do %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x není platným názvem adresáře.</target>
+
<source>Cannot find system function %x.</source>
<target>Nelze najít systémovou funkci %x.</target>
@@ -1724,9 +1788,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>Synchronizační databáze FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Nastavení RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Nastavení RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Upravit v FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Děkuji za Vaše příspěvky a podporu!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Tento instalátor pro přispěvovatele FreeFileSync dosáhl maximální počet instalací. Stáhnout verzi FreeFiileSync z domovské stránky?</target>
+
diff --git a/FreeFileSync/Build/Languages/danish.lng b/FreeFileSync/Build/Languages/danish.lng
index 074e3ea7..4706b1ad 100644
--- a/FreeFileSync/Build/Languages/danish.lng
+++ b/FreeFileSync/Build/Languages/danish.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Sætter standardretning: Gamle filer overskrives med nyere.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Tjekker papirkurvs tilgængelighed for mappen %x...</target>
+<source>Creating folder %x</source>
+<target>Opretter mappen %x</target>
+
+<source>Creating file %x</source>
+<target>Opretter filen %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Opretter symlinket %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Flytter filen %x til papirkurv</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Sletter symlink %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Tjekker papirkurvs tilgængelighed for mappen %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Papirkurven kan ikke bruges til følgende mapper. Filerne slettes permanent:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Kan ikke finde filen %x.</target>
+<source>Error</source>
+<target>Fejl</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Filen %x indeholder ikke gyldige indstillinger.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Kan ikke finde følgende mapper:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Ignorer denne fejl for at betragte hver mappe som tom. Mapperne bliver så automatisk oprettet ved synkronisering.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ignorerer du denne fejl anses mappen som tom. Nødvendige mapper oprettes automatisk.</target>
<source>A folder input field is empty.</source>
<target>Der er ikke valgt nogen mapper.</target>
@@ -246,9 +258,6 @@ Aktuel: %y byte
<source>Cannot find device %x.</source>
<target>Kan ikke finde enheden %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Kan ikke definere ledig plads på %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Kan ikke oprette mappen %x.</target>
@@ -267,12 +276,15 @@ Aktuel: %y byte
<source>Cannot resolve symbolic link %x.</source>
<target>Kan ikke følge symlinket %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Kunne ikke flytte %x til papirkurv.</target>
-
<source>Cannot open directory %x.</source>
<target>Kan ikke åbne mappen %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Kan ikke definere ledig plads på %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Kunne ikke flytte %x til papirkurv.</target>
+
<source>Incorrect command line:</source>
<target>Ugyldig kommando:</target>
@@ -345,9 +357,6 @@ Aktuel: %y byte
<source>Detecting abandoned lock...</source>
<target>Finder efterladt lås...</target>
-<source>Creating file %x</source>
-<target>Opretter filen %x</target>
-
<source>Saving file %x...</source>
<target>Gemmer filen %x...</target>
@@ -366,9 +375,6 @@ Aktuel: %y byte
<source>Cannot set directory lock for %x.</source>
<target>Kan ikke låse mappen %x.</target>
-<source>Scanning:</source>
-<target>Skanner:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Aktuel: %y byte
<pluralform>%x tråde</pluralform>
</target>
+<source>Scanning:</source>
+<target>Skanner:</target>
+
<source>/sec</source>
<target>/sek</target>
@@ -488,8 +497,8 @@ Kommandoen udføres hvis:
- nye mapper findes (f.eks. USB nøgle)
</target>
-<source>&Start</source>
-<target>&Start</target>
+<source>Start</source>
+<target>Start</target>
<source>About</source>
<target>Om</target>
@@ -503,15 +512,15 @@ Kommandoen udføres hvis:
<source>Automated Synchronization</source>
<target>Automatisk synkronisering</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Følgende placering understøtter ikke mappeovervågning:</target>
+
<source>Directory monitoring active</source>
<target>Mappeovervågning aktiv</target>
<source>Waiting until all directories are available...</source>
<target>Venter til alle mapper er tilgængelige...</target>
-<source>Error</source>
-<target>Fejl</target>
-
<source>&Restore</source>
<target>&Vis vindue</target>
@@ -524,11 +533,14 @@ Kommandoen udføres hvis:
<source>&Retry</source>
<target>&Prøv igen</target>
+<source>File time and size</source>
+<target>Størrelse og tid</target>
+
<source>File content</source>
<target>Indhold</target>
-<source>File time and size</source>
-<target>Størrelse og tid</target>
+<source>File size</source>
+<target>Størrelse</target>
<source>Two way</source>
<target>Tovejs</target>
@@ -557,12 +569,6 @@ Kommandoen udføres hvis:
<source>Removing old versions...</source>
<target>Fjerner gamle udgaver...</target>
-<source>Creating symbolic link %x</source>
-<target>Opretter symlinket %x</target>
-
-<source>Creating folder %x</source>
-<target>Opretter mappen %x</target>
-
<source>Updating file %x</source>
<target>Opdaterer filen %x</target>
@@ -680,30 +686,6 @@ Kommandoen udføres hvis:
<source>Serious Error</source>
<target>Kritisk fejl</target>
-<source>Check for Program Updates</source>
-<target>Søg efter opdatering</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Opdatering tilgængelig:</target>
-
-<source>Download now?</source>
-<target>Download nu?</target>
-
-<source>&Download</source>
-<target>&Download</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync er opdateret.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Kan ikke kontakte www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Kunne ikke finde FreeFileSync's versionsnummer online. Vil du kontrollere manuelt?</target>
-
-<source>&Check</source>
-<target>&Kontroller</target>
-
<source>Symlink</source>
<target>Symlink</target>
@@ -764,11 +746,20 @@ Kommandoen udføres hvis:
<source>Paste</source>
<target>Indsæt</target>
-<source>Local Synchronization Settings</source>
-<target>Lokale synkindstillinger</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Mappen %x kan ikke bruges med FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Vælg lokal mappe, netværksmappe eller mappe på MTP enhed.</target>
+
+<source>SFTP folder</source>
+<target>SFTP mappe</target>
+
+<source>Select SFTP folder</source>
+<target>Vælg SFTP mappe</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Mappen %x kan ikke bruges i FreeFileSync. Vælg en mappe på computeren, netværket eller en MTP enhed.</target>
+<source>Select alternative folder type</source>
+<target>Vælg alternativ mappetype</target>
<source>&New</source>
<target>&Ny</target>
@@ -797,7 +788,7 @@ Kommandoen udføres hvis:
<source>&Actions</source>
<target>&Handlinger</target>
-<source>&Options</source>
+<source>&Preferences</source>
<target>&Indstillinger</target>
<source>&Language</source>
@@ -839,9 +830,6 @@ Kommandoen udføres hvis:
<source>Remove folder pair</source>
<target>Fjern mappepar</target>
-<source>Select SFTP folder</source>
-<target>Vælg SFTP mappe</target>
-
<source>Swap sides</source>
<target>Byt side</target>
@@ -887,27 +875,15 @@ Kommandoen udføres hvis:
<source>Total bytes to copy</source>
<target>Antal bytes der kopieres</target>
+<source>Folder pair:</source>
+<target>Mappepar:</target>
+
<source>Use local settings:</source>
<target>Brug lokale indstillinger:</target>
<source>Select a variant:</source>
<target>Vælg metode:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Genkend ens filer efter filtid og størrelse.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Genkend ens filer efter indhold.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignorer tidsskift (timer)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Betragt filer med defineret tidsskift som uændrede</target>
-
-<source>Handle daylight saving time</source>
-<target>Tag hensyn til sommertid</target>
-
<source>Include &symbolic links:</source>
<target>Medtag &symbolske link:</target>
@@ -920,6 +896,18 @@ Kommandoen udføres hvis:
<source>More information</source>
<target>Mere information</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignorer tidsændring [tt:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Tidsændringer der ignoreres</target>
+
+<source>Example:</source>
+<target>Eksempel:</target>
+
+<source>Handle daylight saving time</source>
+<target>Tag hensyn til sommertid</target>
+
<source>Local settings:</source>
<target>Lokale indstillinger:</target>
@@ -1009,14 +997,17 @@ Kommandoen udføres hvis:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Arrangér mappepar</target>
+
<source>Enter your SFTP login details:</source>
<target>Angiv SFTP detaljer:</target>
<source>Server name or IP address:</source>
<target>Servernavn eller IP adresse:</target>
-<source>Examples:</source>
-<target>F.eks:</target>
+<source>Port:</source>
+<target>Port:</target>
<source>User name:</source>
<target>Brugernavn:</target>
@@ -1030,6 +1021,12 @@ Kommandoen udføres hvis:
<source>Directory on server:</source>
<target>Servermappe:</target>
+<source>Select a directory on the server:</source>
+<target>Vælg servermappe:</target>
+
+<source>Select Folder</source>
+<target>Vælg mappe</target>
+
<source>Start synchronization now?</source>
<target>Synkroniser nu?</target>
@@ -1039,9 +1036,6 @@ Kommandoen udføres hvis:
<source>&Don't show this dialog again</source>
<target>&Vis ikke igen</target>
-<source>Arrange folder pair</source>
-<target>Arrangér mappepar</target>
-
<source>Items found:</source>
<target>Emner fundet:</target>
@@ -1093,6 +1087,12 @@ Kommandoen udføres hvis:
<source>How can I schedule a batch job?</source>
<target>Hvordan oprettes en batchfil?</target>
+<source>&Keep relative paths</source>
+<target>&Bevar relative stier</target>
+
+<source>&Overwrite existing files</source>
+<target>&Overskriv eksisterende filer</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Disse indstillinger gælder alle synkroniseringer.</target>
@@ -1183,13 +1183,16 @@ Sikrer processen ved alvorlige fejl.
<source>Delete Items</source>
<target>Slet emner</target>
+<source>Copy items</source>
+<target>Kopier emner</target>
+
<source>Options</source>
<target>Indstillinger</target>
<source>Select Time Span</source>
<target>Vælg tidsinterval</target>
-<source>&Preferences</source>
+<source>&Options</source>
<target>&Indstillinger</target>
<source>Main Bar</source>
@@ -1210,6 +1213,12 @@ Sikrer processen ved alvorlige fejl.
<source>Overview</source>
<target>Oversigt</target>
+<source>&Download</source>
+<target>&Download</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Opdatering tilgængelig:</target>
+
<source>Confirm</source>
<target>Bekræft</target>
@@ -1270,8 +1279,11 @@ Sikrer processen ved alvorlige fejl.
<source>Exclude temporarily</source>
<target>Ekskluder midlertidigt</target>
-<source>Delete</source>
-<target>Slet</target>
+<source>&Copy to...</source>
+<target>&Kopier til...</target>
+
+<source>&Delete</source>
+<target>&Slet</target>
<source>Include all</source>
<target>Vælg alle</target>
@@ -1321,9 +1333,6 @@ Sikrer processen ved alvorlige fejl.
<source>Remove entry from list</source>
<target>Fjern fra liste</target>
-<source>Synchronization Settings</source>
-<target>Synkroniseringsindstillinger</target>
-
<source>Clear filter</source>
<target>Ryd filter</target>
@@ -1411,27 +1420,27 @@ Sikrer processen ved alvorlige fejl.
<source>Shut down</source>
<target>Luk ned</target>
+<source>Paused</source>
+<target>Pauset</target>
+
+<source>Initializing...</source>
+<target>Forbereder...</target>
+
<source>Scanning...</source>
<target>Skanner...</target>
<source>Comparing content...</source>
<target>Analyserer indhold...</target>
+<source>Completed</source>
+<target>Gennemført</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Vælg alt</target>
-<source>Paused</source>
-<target>Pauset</target>
-
-<source>Initializing...</source>
-<target>Forbereder...</target>
-
-<source>Completed</source>
-<target>Gennemført</target>
-
<source>&Continue</source>
<target>&Fortsæt</target>
@@ -1441,6 +1450,21 @@ Sikrer processen ved alvorlige fejl.
<source>Log</source>
<target>Log</target>
+<source>Loading...</source>
+<target>Indlæser...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Vil du kopiere emnet til en anden mappe?</pluralform>
+<pluralform>Vil du kopiere %x emner til en anden mappe?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Angiv destinationsmappe.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Sikrer processen ved alvorlige fejl.
<pluralform>Vil du slette følgende %x emner?</pluralform>
</target>
-<source>Preferences</source>
-<target>Indstillinger</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Kopiér DACL, SACL, ejer, gruppe</target>
@@ -1489,6 +1510,15 @@ Sikrer processen ved alvorlige fejl.
<source>&Show</source>
<target>&Vis</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Genkend ens filer efter filtid og størrelse.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Genkend ens filer efter indhold.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Genkend ens filer ved at sammenligne filstørrelsen.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Find og udbred ændringer på begge sider. Sletninger, omdøbninger og konflikter findes automatisk i en database.</target>
@@ -1501,6 +1531,15 @@ Sikrer processen ved alvorlige fejl.
<source>Configure your own synchronization rules.</source>
<target>Opret dine egne synkroniseringsregler.</target>
+<source>Synchronization Settings</source>
+<target>Synkroniseringsindstillinger</target>
+
+<source>Comparison</source>
+<target>Analyse</target>
+
+<source>Synchronization</source>
+<target>Synkronisering</target>
+
<source>Today</source>
<target>Idag</target>
@@ -1537,11 +1576,11 @@ Sikrer processen ved alvorlige fejl.
<source>Append a time stamp to each file name</source>
<target>Føj tidsstempel til hvert filnavn</target>
-<source>Comparison</source>
-<target>Analyse</target>
+<source>Main config</source>
+<target>Hovedindstilling</target>
-<source>Synchronization</source>
-<target>Synkronisering</target>
+<source>empty</source>
+<target>tom</target>
<source>Leave as unresolved conflict</source>
<target>Efterlad som uløst konflikt</target>
@@ -1561,6 +1600,27 @@ Sikrer processen ved alvorlige fejl.
<source>Percentage</source>
<target>Procent</target>
+<source>Internet access failed.</source>
+<target>Ingen internetadgang.</target>
+
+<source>Check for Program Updates</source>
+<target>Søg efter opdatering</target>
+
+<source>Download now?</source>
+<target>Download nu?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync er opdateret.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Kan ikke kontakte www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Kunne ikke finde FreeFileSync's versionsnummer online. Vil du kontrollere manuelt?</target>
+
+<source>&Check</source>
+<target>&Kontroller</target>
+
<source>Unable to register to receive system messages.</source>
<target>Kunne ikke registrere modtagelse af systembeskeder.</target>
@@ -1588,6 +1648,9 @@ Sikrer processen ved alvorlige fejl.
<source>Cannot copy permissions from %x to %y.</source>
<target>Kan ikke kopiere tilladelser fra %x til %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x er ikke et gyldigt mappenavn.</target>
+
<source>Cannot find system function %x.</source>
<target>Kan ikke finde systemfunktionen %x.</target>
@@ -1714,9 +1777,15 @@ Sikrer processen ved alvorlige fejl.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync synkroniseringsdatabase</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync indstillinger</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync indstillinger</target>
<source>Edit with FreeFileSync</source>
<target>Rediger med FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Tak for støtten!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Antal FreeFileSync for donorer er opbrugt. Vil du downloade den normale version nu?</target>
+
diff --git a/FreeFileSync/Build/Languages/dutch.lng b/FreeFileSync/Build/Languages/dutch.lng
index 3bfeab10..8ac84954 100644
--- a/FreeFileSync/Build/Languages/dutch.lng
+++ b/FreeFileSync/Build/Languages/dutch.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Standaardwaarden instellen voor synchronisatierichtingen: oude bestanden worden overschreven door nieuwere.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Controleer beschikbaarheid voor de prullenbak map %x...</target>
+<source>Creating folder %x</source>
+<target>Map %x maken</target>
+
+<source>Creating file %x</source>
+<target>Bestand %x maken</target>
+
+<source>Creating symbolic link %x</source>
+<target>Symbolische link %x maken</target>
<source>Moving file %x to the recycle bin</source>
<target>Verplaatsen van bestand %x naar de prullenbak</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Symbolische koppeling %x verwijderen</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Controleer beschikbaarheid voor de prullenbak map %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>De prullenbak is niet beschikbaar voor de volgende mappen. De bestanden worden permanent verwijderd:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Kan bestand %x niet vinden.</target>
+<source>Error</source>
+<target>Fout</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Het bestand %x bevat geen geldige configuratie.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>De volgende mappen konden niet worden gevonden:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Deze fout kan worden genegeerd, om de mappen als leeg te zien en de folders automatisch te creëren wanneer u synchroniseert.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Indien u deze fout negeert zullen de mappen als leeg beschouwd worden. Ontbrekende mappen worden indien nodig automatisch aangemaakt.</target>
<source>A folder input field is empty.</source>
<target>Invoerveld van een map is leeg.</target>
@@ -246,9 +258,6 @@ Werkelijk: %y bytes
<source>Cannot find device %x.</source>
<target>Kan apparaat %x niet vinden.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Kan de vrije schijfruimte voor %x niet bepalen.</target>
-
<source>Cannot create directory %x.</source>
<target>Kan de map %x niet maken.</target>
@@ -267,12 +276,15 @@ Werkelijk: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Kan de symbolische koppeling %x niet oplossen.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Niet in staat om %x naar de prullenbak te verplaatsen.</target>
-
<source>Cannot open directory %x.</source>
<target>Kan de folder %x niet openen.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Kan de vrije schijfruimte voor %x niet bepalen.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Niet in staat om %x naar de prullenbak te verplaatsen.</target>
+
<source>Incorrect command line:</source>
<target>Onjuiste opdrachtregel:</target>
@@ -345,9 +357,6 @@ Werkelijk: %y bytes
<source>Detecting abandoned lock...</source>
<target>Opsporen van verlaten vergrendeling...</target>
-<source>Creating file %x</source>
-<target>Bestand %x maken</target>
-
<source>Saving file %x...</source>
<target>Opslaan van bestand %x...</target>
@@ -366,9 +375,6 @@ Werkelijk: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>De mapvergrendeling voor %x kan niet ingesteld worden.</target>
-<source>Scanning:</source>
-<target>Scannen:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Werkelijk: %y bytes
<pluralform>%x Threads</pluralform>
</target>
+<source>Scanning:</source>
+<target>Scannen:</target>
+
<source>/sec</source>
<target>/sec</target>
@@ -488,8 +497,8 @@ De opdracht wordt geactiveerd als:
- nieuwe mappen verschijnen (b.v. USB-stick wordt geplaatst)
</target>
-<source>&Start</source>
-<target>&Start</target>
+<source>Start</source>
+<target>Start</target>
<source>About</source>
<target>Over</target>
@@ -503,15 +512,15 @@ De opdracht wordt geactiveerd als:
<source>Automated Synchronization</source>
<target>Automatische synchronisatie</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Het volgende pad ondersteunt geen map bewaking:</target>
+
<source>Directory monitoring active</source>
<target>Directory controle actief</target>
<source>Waiting until all directories are available...</source>
<target>Wacht totdat alle directories beschikbaar zijn...</target>
-<source>Error</source>
-<target>Fout</target>
-
<source>&Restore</source>
<target>&Herstellen</target>
@@ -524,11 +533,14 @@ De opdracht wordt geactiveerd als:
<source>&Retry</source>
<target>&Probeer opnieuw</target>
+<source>File time and size</source>
+<target>Datum en grootte bestand</target>
+
<source>File content</source>
<target>Bestandsinhoud</target>
-<source>File time and size</source>
-<target>Datum en grootte bestand</target>
+<source>File size</source>
+<target>Bestandsgrootte</target>
<source>Two way</source>
<target>Twee richtingen</target>
@@ -557,12 +569,6 @@ De opdracht wordt geactiveerd als:
<source>Removing old versions...</source>
<target>Verwijderen van oude versies...</target>
-<source>Creating symbolic link %x</source>
-<target>Symbolische link %x maken</target>
-
-<source>Creating folder %x</source>
-<target>Map %x maken</target>
-
<source>Updating file %x</source>
<target>File %x bijwerken</target>
@@ -680,30 +686,6 @@ De opdracht wordt geactiveerd als:
<source>Serious Error</source>
<target>Ernstige fout</target>
-<source>Check for Program Updates</source>
-<target>Controleer voor programma-updates</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Er is een nieuwe versie van FreeFileSync beschikbaar:</target>
-
-<source>Download now?</source>
-<target>Nu downloaden?</target>
-
-<source>&Download</source>
-<target>&Downloaden</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync is actueel.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Kan geen verbinding maken met www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Kan online niet het actuele FreeFileSync versienummer vinden. Wilt u handmatig controleren?</target>
-
-<source>&Check</source>
-<target>&Controleren</target>
-
<source>Symlink</source>
<target>Symlink</target>
@@ -764,11 +746,20 @@ De opdracht wordt geactiveerd als:
<source>Paste</source>
<target>Plakken</target>
-<source>Local Synchronization Settings</source>
-<target>Lokale synchronisatie-instellingen</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>De geselecteerde map %x kan niet worden gebruikt met FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Selecteer een map op een lokaal bestandssysteem, netwerk of een MTP-apparaat.</target>
+
+<source>SFTP folder</source>
+<target>SFTP map</target>
+
+<source>Select SFTP folder</source>
+<target>Selecteer SFTP map</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>De geselecteerde map %x kan niet worden gebruikt met FreeFileSync. Selecteer een map op een lokaal bestandssysteem, netwerk of een MTP-apparaat.</target>
+<source>Select alternative folder type</source>
+<target>Selecteer alternatieve map type</target>
<source>&New</source>
<target>&Nieuw</target>
@@ -797,8 +788,8 @@ De opdracht wordt geactiveerd als:
<source>&Actions</source>
<target>&Acties</target>
-<source>&Options</source>
-<target>&Opties</target>
+<source>&Preferences</source>
+<target>&Voorkeuren</target>
<source>&Language</source>
<target>&Taal</target>
@@ -839,9 +830,6 @@ De opdracht wordt geactiveerd als:
<source>Remove folder pair</source>
<target>Verwijder map-paar</target>
-<source>Select SFTP folder</source>
-<target>Selecteer SFTP map</target>
-
<source>Swap sides</source>
<target>Verwisselen van zijden</target>
@@ -887,27 +875,15 @@ De opdracht wordt geactiveerd als:
<source>Total bytes to copy</source>
<target>Totaal aantal te kopieëren bytes</target>
+<source>Folder pair:</source>
+<target>Mappaar:</target>
+
<source>Use local settings:</source>
<target>Gebruik lokale instellingen:</target>
<source>Select a variant:</source>
<target>Selecteer een variant:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Identificeer gelijke bestanden door het vergelijken van wijzigingen in tijd en grootte.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Identificeer gelijke bestanden door het vergelijken van de bestandsinhoud.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Negeer tijdsverschuiving (in uren)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Overweeg bestand-tijden met gespecificeerde verspringing als gelijkwaardig te beschouwen</target>
-
-<source>Handle daylight saving time</source>
-<target>Zomertijd gebruiken</target>
-
<source>Include &symbolic links:</source>
<target>Inclusief &symbolische links:</target>
@@ -920,6 +896,18 @@ De opdracht wordt geactiveerd als:
<source>More information</source>
<target>Meer informatie</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Negeer tijdsverschuiving [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Lijst van bestandstijdverschuivingen om te negeren</target>
+
+<source>Example:</source>
+<target>Voorbeeld:</target>
+
+<source>Handle daylight saving time</source>
+<target>Zomertijd gebruiken</target>
+
<source>Local settings:</source>
<target>Lokale instellingen:</target>
@@ -1009,14 +997,17 @@ De opdracht wordt geactiveerd als:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Rangschik folder-paar</target>
+
<source>Enter your SFTP login details:</source>
<target>Vul uw SFTP login gegevens in:</target>
<source>Server name or IP address:</source>
<target>Servernaam of IP-adres:</target>
-<source>Examples:</source>
-<target>Voorbeelden:</target>
+<source>Port:</source>
+<target>Poort:</target>
<source>User name:</source>
<target>Gebruikersnaam:</target>
@@ -1030,6 +1021,12 @@ De opdracht wordt geactiveerd als:
<source>Directory on server:</source>
<target>Map op de server:</target>
+<source>Select a directory on the server:</source>
+<target>Selecteer een map op de server:</target>
+
+<source>Select Folder</source>
+<target>Selecteer map</target>
+
<source>Start synchronization now?</source>
<target>Synchronisatie nu starten?</target>
@@ -1039,9 +1036,6 @@ De opdracht wordt geactiveerd als:
<source>&Don't show this dialog again</source>
<target>&Dit dialoogvenster niet opnieuw weergeven</target>
-<source>Arrange folder pair</source>
-<target>Rangschik folder-paar</target>
-
<source>Items found:</source>
<target>Gevonden objecten:</target>
@@ -1093,6 +1087,12 @@ De opdracht wordt geactiveerd als:
<source>How can I schedule a batch job?</source>
<target>Hoe kan ik een batchverwerking plannen?</target>
+<source>&Keep relative paths</source>
+<target>&Houd relatieve paden</target>
+
+<source>&Overwrite existing files</source>
+<target>&Overschrijf bestaande bestanden</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>De volgende instellingen worden gebruikt voor alle synchronisatie opdrachten.</target>
@@ -1183,14 +1183,17 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Delete Items</source>
<target>Items verwijderen</target>
+<source>Copy items</source>
+<target>Kopieer items</target>
+
<source>Options</source>
<target>Opties</target>
<source>Select Time Span</source>
<target>Selecteer tijdsduur</target>
-<source>&Preferences</source>
-<target>&Voorkeuren</target>
+<source>&Options</source>
+<target>&Opties</target>
<source>Main Bar</source>
<target>Hoofd balk</target>
@@ -1210,6 +1213,12 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Overview</source>
<target>Overzicht</target>
+<source>&Download</source>
+<target>&Downloaden</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Er is een nieuwe versie van FreeFileSync beschikbaar:</target>
+
<source>Confirm</source>
<target>Bevestigen</target>
@@ -1270,8 +1279,11 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Exclude temporarily</source>
<target>Tijdelijk uitsluiten</target>
-<source>Delete</source>
-<target>Verwijderen</target>
+<source>&Copy to...</source>
+<target>&Kopiëren naar...</target>
+
+<source>&Delete</source>
+<target>&Verwijderen</target>
<source>Include all</source>
<target>Omvat alle</target>
@@ -1321,9 +1333,6 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Remove entry from list</source>
<target>Vermelding verwijderen uit de lijst</target>
-<source>Synchronization Settings</source>
-<target>Synchronisatie-instellingen</target>
-
<source>Clear filter</source>
<target>Filter wissen</target>
@@ -1411,27 +1420,27 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Shut down</source>
<target>Afsluiten</target>
+<source>Paused</source>
+<target>Onderbroken</target>
+
+<source>Initializing...</source>
+<target>Initialiseren...</target>
+
<source>Scanning...</source>
<target>Scannen...</target>
<source>Comparing content...</source>
<target>Inhoud vergelijken...</target>
+<source>Completed</source>
+<target>Voltooid</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Alles selecteren</target>
-<source>Paused</source>
-<target>Onderbroken</target>
-
-<source>Initializing...</source>
-<target>Initialiseren...</target>
-
-<source>Completed</source>
-<target>Voltooid</target>
-
<source>&Continue</source>
<target>&Doorgaan</target>
@@ -1441,6 +1450,21 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Log</source>
<target>Logboek</target>
+<source>Loading...</source>
+<target>Laden...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Kopieer het volgende item naar een andere map?</pluralform>
+<pluralform>Kopieer de volgende %x items naar een andere map?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Selecteer een doelmap.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<pluralform>Wilt u de volgende %x items echt verwijderen?</pluralform>
</target>
-<source>Preferences</source>
-<target>Voorkeuren</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Kopiëren DACL, SACL, Eigenaar, Groep</target>
@@ -1489,6 +1510,15 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>&Show</source>
<target>&Toon</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Identificeer gelijke bestanden door het vergelijken van wijzigingen in tijd en grootte.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Identificeer gelijke bestanden door het vergelijken van de bestandsinhoud.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identificeer gelijke bestanden door de bestandsgrootte te vergelijken.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identificeren en doorgeven van veranderingen aan beide kanten. Verwijderingen, verplaatsingen en conflicten worden automatisch gedetecteerd met behulp van een database.</target>
@@ -1501,6 +1531,15 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Configure your own synchronization rules.</source>
<target>Configureer uw eigen synchronisatie regels.</target>
+<source>Synchronization Settings</source>
+<target>Synchronisatie-instellingen</target>
+
+<source>Comparison</source>
+<target>Vergelijking</target>
+
+<source>Synchronization</source>
+<target>Synchronisatie</target>
+
<source>Today</source>
<target>Vandaag</target>
@@ -1537,11 +1576,11 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Append a time stamp to each file name</source>
<target>Aan elke bestandsnaam een tijdstempel toevoegen</target>
-<source>Comparison</source>
-<target>Vergelijking</target>
+<source>Main config</source>
+<target>Hoofd configuratie</target>
-<source>Synchronization</source>
-<target>Synchronisatie</target>
+<source>empty</source>
+<target>leeg</target>
<source>Leave as unresolved conflict</source>
<target>Laten als onopgelost conflicht</target>
@@ -1561,6 +1600,27 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Percentage</source>
<target>Percentage</target>
+<source>Internet access failed.</source>
+<target>Internettoegang is mislukt.</target>
+
+<source>Check for Program Updates</source>
+<target>Controleer voor programma-updates</target>
+
+<source>Download now?</source>
+<target>Nu downloaden?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync is actueel.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Kan geen verbinding maken met www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Kan online niet het actuele FreeFileSync versienummer vinden. Wilt u handmatig controleren?</target>
+
+<source>&Check</source>
+<target>&Controleren</target>
+
<source>Unable to register to receive system messages.</source>
<target>Niet in staat om de ontvangen systeemberichten te registreren.</target>
@@ -1588,6 +1648,9 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Cannot copy permissions from %x to %y.</source>
<target>Kan de toegangsrechten van %x niet kopiëren naar %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x is niet een normale mapnaam.</target>
+
<source>Cannot find system function %x.</source>
<target>Kan de systeemfunctie %x niet vinden.</target>
@@ -1714,9 +1777,15 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync synchronisatie database</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync configuratie</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync configuratie</target>
<source>Edit with FreeFileSync</source>
<target>Bewerken met FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Bedankt voor uw donatie en ondersteuning!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Dit FreeFileSync installatieprogramma voor donateurs heeft zijn installatielimiet bereikt. Download de reguliere versie van de FreeFileSync startpagina nu?</target>
+
diff --git a/FreeFileSync/Build/Languages/english_uk.lng b/FreeFileSync/Build/Languages/english_uk.lng
index a866cc7c..a9156ef5 100644
--- a/FreeFileSync/Build/Languages/english_uk.lng
+++ b/FreeFileSync/Build/Languages/english_uk.lng
@@ -7,87 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
-<target></target>
-
-<source>Thanks for your donation and support!</source>
-<target></target>
-
-<source>%x is not a regular directory name.</source>
-<target></target>
-
-<source>empty</source>
-<target></target>
-
-<source>Main config</source>
-<target></target>
-
-<source>Please enter a target folder.</source>
-<target></target>
-
-<source>
-<pluralform>Copy the following item to another folder?</pluralform>
-<pluralform>Copy the following %x items to another folder?</pluralform>
-</source>
-<target></target>
-
-<source>Loading...</source>
-<target></target>
-
-<source>Copy to...</source>
-<target></target>
-
-<source>Copy items</source>
-<target></target>
-
-<source>&Overwrite existing files</source>
-<target></target>
-
-<source>&Keep relative paths</source>
-<target></target>
-
-<source>Select Folder</source>
-<target></target>
-
-<source>Select a directory on the server:</source>
-<target></target>
-
-<source>Port:</source>
-<target></target>
-
-<source>Example:</source>
-<target></target>
-
-<source>List of file time offsets to consider equal</source>
-<target></target>
-
-<source>&Ignore time shift [hh:mm]</source>
-<target></target>
-
-<source>Folder pair:</source>
-<target></target>
-
-<source>Select alternative folder type</source>
-<target></target>
-
-<source>SFTP folder</source>
-<target></target>
-
-<source>Please select a folder on a local file system, network or an MTP device.</source>
-<target></target>
-
-<source>The selected folder %x cannot be used with FreeFileSync.</source>
-<target></target>
-
-<source>The following path does not support directory monitoring:</source>
-<target></target>
-
-<source>Start</source>
-<target></target>
-
-<source>If you ignore this error the folders are considered empty. Missing folders are created automatically when needed.</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Both sides have changed since last synchronisation.</target>
@@ -193,6 +112,9 @@
<source>Cannot find the following folders:</source>
<target>Cannot find the following folders:</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</target>
+
<source>A folder input field is empty.</source>
<target>A folder input field is empty.</target>
@@ -575,6 +497,9 @@ The command is triggered if:
- new folders arrive (e.g. USB stick insert)
</target>
+<source>Start</source>
+<target>Start</target>
+
<source>About</source>
<target>About</target>
@@ -587,6 +512,9 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>Automated Synchronisation</target>
+<source>The following path does not support directory monitoring:</source>
+<target>The following path does not support directory monitoring:</target>
+
<source>Directory monitoring active</source>
<target>Directory monitoring active</target>
@@ -605,11 +533,14 @@ The command is triggered if:
<source>&Retry</source>
<target>&Retry</target>
+<source>File time and size</source>
+<target>File time and size</target>
+
<source>File content</source>
<target>File content</target>
-<source>File time and size</source>
-<target>File time and size</target>
+<source>File size</source>
+<target>File size</target>
<source>Two way</source>
<target>Two way</target>
@@ -815,9 +746,21 @@ The command is triggered if:
<source>Paste</source>
<target>Paste</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>The selected folder %x cannot be used with FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Please select a folder on a local file system, network or an MTP device.</target>
+
+<source>SFTP folder</source>
+<target>SFTP folder</target>
+
<source>Select SFTP folder</source>
<target>Select SFTP folder</target>
+<source>Select alternative folder type</source>
+<target>Select alternative folder type</target>
+
<source>&New</source>
<target>&New</target>
@@ -932,18 +875,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>Total bytes to copy</target>
+<source>Folder pair:</source>
+<target>Folder pair:</target>
+
<source>Use local settings:</source>
<target>Use local settings:</target>
<source>Select a variant:</source>
<target>Select a variant:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Identify equal files by comparing modification time and size.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Identify equal files by comparing the file content.</target>
-
<source>Include &symbolic links:</source>
<target>Include &symbolic links:</target>
@@ -956,6 +896,15 @@ The command is triggered if:
<source>More information</source>
<target>More information</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignore time shift [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>List of file time offsets to ignore</target>
+
+<source>Example:</source>
+<target>Example:</target>
+
<source>Handle daylight saving time</source>
<target>Handle daylight saving time</target>
@@ -1057,6 +1006,9 @@ The command is triggered if:
<source>Server name or IP address:</source>
<target>Server name or IP address:</target>
+<source>Port:</source>
+<target>Port:</target>
+
<source>User name:</source>
<target>User name:</target>
@@ -1069,6 +1021,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>Directory on server:</target>
+<source>Select a directory on the server:</source>
+<target>Select a directory on the server:</target>
+
+<source>Select Folder</source>
+<target>Select Folder</target>
+
<source>Start synchronization now?</source>
<target>Start synchronisation now?</target>
@@ -1129,6 +1087,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>How can I schedule a batch job?</target>
+<source>&Keep relative paths</source>
+<target>&Keep relative paths</target>
+
+<source>&Overwrite existing files</source>
+<target>&Overwrite existing files</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>The following settings are used for all synchronisation jobs.</target>
@@ -1219,6 +1183,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>Delete Items</target>
+<source>Copy items</source>
+<target>Copy items</target>
+
<source>Options</source>
<target>Options</target>
@@ -1312,8 +1279,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Exclude temporarily</target>
-<source>Delete</source>
-<target>Delete</target>
+<source>&Copy to...</source>
+<target>&Copy to...</target>
+
+<source>&Delete</source>
+<target>&Delete</target>
<source>Include all</source>
<target>Include all</target>
@@ -1480,6 +1450,21 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Log</target>
+<source>Loading...</source>
+<target>Loading...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Please enter a target folder.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1525,6 +1510,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&Show</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Identify equal files by comparing modification time and size.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Identify equal files by comparing the file content.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identify equal files by comparing their file size.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</target>
@@ -1582,6 +1576,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Append a time stamp to each file name</target>
+<source>Main config</source>
+<target>Main config</target>
+
+<source>empty</source>
+<target>empty</target>
+
<source>Leave as unresolved conflict</source>
<target>Leave as unresolved conflict</target>
@@ -1600,6 +1600,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>Percentage</target>
+<source>Internet access failed.</source>
+<target>Internet access failed.</target>
+
<source>Check for Program Updates</source>
<target>Check for Program Updates</target>
@@ -1645,6 +1648,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>Cannot copy permissions from %x to %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x is not a regular directory name.</target>
+
<source>Cannot find system function %x.</source>
<target>Cannot find system function %x.</target>
@@ -1771,9 +1777,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync Synchronisation Database</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync Configuration</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync Configuration</target>
<source>Edit with FreeFileSync</source>
<target>Edit with FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Thanks for your donation and support!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</target>
+
diff --git a/FreeFileSync/Build/Languages/finnish.lng b/FreeFileSync/Build/Languages/finnish.lng
index 4069361b..808a6cc2 100644
--- a/FreeFileSync/Build/Languages/finnish.lng
+++ b/FreeFileSync/Build/Languages/finnish.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Asetetaan oletussuunta täsmäykselle: vanhat tiedostot korvataan uudemilla tiedostoilla.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Tarkistetaan hakemisto %x:n käyttöoikeus Roskakoriin ...</target>
+<source>Creating folder %x</source>
+<target>Luodaan hakemisto %x</target>
+
+<source>Creating file %x</source>
+<target>Luodaan tiedosto %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Luodaan pikakuvake %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Siirretään tiedosto %x Roskakoriin</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Pistetaan pikakuvake %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Tarkistetaan hakemisto %x:n käyttöoikeus Roskakoriin ...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Roskakori ei ole käytettävissä näiden hakemistojen osalta. Tiedostot poistetaan sen sijaan lopullisesti:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Tiedosto %x ei löydy.</target>
+<source>Error</source>
+<target>Virhe</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Tiedosto %x ei sisällä kelvollista kokoonpanoa.</target>
@@ -92,7 +104,7 @@
<target>Vapaa määrä FreeFileSync .ffs_gui ja/tai .ffs_batch määrittelytiedostoja.</target>
<source>Any number of alternative directory pairs for at most one config file.</source>
-<target>Vapaa määrä eri hakemistopareja yhdessä tietyssä määrittelyssä.</target>
+<target>Vapaa määrä eri hakemistopareja yhdelle tietylle määrittelylle.</target>
<source>Open configuration for editing without executing it.</source>
<target>Avaa määrittely muutoksia varten, sitä suorittamatta.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Seuraavia hakemistoja ei löydy:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Voit ohittaa virheen olettamalla hakemistot tyhjiksi. Nämä hakemistot luodaan automaattisesti täsmäyksen aikana.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ellet huomioi tätä virhettä hakemistot huomioidaan tyhjinä. Puuttuvat hakemistot luodaan tarvittaessa.</target>
<source>A folder input field is empty.</source>
<target>Hakemiston syötekenttä on tyhjä.</target>
@@ -246,9 +258,6 @@ Todellinen: %y tavua
<source>Cannot find device %x.</source>
<target>Laite %x ei löydy.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>%x:n vaapaan tilan määrittely ei onnistu.</target>
-
<source>Cannot create directory %x.</source>
<target>Hakemistoa %x ei voitu luoda.</target>
@@ -267,12 +276,15 @@ Todellinen: %y tavua
<source>Cannot resolve symbolic link %x.</source>
<target>Pikakuvike %x on virheellinen.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>%x:n siirto Roskakoriin epäonnistui.</target>
-
<source>Cannot open directory %x.</source>
<target>Hakemistoa %x ei voi avata.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>%x:n vaapaan tilan määrittely ei onnistu.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>%x:n siirto Roskakoriin epäonnistui.</target>
+
<source>Incorrect command line:</source>
<target>Virheellinen komento:</target>
@@ -345,9 +357,6 @@ Todellinen: %y tavua
<source>Detecting abandoned lock...</source>
<target>Hylätyn lukituksen etsintä...</target>
-<source>Creating file %x</source>
-<target>Luodaan tiedosto %x</target>
-
<source>Saving file %x...</source>
<target>Tallennetaan tiedostoa %x...</target>
@@ -366,9 +375,6 @@ Todellinen: %y tavua
<source>Cannot set directory lock for %x.</source>
<target>Hakemiston %x lukitus ei onnistu.</target>
-<source>Scanning:</source>
-<target>Skannaus:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Todellinen: %y tavua
<pluralform>%x säijettä</pluralform>
</target>
+<source>Scanning:</source>
+<target>Skannaus:</target>
+
<source>/sec</source>
<target>/s</target>
@@ -488,8 +497,8 @@ Käsky suoritetaan jos:
- uusi hakemisto ilmestyy (esim. muistitikku liitetään)
</target>
-<source>&Start</source>
-<target>&Käynnistä</target>
+<source>Start</source>
+<target>Aloita</target>
<source>About</source>
<target>Ohje</target>
@@ -503,15 +512,15 @@ Käsky suoritetaan jos:
<source>Automated Synchronization</source>
<target>Automaattinen täsmäys</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Polku ei tue hakemiston monitorointia:</target>
+
<source>Directory monitoring active</source>
<target>Hakemistovalvonta päällä</target>
<source>Waiting until all directories are available...</source>
<target>Odota kunnes kaikki hakemistot ovat saatavilla...</target>
-<source>Error</source>
-<target>Virhe</target>
-
<source>&Restore</source>
<target>&Palauta</target>
@@ -524,11 +533,14 @@ Käsky suoritetaan jos:
<source>&Retry</source>
<target>&Uudestaan</target>
+<source>File time and size</source>
+<target>Tiedoston aika ja koko</target>
+
<source>File content</source>
<target>Tiedoston sisältö</target>
-<source>File time and size</source>
-<target>Tiedoston aika ja koko</target>
+<source>File size</source>
+<target>Tiedostokoko</target>
<source>Two way</source>
<target>Kaksisuuntainen</target>
@@ -557,12 +569,6 @@ Käsky suoritetaan jos:
<source>Removing old versions...</source>
<target>Vanhat versiot poistetaan...</target>
-<source>Creating symbolic link %x</source>
-<target>Luodaan pikakuvake %x</target>
-
-<source>Creating folder %x</source>
-<target>Luodaan hakemisto %x</target>
-
<source>Updating file %x</source>
<target>Tiedostoa %x päivitetään</target>
@@ -680,30 +686,6 @@ Käsky suoritetaan jos:
<source>Serious Error</source>
<target>Vakava virhe</target>
-<source>Check for Program Updates</source>
-<target>Etsi ohjelmaan päivitystä</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>FreeFileSyncin uusi versio on saatavilla:</target>
-
-<source>Download now?</source>
-<target>Ladataanko nyt?</target>
-
-<source>&Download</source>
-<target>&Lataa</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync on ajan tasalla.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Ei yhteyttä www.freefilesync.org:iin.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Nykyistä FreeFileSyncin versiota ei löydy verkosta. Suoritetaanko manuaalinen haku?</target>
-
-<source>&Check</source>
-<target>&Tarkista</target>
-
<source>Symlink</source>
<target>Pikakuvake</target>
@@ -717,7 +699,7 @@ Käsky suoritetaan jos:
<target>Nimi</target>
<source>Relative folder</source>
-<target>Suhteellinen hakemisto</target>
+<target>Suhteellinen kansio</target>
<source>Base folder</source>
<target>Juurihakemisto</target>
@@ -764,11 +746,20 @@ Käsky suoritetaan jos:
<source>Paste</source>
<target>Liitä</target>
-<source>Local Synchronization Settings</source>
-<target>Täsmäytyksen paikalliset asetukset</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Kansio %x ei toimi FreeFileSync:n kanssa.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Valitse kansio joka on paikallinen, verkossa tai MTP laitteella.</target>
+
+<source>SFTP folder</source>
+<target>SFTP kansio</target>
+
+<source>Select SFTP folder</source>
+<target>Valitse SFTP hakemisto</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Valittu kansio %x ei ole yhteensopiva FreeFileSync:n kanssa. Valitse paikallinenhakemisto, verkko tai mobiili laitteen hakemisto.</target>
+<source>Select alternative folder type</source>
+<target>Valitse toinen hakemistotyyppi</target>
<source>&New</source>
<target>&Uusi</target>
@@ -786,7 +777,7 @@ Käsky suoritetaan jos:
<target>&Vertailu asetukset</target>
<source>&Filter settings</source>
-<target>&Suodattin asetukset</target>
+<target>&Suodin asetukset</target>
<source>S&ynchronization settings</source>
<target>&Täsmäytyksen asetukset</target>
@@ -797,8 +788,8 @@ Käsky suoritetaan jos:
<source>&Actions</source>
<target>&Toinnot</target>
-<source>&Options</source>
-<target>&Asetukset</target>
+<source>&Preferences</source>
+<target>&Ominaisuudet</target>
<source>&Language</source>
<target>&Kieli</target>
@@ -839,9 +830,6 @@ Käsky suoritetaan jos:
<source>Remove folder pair</source>
<target>Poista hakemistopari</target>
-<source>Select SFTP folder</source>
-<target>Valitse SFTP hakemisto</target>
-
<source>Swap sides</source>
<target>Puoltenvaihto</target>
@@ -887,27 +875,15 @@ Käsky suoritetaan jos:
<source>Total bytes to copy</source>
<target>Kopioitava määrä tavuja</target>
+<source>Folder pair:</source>
+<target>Hakemistopari:</target>
+
<source>Use local settings:</source>
<target>Käytä paikallisia asetuksia:</target>
<source>Select a variant:</source>
<target>Valitse vaihtoehto:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Tunnista identtiset tiedostot aikaleimoja ja kokoa vertailemalla.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Tunnista identtiset tiedostot sisältöä vertailemalla.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Älä huomioi aikaeroa (tunteja)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Oleta tiedostoja tietyllä aikasiirtymällä olevan vastaavia</target>
-
-<source>Handle daylight saving time</source>
-<target>Käsittele kesäaika</target>
-
<source>Include &symbolic links:</source>
<target>Sisällytä &pikalinkit:</target>
@@ -920,6 +896,18 @@ Käsky suoritetaan jos:
<source>More information</source>
<target>Lisää tietoa</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Jätä aikasiirtymä huomiotta [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Aikasiirtymät joita ei huomioida</target>
+
+<source>Example:</source>
+<target>Esim.:</target>
+
+<source>Handle daylight saving time</source>
+<target>Käsittele kesäaika</target>
+
<source>Local settings:</source>
<target>Paikalliset aseukset:</target>
@@ -1009,14 +997,17 @@ Käsky suoritetaan jos:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Järjestä hakemistoparit</target>
+
<source>Enter your SFTP login details:</source>
<target>Anna SFTP kirjautumis tietosi:</target>
<source>Server name or IP address:</source>
<target>Palvelimen nimi ja IP:</target>
-<source>Examples:</source>
-<target>Malli:</target>
+<source>Port:</source>
+<target>Portti:</target>
<source>User name:</source>
<target>Käyttäjä:</target>
@@ -1030,6 +1021,12 @@ Käsky suoritetaan jos:
<source>Directory on server:</source>
<target>Palvelimen hakemisto:</target>
+<source>Select a directory on the server:</source>
+<target>Valitse palvelimelta hakemisto:</target>
+
+<source>Select Folder</source>
+<target>Valitse kansio</target>
+
<source>Start synchronization now?</source>
<target>Käynnistetäänkö täsmäytys?</target>
@@ -1039,9 +1036,6 @@ Käsky suoritetaan jos:
<source>&Don't show this dialog again</source>
<target>&Älä näytä tätä ruutua uudestaan</target>
-<source>Arrange folder pair</source>
-<target>Järjestä hakemistoparit</target>
-
<source>Items found:</source>
<target>Osioita löytyi:</target>
@@ -1093,6 +1087,12 @@ Käsky suoritetaan jos:
<source>How can I schedule a batch job?</source>
<target>Miten ajastan eräajon?</target>
+<source>&Keep relative paths</source>
+<target>&Säilytä suhteelliset polut</target>
+
+<source>&Overwrite existing files</source>
+<target>&Ylikirjoita olemassa olevat tiedostot</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Näitä asetuksia käytetään kaikkiin täsmäyksiin.</target>
@@ -1183,14 +1183,17 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Delete Items</source>
<target>Poista kohteet</target>
+<source>Copy items</source>
+<target>Monista kohteet</target>
+
<source>Options</source>
<target>Asetukset</target>
<source>Select Time Span</source>
<target>Valitse aikajakso</target>
-<source>&Preferences</source>
-<target>&Ominaisuudet</target>
+<source>&Options</source>
+<target>&Asetukset</target>
<source>Main Bar</source>
<target>Pääpalkki</target>
@@ -1210,6 +1213,12 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Overview</source>
<target>Yleiskatsaus</target>
+<source>&Download</source>
+<target>&Lataa</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>FreeFileSyncin uusi versio on saatavilla:</target>
+
<source>Confirm</source>
<target>Vahvista</target>
@@ -1270,8 +1279,11 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Exclude temporarily</source>
<target>Suodat tilapäisesti</target>
-<source>Delete</source>
-<target>Poista</target>
+<source>&Copy to...</source>
+<target>&Monista...</target>
+
+<source>&Delete</source>
+<target>&Poista</target>
<source>Include all</source>
<target>Valitse kaikki</target>
@@ -1321,9 +1333,6 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Remove entry from list</source>
<target>Poista valittu määrittely listalta</target>
-<source>Synchronization Settings</source>
-<target>Täsmäyksen asetukset</target>
-
<source>Clear filter</source>
<target>Nollaa suodin</target>
@@ -1411,27 +1420,27 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Shut down</source>
<target>Sulje</target>
+<source>Paused</source>
+<target>Pysäytetty</target>
+
+<source>Initializing...</source>
+<target>Alustetaan...</target>
+
<source>Scanning...</source>
<target>Tiedostoja haetaan...</target>
<source>Comparing content...</source>
<target>Sisältöä vertaillaan...</target>
+<source>Completed</source>
+<target>Valmis</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Valitse kaikki</target>
-<source>Paused</source>
-<target>Pysäytetty</target>
-
-<source>Initializing...</source>
-<target>Alustetaan...</target>
-
-<source>Completed</source>
-<target>Valmis</target>
-
<source>&Continue</source>
<target>&Jatka</target>
@@ -1441,6 +1450,21 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Log</source>
<target>Loki</target>
+<source>Loading...</source>
+<target>Lataan...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Monistetaanko kohde toiseen kansioon?</pluralform>
+<pluralform>Monista %x kohteet toiseen kansioon?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Kerro kohde kansio.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<pluralform>Haluatko todella poistaa nämä %x kohdetta?</pluralform>
</target>
-<source>Preferences</source>
-<target>Ominaisuudet</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Monista DACL, SACL, omistaja, ryhmä</target>
@@ -1489,6 +1510,15 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>&Show</source>
<target>&Näytä</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Tunnista identtiset tiedostot aikaleimoja ja kokoa vertailemalla.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Tunnista identtiset tiedostot sisältöä vertailemalla.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Löydä vastaavat tiedostot tiedostokoon mukaan.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Löydä ja monista muutokset molemmille puolille. Poistot, siirrot ja eroavuudet tunnistetaan tietokannan avulla.</target>
@@ -1501,6 +1531,15 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Configure your own synchronization rules.</source>
<target>Määritä omat täsmäyssäännöt.</target>
+<source>Synchronization Settings</source>
+<target>Täsmäyksen asetukset</target>
+
+<source>Comparison</source>
+<target>Vertailu</target>
+
+<source>Synchronization</source>
+<target>Täsmäytys</target>
+
<source>Today</source>
<target>Tänään</target>
@@ -1537,11 +1576,11 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Append a time stamp to each file name</source>
<target>Lisää tiedostoihin aikaleimat</target>
-<source>Comparison</source>
-<target>Vertailu</target>
+<source>Main config</source>
+<target>Pääasetus</target>
-<source>Synchronization</source>
-<target>Täsmäytys</target>
+<source>empty</source>
+<target>tyhjä</target>
<source>Leave as unresolved conflict</source>
<target>Jätä ratkaisemattomana ristiriitana</target>
@@ -1561,6 +1600,27 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Percentage</source>
<target>Prosenttia</target>
+<source>Internet access failed.</source>
+<target>Ei pääsyä internettiin.</target>
+
+<source>Check for Program Updates</source>
+<target>Etsi ohjelmaan päivitystä</target>
+
+<source>Download now?</source>
+<target>Ladataanko nyt?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync on ajan tasalla.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Ei yhteyttä www.freefilesync.org:iin.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Nykyistä FreeFileSyncin versiota ei löydy verkosta. Suoritetaanko manuaalinen haku?</target>
+
+<source>&Check</source>
+<target>&Tarkista</target>
+
<source>Unable to register to receive system messages.</source>
<target>Kirjautuminen järjestelmäviestien vastaanottamiseksi ei onnistu.</target>
@@ -1588,6 +1648,9 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Cannot copy permissions from %x to %y.</source>
<target>Oikeuksien monistus %x:ltä %y:lle ei onnistu.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x on epämääräinen hakemisto nimi.</target>
+
<source>Cannot find system function %x.</source>
<target>Järjestelmäfunktiota %x ei löydy.</target>
@@ -1714,9 +1777,15 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync täsmäytyksen tietokanta</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync määrittelyt</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync määrittelyt</target>
<source>Edit with FreeFileSync</source>
<target>Muokkaa FreeFileSync:llä</target>
+<source>Thanks for your donation and support!</source>
+<target>Kiitän tuesta ja lahjoituksista!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Tämä lahjoittajien version FreeFileSync:n latauskerrat on käytetty. Ladataanko normi versio FreeFileSync kotisivulta?</target>
+
diff --git a/FreeFileSync/Build/Languages/french.lng b/FreeFileSync/Build/Languages/french.lng
index 2a3aa60a..11bb0341 100644
--- a/FreeFileSync/Build/Languages/french.lng
+++ b/FreeFileSync/Build/Languages/french.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Directions de la synchronisation par défaut : les anciens fichiers seront remplacés par les nouveaux.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Contrôle de la disponibilité de la Corbeille pour le dossier %x ...</target>
+<source>Creating folder %x</source>
+<target>Création du dossier %x</target>
+
+<source>Creating file %x</source>
+<target>Création du fichier %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Création du lien symbolique %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Déplacement du fichier %x vers la Corbeille<</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Suppression du lien symbolique %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Contrôle de la disponibilité de la Corbeille pour le dossier %x ...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>La Corbeille n'est pas disponible por les dossiers suivants. Les fichiers seront détruits définitivement :</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Impossible de trouver le fichier %x.</target>
+<source>Error</source>
+<target>Erreur</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Le fichier %x ne contient pas une configuration valide.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Impossible de trouver les dossiers suivants :</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Vous pouvez ignorer cette erreur en considérant chaque dossier comme vide. Les dossiers seront automatiquement créés pendant la synchronisation.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Si vous ignorez cette erreur, le dossier sera considéré comme vide. Les dossiers manquants sont créés automatiquement si nécessaire.</target>
<source>A folder input field is empty.</source>
<target>Une entrée dossier est vide.</target>
@@ -246,9 +258,6 @@ Trouvé : %y octets
<source>Cannot find device %x.</source>
<target>Impossible de trouver le périphérique %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Impossible de calculer l'espace disque libre de %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Impossible de créer le répertoire %x.</target>
@@ -267,12 +276,15 @@ Trouvé : %y octets
<source>Cannot resolve symbolic link %x.</source>
<target>Impossible de résoudre le lien symbolique %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Impossible de déplacer %x dans la Corbeille.</target>
-
<source>Cannot open directory %x.</source>
<target>Impossible d'ouvrir le répertoire %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Impossible de calculer l'espace disque libre de %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Impossible de déplacer %x dans la Corbeille.</target>
+
<source>Incorrect command line:</source>
<target>Ligne de commande incorrecte :</target>
@@ -345,9 +357,6 @@ Trouvé : %y octets
<source>Detecting abandoned lock...</source>
<target>Détection de verrouillage abandonné ...</target>
-<source>Creating file %x</source>
-<target>Création du fichier %x</target>
-
<source>Saving file %x...</source>
<target>Enregistrement du fichier %x...</target>
@@ -366,9 +375,6 @@ Trouvé : %y octets
<source>Cannot set directory lock for %x.</source>
<target>Impossible de verrouiller le dossier %x.</target>
-<source>Scanning:</source>
-<target>Lecture en cours :</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Trouvé : %y octets
<pluralform>%x tâches</pluralform>
</target>
+<source>Scanning:</source>
+<target>Lecture en cours :</target>
+
<source>/sec</source>
<target>/sec</target>
@@ -488,8 +497,8 @@ La commande est déclenchée si :
- un nouveau dossier apparait (par exemple : insertion d'une clé USB)
</target>
-<source>&Start</source>
-<target>&Démarrer</target>
+<source>Start</source>
+<target>Démarrer</target>
<source>About</source>
<target>A propos de</target>
@@ -503,15 +512,15 @@ La commande est déclenchée si :
<source>Automated Synchronization</source>
<target>Synchronisation Automatique</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Le chemin suivant n'accepte pas la gestion des répertoires :</target>
+
<source>Directory monitoring active</source>
<target>Gestion des répertoires active</target>
<source>Waiting until all directories are available...</source>
<target>En attente de la disponibilité de tous les répertoires ...</target>
-<source>Error</source>
-<target>Erreur</target>
-
<source>&Restore</source>
<target>&Restaurer</target>
@@ -524,11 +533,14 @@ La commande est déclenchée si :
<source>&Retry</source>
<target>&Réessayer</target>
+<source>File time and size</source>
+<target>Date et taille du fichier</target>
+
<source>File content</source>
<target>Contenu du fichier</target>
-<source>File time and size</source>
-<target>Date et taille du fichier</target>
+<source>File size</source>
+<target>Taille du fichier</target>
<source>Two way</source>
<target>Deux sens</target>
@@ -557,12 +569,6 @@ La commande est déclenchée si :
<source>Removing old versions...</source>
<target>Suppression des anciennes versions...</target>
-<source>Creating symbolic link %x</source>
-<target>Création du lien symbolique %x</target>
-
-<source>Creating folder %x</source>
-<target>Création du dossier %x</target>
-
<source>Updating file %x</source>
<target>Mise à jour du fichier %x</target>
@@ -680,30 +686,6 @@ La commande est déclenchée si :
<source>Serious Error</source>
<target>Erreur Grave</target>
-<source>Check for Program Updates</source>
-<target>Recherche des Mises à Jour</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Une nouvelle version de FreeFileSync est disponible :</target>
-
-<source>Download now?</source>
-<target>Télécharger maintenant ?</target>
-
-<source>&Download</source>
-<target>&Télécharger</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync est à jour.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Impossible de se connecter à www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Impossible de trouver en ligne une nouvelle version de FreeFileSync.Voulez-vous le faire manuellement ?</target>
-
-<source>&Check</source>
-<target>&Contrôle</target>
-
<source>Symlink</source>
<target>Lien symbolique</target>
@@ -764,11 +746,20 @@ La commande est déclenchée si :
<source>Paste</source>
<target>Coller</target>
-<source>Local Synchronization Settings</source>
-<target>Paramètres de synchronisation locaux</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Le dossier sélectionné %x ne peut être utilisé avec FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Veuillez choisir un dossier local, en réseau ou un périphérique MTP.</target>
+
+<source>SFTP folder</source>
+<target>Dossier SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Sélectionner un dossier SFTP</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Le dossier sélectionné %x ne peut pas être utilisé avec FreeFileSync. Veuillez choisir un dossier sur un système de fichier local, sur le réseau ou sur un périphérique MTP.</target>
+<source>Select alternative folder type</source>
+<target>Sélectionner un autre type de dossier</target>
<source>&New</source>
<target>&Nouveau</target>
@@ -797,8 +788,8 @@ La commande est déclenchée si :
<source>&Actions</source>
<target>&Actions</target>
-<source>&Options</source>
-<target>&Options</target>
+<source>&Preferences</source>
+<target>&Préférences</target>
<source>&Language</source>
<target>&Langue</target>
@@ -839,9 +830,6 @@ La commande est déclenchée si :
<source>Remove folder pair</source>
<target>Supprimer le couple de dossiers</target>
-<source>Select SFTP folder</source>
-<target>Sélectionner un dossier SFTP</target>
-
<source>Swap sides</source>
<target>Permuter les côtés</target>
@@ -887,27 +875,15 @@ La commande est déclenchée si :
<source>Total bytes to copy</source>
<target>Nombre total d'octets à copier</target>
+<source>Folder pair:</source>
+<target>Paire de dossiers :</target>
+
<source>Use local settings:</source>
<target>Utiliser les paramètres locaux :</target>
<source>Select a variant:</source>
<target>Choisir une variante :</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Reconnaître les fichiers identiques à l'aide de leur taille et de leur date.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Reconnaître les fichiers identiques à l'aide de leur contenu.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignorer le décalage horaire (en heures)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Considérer comme identiques les dates de fichiers avec un décalage spécifié</target>
-
-<source>Handle daylight saving time</source>
-<target>Gérer l'heure d'été</target>
-
<source>Include &symbolic links:</source>
<target>Inclure les liens &symboliques :</target>
@@ -920,6 +896,18 @@ La commande est déclenchée si :
<source>More information</source>
<target>Plus d'informations</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignorer le décalage horaire [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Liste des décalages de temps UTC à ignorer</target>
+
+<source>Example:</source>
+<target>Exemple :</target>
+
+<source>Handle daylight saving time</source>
+<target>Gérer l'heure d'été</target>
+
<source>Local settings:</source>
<target>Paramètres locaux :</target>
@@ -1009,14 +997,17 @@ La commande est déclenchée si :
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Coordonne la paire de dossiers</target>
+
<source>Enter your SFTP login details:</source>
<target>Entrer vos identifiants SFTP :</target>
<source>Server name or IP address:</source>
<target>Nom du serveur ou adresse IP :</target>
-<source>Examples:</source>
-<target>Exemples :</target>
+<source>Port:</source>
+<target>Port :</target>
<source>User name:</source>
<target>Nom de l'utilisateur :</target>
@@ -1030,6 +1021,12 @@ La commande est déclenchée si :
<source>Directory on server:</source>
<target>Répertoire sur le serveur :</target>
+<source>Select a directory on the server:</source>
+<target>Sélectionner un répertoire sur le serveur :</target>
+
+<source>Select Folder</source>
+<target>Sélectionner un Dossier</target>
+
<source>Start synchronization now?</source>
<target>Démarrer la synchronisation maintenant ?</target>
@@ -1039,9 +1036,6 @@ La commande est déclenchée si :
<source>&Don't show this dialog again</source>
<target>&Ne plus afficher cette boîte de dialogue</target>
-<source>Arrange folder pair</source>
-<target>Coordonne la paire de dossiers</target>
-
<source>Items found:</source>
<target>Élements trouvés :</target>
@@ -1093,6 +1087,12 @@ La commande est déclenchée si :
<source>How can I schedule a batch job?</source>
<target>Comment plannifier un job batch ?</target>
+<source>&Keep relative paths</source>
+<target>&Conserver les chemins relatifs</target>
+
+<source>&Overwrite existing files</source>
+<target>&Remplacer les fichiers existants</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Les paramètres suivants sont utilisés lors de toutes les synchronisations.</target>
@@ -1183,14 +1183,17 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Delete Items</source>
<target>Supprimer les Éléments</target>
+<source>Copy items</source>
+<target>Copier les éléments</target>
+
<source>Options</source>
<target>Options</target>
<source>Select Time Span</source>
<target>Sélection de l'Intervalle de Temps</target>
-<source>&Preferences</source>
-<target>&Préférences</target>
+<source>&Options</source>
+<target>&Options</target>
<source>Main Bar</source>
<target>Barre Principale</target>
@@ -1210,6 +1213,12 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Overview</source>
<target>Aperçu</target>
+<source>&Download</source>
+<target>&Télécharger</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Une nouvelle version de FreeFileSync est disponible :</target>
+
<source>Confirm</source>
<target>Confirmer</target>
@@ -1270,8 +1279,11 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Exclude temporarily</source>
<target>Exclure temporairement</target>
-<source>Delete</source>
-<target>Supprimer</target>
+<source>&Copy to...</source>
+<target>&Copier vers ...</target>
+
+<source>&Delete</source>
+<target>&Supprimer</target>
<source>Include all</source>
<target>Inclure tout</target>
@@ -1321,9 +1333,6 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Remove entry from list</source>
<target>Enlever un élément de la liste</target>
-<source>Synchronization Settings</source>
-<target>Configuration de la Synchronisation</target>
-
<source>Clear filter</source>
<target>Effacer les filtres</target>
@@ -1411,27 +1420,27 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Shut down</source>
<target>Arrêter</target>
+<source>Paused</source>
+<target>En pause</target>
+
+<source>Initializing...</source>
+<target>Initialisation...</target>
+
<source>Scanning...</source>
<target>Lecture en cours...</target>
<source>Comparing content...</source>
<target>Comparaison du contenu...</target>
+<source>Completed</source>
+<target>Terminé</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Tout sélectionner</target>
-<source>Paused</source>
-<target>En pause</target>
-
-<source>Initializing...</source>
-<target>Initialisation...</target>
-
-<source>Completed</source>
-<target>Terminé</target>
-
<source>&Continue</source>
<target>&Continuer</target>
@@ -1441,6 +1450,21 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Log</source>
<target>Log</target>
+<source>Loading...</source>
+<target>Chargement ...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Copier %x élément dans un autre dossier ?</pluralform>
+<pluralform>Copier les %x éléments suivants dans un autre dossier ?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Veuillez indiquer le dossier destination.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,11 +1486,8 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<pluralform>Voulez-vous vraiment supprimer ces %x éléments ?</pluralform>
</target>
-<source>Preferences</source>
-<target>Préférences</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
-<target>Cpoie les éléments de sécurité DACL, SACL, propriétaire et groupe</target>
+<target>Copie DACL, SACL, propriétaire et groupe</target>
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Inclure les applications externes dans le menu contextuel. Les macros suivantes sont disponibles :</target>
@@ -1489,6 +1510,15 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>&Show</source>
<target>&Afficher</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Reconnaître les fichiers identiques à l'aide de leur taille et de leur date.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Reconnaître les fichiers identiques à l'aide de leur contenu.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identifier les fichiers identiques en comparant leur taille.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identifier et propager les modifications des deux côtés. Suppressions, déplacements et conflits sont détectés automatiquement en utilisant une base de données.</target>
@@ -1501,6 +1531,15 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Configure your own synchronization rules.</source>
<target>Paramétrage de vos règles de synchronisation.</target>
+<source>Synchronization Settings</source>
+<target>Configuration de la Synchronisation</target>
+
+<source>Comparison</source>
+<target>Comparaison</target>
+
+<source>Synchronization</source>
+<target>Synchronisation</target>
+
<source>Today</source>
<target>Aujourd'hui</target>
@@ -1537,11 +1576,11 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Append a time stamp to each file name</source>
<target>Ajouter un horodatage à chaque nom de fichier</target>
-<source>Comparison</source>
-<target>Comparaison</target>
+<source>Main config</source>
+<target>Configuration principale</target>
-<source>Synchronization</source>
-<target>Synchronisation</target>
+<source>empty</source>
+<target>vide</target>
<source>Leave as unresolved conflict</source>
<target>Abandonner en tant que conflit non résolu</target>
@@ -1561,6 +1600,27 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Percentage</source>
<target>Pourcentage</target>
+<source>Internet access failed.</source>
+<target>Echec de l'accès Internet.</target>
+
+<source>Check for Program Updates</source>
+<target>Recherche des Mises à Jour</target>
+
+<source>Download now?</source>
+<target>Télécharger maintenant ?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync est à jour.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Impossible de se connecter à www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Impossible de trouver en ligne une nouvelle version de FreeFileSync.Voulez-vous le faire manuellement ?</target>
+
+<source>&Check</source>
+<target>&Contrôle</target>
+
<source>Unable to register to receive system messages.</source>
<target>Impossible d'enregistrer la réception des messages système.</target>
@@ -1588,6 +1648,9 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Cannot copy permissions from %x to %y.</source>
<target>Impossible de copier les permissions de %x à %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x n'est pas un nom de répertoire valise.</target>
+
<source>Cannot find system function %x.</source>
<target>Impossible de trouver la fonction système %x.</target>
@@ -1714,9 +1777,15 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>FreeFileSync Synchronization Database</source>
<target>Base de données de synchronisation de FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Configuration de RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Configuration de RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Modification avec FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Merci pour votre don et votre aide !</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Le programme d'installation pour les donateurs a atteint sa limite d'installations. Voulez-vous télécharger la version valide à partir du site de FreeFileSync ?</target>
+
diff --git a/FreeFileSync/Build/Languages/german.lng b/FreeFileSync/Build/Languages/german.lng
index 26590371..1adf8fbf 100644
--- a/FreeFileSync/Build/Languages/german.lng
+++ b/FreeFileSync/Build/Languages/german.lng
@@ -7,12 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>List of file time offsets to consider equal</source>
-<target></target>
-
-<source>The following path does not support directory monitoring:</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Beide Seiten wurden seit der letzten Synchronisation verändert.</target>
@@ -118,7 +112,7 @@
<source>Cannot find the following folders:</source>
<target>Die folgenden Ordner wurden nicht gefunden:</target>
-<source>If you ignore this error the folders are considered empty. Missing folders are created automatically when needed.</source>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
<target>Wird dieser Fehler ignoriert, werden die Ordner als leer angesehen. Fehlende Ordner werden bei Bedarf automatisch erstellt.</target>
<source>A folder input field is empty.</source>
@@ -518,6 +512,9 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>Automated Synchronization</source>
<target>Automatisierte Synchronisation</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Der folgende Pfad unterstützt keine Verzeichnisüberwachung:</target>
+
<source>Directory monitoring active</source>
<target>Verzeichnisüberwachung ist aktiv</target>
@@ -536,11 +533,14 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>&Retry</source>
<target>&Wiederholen</target>
+<source>File time and size</source>
+<target>Datum und Größe</target>
+
<source>File content</source>
<target>Dateiinhalt</target>
-<source>File time and size</source>
-<target>Datum und Größe</target>
+<source>File size</source>
+<target>Dateigröße</target>
<source>Two way</source>
<target>Zwei Wege</target>
@@ -884,12 +884,6 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>Select a variant:</source>
<target>Variante wählen:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Erkenne gleiche Dateien anhand der Änderungszeit und Größe.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Erkenne gleiche Dateien durch Vergleich des Dateiinhaltes.</target>
-
<source>Include &symbolic links:</source>
<target>Symbolische &Verknüpfungen einschließen:</target>
@@ -905,6 +899,9 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>&Ignore time shift [hh:mm]</source>
<target>&Zeitversatz ignorieren [hh:mm]</target>
+<source>List of file time offsets to ignore</source>
+<target>Liste von Zeitverschiebungen die ignoriert werden sollen</target>
+
<source>Example:</source>
<target>Beispiel:</target>
@@ -1108,7 +1105,7 @@ This guarantees a consistent state even in case of a serious error.
</source>
<target>
Kopiere in eine temporäre Datei (*.ffs_tmp) bevor das Ziel überschrieben wird.
-Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
+Dadurch wird ein konsistenter Datenstand auch bei schweren Fehlern garantiert.
</target>
<source>(recommended)</source>
@@ -1282,11 +1279,11 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>Exclude temporarily</source>
<target>Temporär ausschließen</target>
-<source>Copy to...</source>
-<target>Kopieren nach...</target>
+<source>&Copy to...</source>
+<target>&Kopieren nach...</target>
-<source>Delete</source>
-<target>Löschen</target>
+<source>&Delete</source>
+<target>&Löschen</target>
<source>Include all</source>
<target>Alle einschließen</target>
@@ -1513,6 +1510,15 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>&Show</source>
<target>&Zeigen</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Erkenne gleiche Dateien anhand der Änderungszeit und Größe.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Erkenne gleiche Dateien durch Vergleich des Dateiinhaltes.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Erkenne gleiche Dateien anhand der Dateigröße.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identifiziere und propagiere Änderungen auf beiden Seiten. Löschungen, Verschiebungen und Konflikte werden automatisch mit Hilfe einer Datenbank erkannt.</target>
@@ -1594,6 +1600,9 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>Percentage</source>
<target>Prozent</target>
+<source>Internet access failed.</source>
+<target>Der Internetzugriff ist fehlgeschlagen.</target>
+
<source>Check for Program Updates</source>
<target>Suche nach neuer Programmversion</target>
@@ -1768,8 +1777,8 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync Synchronisationsdatenbank</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync Konfiguration</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync Konfiguration</target>
<source>Edit with FreeFileSync</source>
<target>Mit FreeFileSync editieren</target>
diff --git a/FreeFileSync/Build/Languages/greek.lng b/FreeFileSync/Build/Languages/greek.lng
index 55679030..f5e9dd66 100644
--- a/FreeFileSync/Build/Languages/greek.lng
+++ b/FreeFileSync/Build/Languages/greek.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Ρύθμιση προεπιλεγμένης κατεύθυνσης συγχρονισμού: Τα νεότερα αρχεία θα αντικαταστήσουν τα παλιότερα.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Έλεγχος της διαθεσιμότητας του κάδου ανακύκλωσης για τον υποκατάλογο %x...</target>
+<source>Creating folder %x</source>
+<target>Δημιουργία του υποκαταλόγου %x</target>
+
+<source>Creating file %x</source>
+<target>Δημιουργία του αρχείου %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Δημιουργία του συμβολικού δεσμού %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Μεταφορά του αρχείου %x στον κάδο ανακύκλωσης</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Διαγραφή του συμβολικού δεσμού %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Έλεγχος της διαθεσιμότητας του κάδου ανακύκλωσης για τον υποκατάλογο %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Ο κάδος ανακύκλωσης δεν είναι διαθέσιμος για τους ακόλουθους υποκαταλόγους. Τα αρχεία θα διαγραφούν μόνιμα:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Το αρχείο %x δεν μπορεί να βρεθεί.</target>
+<source>Error</source>
+<target>Σφάλματα</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Το αρχείο %x δεν περιέχει μια έγκυρη διάταξη.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Οι ακόλουθοι υποκατάλογοι δεν ήταν δυνατό να βρεθούν:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Μπορείτε να αγνοήσετε αυτό το σφάλμα, για να αντιμετωπίσετε κάθε υποκατάλογο ως κενό. Οι υποκατάλογοι θα δημιουργηθούν αυτόματα κατά τη διάρκεια του συγχρονισμού.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Αν αγνοήσετε αυτό το σφάλμα, οι υποκατάλογοι θα θεωρηθούν κενοί. Οι υποκατάλογοι που λείπουν θα δημιουργηθούν αυτόματα εφόσον χρειάζεται.</target>
<source>A folder input field is empty.</source>
<target>Ένα πεδίο εισαγωγής υποκαταλόγων είναι άδειο.</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>Η συσχευή %x δεν μπορεί να βρεθεί.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Δεν μπορεί να υπολογιστεί ο ελεύθερος χώρος του δίσκου %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Δεν μπορεί να δημιουργηθεί ο υποκατάλογος %x.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Ο συμβολικός δεσμός %x δεν μπορεί να επιλυθεί.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Δεν ήταν δυνατή η μεταφορά του %x στον κάδο ανακύκλωσης.</target>
-
<source>Cannot open directory %x.</source>
<target>Δεν είναι δυνατό το άνοιγμα του υποκαταλόγου %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Δεν μπορεί να υπολογιστεί ο ελεύθερος χώρος του δίσκου %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Δεν ήταν δυνατή η μεταφορά του %x στον κάδο ανακύκλωσης.</target>
+
<source>Incorrect command line:</source>
<target>Εσφαλμένη γραμμή εντολών:</target>
@@ -345,9 +357,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>Ανίχνευση κλειδώματος που εγκαταλείφθηκε...</target>
-<source>Creating file %x</source>
-<target>Δημιουργία του αρχείου %x</target>
-
<source>Saving file %x...</source>
<target>Αποθήκευση του αρχείου %x...</target>
@@ -366,9 +375,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>Ο υποκατάλογος για το %x δεν μπορεί να κλειδωθεί.</target>
-<source>Scanning:</source>
-<target>Ανίχνευση:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Actual: %y bytes
<pluralform>%x νήματα</pluralform>
</target>
+<source>Scanning:</source>
+<target>Ανίχνευση:</target>
+
<source>/sec</source>
<target>/δευτερόλεπτο</target>
@@ -397,7 +406,7 @@ Actual: %y bytes
<target>Δεν είναι δυνατή η πρόσβαση στην Υπηρεσία Σκιώδους Αντίγραφου Τόμου.</target>
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
-<target>Χρησιμοποιήστε την 64-μπιτη έκδοση του FreeFileSync για να δημιουργήσετε σκιώδη αντίγραφα σε αυτόν τον υπολογιστή.</target>
+<target>Παρακαλούμε χρησιμοποιήστε την 64-μπιτη έκδοση του FreeFileSync για να δημιουργήσετε σκιώδη αντίγραφα σε αυτόν τον υπολογιστή.</target>
<source>Cannot determine volume name for %x.</source>
<target>Δεν μπορεί να προσδιοριστεί το όνομα τόμου για το %x.</target>
@@ -488,14 +497,14 @@ The command is triggered if:
-παρουσιαστούν νέοι υποκατάλογοι (π.χ. εισαχθεί ένα φλασάκι USB)
</target>
-<source>&Start</source>
-<target>Έ&ναρξη</target>
+<source>Start</source>
+<target>Έναρξη</target>
<source>About</source>
<target>Σχετικά με το...</target>
<source>Build: %x</source>
-<target>Δημιουργήθηκε : %x</target>
+<target>Δημιουργήθηκε: %x</target>
<source>All files</source>
<target>Όλα τα αρχεία</target>
@@ -503,15 +512,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>Αυτοματοποιημένος Συγχρονισμός</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Η παρακάτω διαδρομή δεν υποστηρίζει παρακολούθηση υποκαταλόγων:</target>
+
<source>Directory monitoring active</source>
<target>Η παρακολούθηση των υποκαταλόγων είναι ενεργή</target>
<source>Waiting until all directories are available...</source>
<target>Αναμονή μέχρι να είναι διαθέσιμοι όλοι οι υποκατάλογοι...</target>
-<source>Error</source>
-<target>Σφάλματα</target>
-
<source>&Restore</source>
<target>&Επαναφορά</target>
@@ -524,11 +533,14 @@ The command is triggered if:
<source>&Retry</source>
<target>&Επανάληψη</target>
+<source>File time and size</source>
+<target>Ημερομηνία και μέγεθος αρχείων</target>
+
<source>File content</source>
<target>Περιεχόμενο αρχείων</target>
-<source>File time and size</source>
-<target>Ημερομηνία και μέγεθος αρχείων</target>
+<source>File size</source>
+<target>Μέγεθος αρχείων</target>
<source>Two way</source>
<target>Διπλής κατεύθυνσης</target>
@@ -557,12 +569,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>Διαγραφή παλιών εκδόσεων...</target>
-<source>Creating symbolic link %x</source>
-<target>Δημιουργία του συμβολικού δεσμού %x</target>
-
-<source>Creating folder %x</source>
-<target>Δημιουργία του υποκαταλόγου %x</target>
-
<source>Updating file %x</source>
<target>Ενημέρωση του αρχείου %x</target>
@@ -594,7 +600,7 @@ The command is triggered if:
<target>Ο υποκατάλογος %x δε βρέθηκε.</target>
<source>Please enter a target folder for versioning.</source>
-<target>Παρακαλώ εισάγετε έναν υποκατάλογο για αποθήκευση εκδόσεων.</target>
+<target>Παρακαλούμε εισάγετε έναν υποκατάλογο για αποθήκευση εκδόσεων.</target>
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Τα ακόλουθα στοιχεία έχουν ανεπίλυτες διενέξεις και δε θα συγχρονιστούν:</target>
@@ -680,30 +686,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>Σοβαρό Σφάλμα</target>
-<source>Check for Program Updates</source>
-<target>Έλεγχος για ενημερώσεις του προγράμματος</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Μια νέα έκδοση του FreeFileSync είναι διαθέσιμη:</target>
-
-<source>Download now?</source>
-<target>Λήψη τώρα;</target>
-
-<source>&Download</source>
-<target>&Λήψη</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>Το FreeFileSync είναι ενημερωμένο.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Αδυναμία επικοινωνίας με το www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Ο αριθμός της τρέχουσας έκδοσης του FreeFileSync δεν βρέθηκε στο δίκτυο. Θέλετε να το ελέγξετε εσείς;</target>
-
-<source>&Check</source>
-<target>Έλε&γχος</target>
-
<source>Symlink</source>
<target>Συμβολικός δεσμός</target>
@@ -764,11 +746,20 @@ The command is triggered if:
<source>Paste</source>
<target>Επικόλληση</target>
-<source>Local Synchronization Settings</source>
-<target>Τοπικές Ρυθμίσεις Συγχρονισμού</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Ο επιλεγμένος υποκατάλογος %x δεν μπορεί να χρησιμοποιηθεί από το FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Παρακαλούμε επιλέξτε έναν υποκατάλογο σε ένα τοπικό σύστημα αρχείων, στο δίκτυο ή σε μια συσκευή MTP.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Ο επιλεγμένος υποκατάλογος %x δεν μπορεί να χρησιμοποιηθεί από το FreeFileSync. Παρακαλούμε επιλέξτε έναν υποκατάλογο στο τοπικό σύστημα αρχείων, δίκτυο ή σε μια συσκευή MTP.</target>
+<source>SFTP folder</source>
+<target>Υποκατάλογος SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Επιλογή υποκαταλόγου SFTP</target>
+
+<source>Select alternative folder type</source>
+<target>Επιλογή εναλλακτικού τύπου υποκαταλόγου</target>
<source>&New</source>
<target>&Δημιουργία</target>
@@ -797,8 +788,8 @@ The command is triggered if:
<source>&Actions</source>
<target>Ε&νέργειες</target>
-<source>&Options</source>
-<target>&Επιλογές</target>
+<source>&Preferences</source>
+<target>&Προτιμήσεις</target>
<source>&Language</source>
<target>&Γλώσσα</target>
@@ -839,9 +830,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>Διαγραφή του ζεύγους υποκαταλόγων</target>
-<source>Select SFTP folder</source>
-<target>Επιλογή υποκαταλόγου SFTP</target>
-
<source>Swap sides</source>
<target>Ανταλλαγή πλευρών</target>
@@ -887,32 +875,20 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>Συνολικός αριθμός bytes προς αντιγραφή</target>
+<source>Folder pair:</source>
+<target>Ζεύγος υποκαταλόγων:</target>
+
<source>Use local settings:</source>
<target>Χρήση τοπικών ρυθμίσεων:</target>
<source>Select a variant:</source>
<target>Επιλογή μεθόδου:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Αναγνώριση των ταυτόσημων αρχείων με σύγκριση του χρόνου τροποποίησης και του μεγέθους.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Αναγνώριση των ταυτόσημων αρχείων με σύγκριση του περιεχομένου τους.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Παράβλεψη χρονικής διαφοράς (σε ώρες)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Αρχεία με τη συγκεκριμένη χρονική διαφορά θα θεωρούνται ίδια</target>
-
-<source>Handle daylight saving time</source>
-<target>Διαχείριση θερινής ώρας</target>
-
<source>Include &symbolic links:</source>
<target>Συμπερίληψη των &συμβολικών δεσμών:</target>
<source>&Follow</source>
-<target><Α&κολούθηση</target>
+<target>Α&κολούθηση</target>
<source>&Direct</source>
<target>Άμε&ση αξιολόγηση</target>
@@ -920,6 +896,18 @@ The command is triggered if:
<source>More information</source>
<target>Περισσότερες πληροφορίες</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Αγνόηση χρονικής μετατόπισης [ωω:λλ]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Λίστα των χρονικών μετατοπίσεων που θα αγνοηθούν</target>
+
+<source>Example:</source>
+<target>Παράδειγμα:</target>
+
+<source>Handle daylight saving time</source>
+<target>Διαχείριση θερινής ώρας</target>
+
<source>Local settings:</source>
<target>Τοπικές ρυθμίσεις:</target>
@@ -1009,14 +997,17 @@ The command is triggered if:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Οργάνωση του ζεύγους υποκαταλόγων:</target>
+
<source>Enter your SFTP login details:</source>
<target>Εισάγετε τα στοιχεία σύνδεσης SFTP:</target>
<source>Server name or IP address:</source>
<target>Όνομα του διακομιστή ή διεύθυνση IP:</target>
-<source>Examples:</source>
-<target>Παραδείγματα:</target>
+<source>Port:</source>
+<target>Θύρα:</target>
<source>User name:</source>
<target>Όνομα χρήστη:</target>
@@ -1030,6 +1021,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>Υποκατάλογος στον διακομιστή:</target>
+<source>Select a directory on the server:</source>
+<target>Επιλογή ενός υποκαταλόγου στον διακομιστή:</target>
+
+<source>Select Folder</source>
+<target>Επιλογή Υποκαταλόγου</target>
+
<source>Start synchronization now?</source>
<target>Να ξεκινήσει ο συγχρονισμός τώρα;</target>
@@ -1039,9 +1036,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>&Να μην εμφανιστεί ξανά αυτό το μήνυμα</target>
-<source>Arrange folder pair</source>
-<target>Οργάνωση του ζεύγους υποκαταλόγων:</target>
-
<source>Items found:</source>
<target>Βρέθηκαν στοιχεία:</target>
@@ -1093,6 +1087,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>Πώς μπορώ να προγραμματίσω μια εργασία με δέσμη ενεργειών;</target>
+<source>&Keep relative paths</source>
+<target>&Διατήρηση των σχετικών διαδρομών</target>
+
+<source>&Overwrite existing files</source>
+<target>&Αντικατάσταση των υπαρχόντων αρχείων</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Οι ακόλουθες ρυθμίσεις χρησιμοποιούνται για όλες τις εργασίες συγχρονισμού.</target>
@@ -1183,14 +1183,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>Διαγραφή Στοιχείων</target>
+<source>Copy items</source>
+<target>Αντιγραφή στοιχείων</target>
+
<source>Options</source>
<target>Επιλογές</target>
<source>Select Time Span</source>
<target>Επιλογή Χρονικού Εύρους</target>
-<source>&Preferences</source>
-<target>&Προτιμήσεις</target>
+<source>&Options</source>
+<target>&Επιλογές</target>
<source>Main Bar</source>
<target>Κύρια Γραμμή</target>
@@ -1210,6 +1213,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>Σύνοψη</target>
+<source>&Download</source>
+<target>&Λήψη</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Μια νέα έκδοση του FreeFileSync είναι διαθέσιμη:</target>
+
<source>Confirm</source>
<target>Επιβεβαίωση</target>
@@ -1270,8 +1279,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Προσωρινή εξαίρεση</target>
-<source>Delete</source>
-<target>Διαγραφή</target>
+<source>&Copy to...</source>
+<target>&Αντιγραφή σε...</target>
+
+<source>&Delete</source>
+<target>&Διαγραφή</target>
<source>Include all</source>
<target>Συμπερίληψη όλων</target>
@@ -1321,9 +1333,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>Αφαίρεση καταχώρησης από τον κατάλογο</target>
-<source>Synchronization Settings</source>
-<target>Ρυθμίσεις συγχρονισμού</target>
-
<source>Clear filter</source>
<target>Καθαρισμός φίλτρου</target>
@@ -1411,27 +1420,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>Τερματισμός λειτουργίας</target>
+<source>Paused</source>
+<target>Σε παύση</target>
+
+<source>Initializing...</source>
+<target>Αρχικοποίηση...</target>
+
<source>Scanning...</source>
<target>Ανίχνευση...</target>
<source>Comparing content...</source>
<target>Σύγκριση του περιεχομένου...</target>
+<source>Completed</source>
+<target>Ολοκληρώθηκε</target>
+
<source>Info</source>
<target>Πληροφορίες</target>
<source>Select all</source>
<target>Επιλογή όλων</target>
-<source>Paused</source>
-<target>Σε παύση</target>
-
-<source>Initializing...</source>
-<target>Αρχικοποίηση...</target>
-
-<source>Completed</source>
-<target>Ολοκληρώθηκε</target>
-
<source>&Continue</source>
<target>&Συνέχεια</target>
@@ -1441,6 +1450,21 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Καταγραφή</target>
+<source>Loading...</source>
+<target>Φόρτωση...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Αντιγραφή του ακόλουθου στοιχείου σε άλλον υποκατάλογο;</pluralform>
+<pluralform>Αντιγραφή του ακόλουθων %x στοιχείων σε άλλον υποκατάλογο;</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Παρακαλούμε επιλέξτε έναν υποκατάλογο-στόχο.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Είσαι σίγουρος ότι θέλεις να διαγραφούν τα ακόλουθα %x αντικείμενα;</pluralform>
</target>
-<source>Preferences</source>
-<target>Προτιμήσεις</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Αντιγραφή των DACL, SACL, Κατόχου, Ομάδας</target>
@@ -1489,6 +1510,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&Εμφάνιση</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Αναγνώριση των ταυτόσημων αρχείων με σύγκριση του χρόνου τροποποίησης και του μεγέθους.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Αναγνώριση των ταυτόσημων αρχείων με σύγκριση του περιεχομένου τους.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Αναγνώριση των ταυτόσημων αρχείων με σύγκριση του μεγέθους τους.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Αναγνώριση και εφαρμογή αλλαγών και στις δυο πλευρές. Οι διαγραφές, οι μεταφορές και οι διενέξεις αναγνωρίζονται αυτόματα με τη βοήθεια μιας βάσης δεδομένων.</target>
@@ -1501,6 +1531,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Ορίστε τους δικούς σας κανόνες συγχρονισμού.</target>
+<source>Synchronization Settings</source>
+<target>Ρυθμίσεις συγχρονισμού</target>
+
+<source>Comparison</source>
+<target>Σύγκριση</target>
+
+<source>Synchronization</source>
+<target>Συγχρονισμός</target>
+
<source>Today</source>
<target>Σήμερα</target>
@@ -1537,11 +1576,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Προσάρτηση χρονικής σήμανσης στο όνομα κάθε αρχείου</target>
-<source>Comparison</source>
-<target>Σύγκριση</target>
+<source>Main config</source>
+<target>Κύρια διάταξη</target>
-<source>Synchronization</source>
-<target>Συγχρονισμός</target>
+<source>empty</source>
+<target>κενό</target>
<source>Leave as unresolved conflict</source>
<target>Παράβλεψη ως ανεπίλυτη διένεξη</target>
@@ -1561,6 +1600,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>Ποσοστό</target>
+<source>Internet access failed.</source>
+<target>Απέτυχε η πρόσβαση στο Internet.</target>
+
+<source>Check for Program Updates</source>
+<target>Έλεγχος για ενημερώσεις του προγράμματος</target>
+
+<source>Download now?</source>
+<target>Λήψη τώρα;</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>Το FreeFileSync είναι ενημερωμένο.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Αδυναμία επικοινωνίας με το www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Ο αριθμός της τρέχουσας έκδοσης του FreeFileSync δεν βρέθηκε στο δίκτυο. Θέλετε να το ελέγξετε εσείς;</target>
+
+<source>&Check</source>
+<target>Έλε&γχος</target>
+
<source>Unable to register to receive system messages.</source>
<target>Δεν μπορεί να καταχωρηθεί η λήψη μηνυμάτων συστήματος.</target>
@@ -1588,6 +1648,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>Δεν μπορούν να αντιγραφούν οι άδειες προσπέλασης του %x στο %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>Το %x δεν είναι ένα κανονικό όνομα υποκαταλόγου.</target>
+
<source>Cannot find system function %x.</source>
<target>Δεν ανευρίσκεται η λειτουργία συστήματος %x.</target>
@@ -1714,9 +1777,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>Βάση Δεδομένων Συγχρονισμού του FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Ρυθμίσεις του RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Ρυθμίσεις του RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Επεξεργασία με FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Ευχαριστούμε για τη δωρεά και την υποστήριξή σας!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Αυτό το πρόγραμμα εγκατάστασης του FreeFileSync για υποστηρικτές έχει λήξει. Θέλετε να κατεβάσετε την κανονική έκδοση από τη σελίδα του FreeFileSync;</target>
+
diff --git a/FreeFileSync/Build/Languages/hebrew.lng b/FreeFileSync/Build/Languages/hebrew.lng
index 497064da..021eb64e 100644
--- a/FreeFileSync/Build/Languages/hebrew.lng
+++ b/FreeFileSync/Build/Languages/hebrew.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>בחר ברירת מחדל של סנכרון: קבצים ישנים ידרסו ע"י קבצים חדשים יותר.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>בודק זמינות סל מחזור עבור תיקייה %x...</target>
+<source>Creating folder %x</source>
+<target>יוצר תיקייה %x</target>
+
+<source>Creating file %x</source>
+<target>יוצר קובץ %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>יוצר קישור סימבולי %x</target>
<source>Moving file %x to the recycle bin</source>
<target>מעביר קובץ %x לסל המיחזור</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>מוחק קישור סימבולי %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>בודק זמינות סל מחזור עבור תיקייה %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>סל המיחזור אינו זמין עבור התיקיות הבאות. הקבצים יימחקו לחלוטין:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>לא מוצא קובץ %x.</target>
+<source>Error</source>
+<target>שגיאה</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>קובץ %x אינו כולל תצורה תקינה.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>לא יכול למצוא את התיקיות הבאות:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>אפשר להתעלם משגיאה זו ולהחשיב כל תיקיה כריקה. התיקיות יווצרו אוטומטית בזמן הסינכרון.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>אם תתעלם משגיאה זו התיקיות תיחשבנה ריקות. תיקיות חסרות נוצרות באופן אוטומטי בעת הצורך.</target>
<source>A folder input field is empty.</source>
<target>שדה קלט תיקייה ריק.</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>לא מוצא התקן %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>לא ניתן לקבוע שטח דיסק פנוי עבור %x.</target>
-
<source>Cannot create directory %x.</source>
<target>לא יכול ליצור מחיצה %x.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>לא יכול לפענח את הקישור הסימבולי %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>לא יכול להעביר את %x לסל המחזור.</target>
-
<source>Cannot open directory %x.</source>
<target>לא יכול לפתוח מחיצה %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>לא ניתן לקבוע שטח דיסק פנוי עבור %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>לא יכול להעביר את %x לסל המחזור.</target>
+
<source>Incorrect command line:</source>
<target>שורת פקודה לא תקינה:</target>
@@ -345,9 +357,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>מגלה נעילה נטושה...</target>
-<source>Creating file %x</source>
-<target>יוצר קובץ %x</target>
-
<source>Saving file %x...</source>
<target>שומר קובץ %x...</target>
@@ -366,9 +375,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>לא ניתן לנעול מחיצה עבור %x.</target>
-<source>Scanning:</source>
-<target>סורק:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Actual: %y bytes
<pluralform>%x תהליכים</pluralform>
</target>
+<source>Scanning:</source>
+<target>סורק:</target>
+
<source>/sec</source>
<target>/שנ</target>
@@ -488,8 +497,8 @@ The command is triggered if:
- תיקיות חדשות מופיעות (לדוגמה התקן USB מוכנס)
</target>
-<source>&Start</source>
-<target>&התחל</target>
+<source>Start</source>
+<target>התחל</target>
<source>About</source>
<target>אודות</target>
@@ -503,15 +512,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>סנכרון אוטומטי</target>
+<source>The following path does not support directory monitoring:</source>
+<target>הנתיב הבא אינו תומך בניטור מחיצה:</target>
+
<source>Directory monitoring active</source>
<target>ניטור מחיצות פעיל</target>
<source>Waiting until all directories are available...</source>
<target>מחכה עד שכל המחיצות יהיו זמינות...</target>
-<source>Error</source>
-<target>שגיאה</target>
-
<source>&Restore</source>
<target>&טען מחדש</target>
@@ -524,11 +533,14 @@ The command is triggered if:
<source>&Retry</source>
<target>&נסה שנית</target>
+<source>File time and size</source>
+<target>זמן וגודל קובץ</target>
+
<source>File content</source>
<target>תכולת הקובץ</target>
-<source>File time and size</source>
-<target>זמן וגודל קובץ</target>
+<source>File size</source>
+<target>גודל קובץ</target>
<source>Two way</source>
<target>דו כווני</target>
@@ -557,12 +569,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>מסיר גרסאות ישנות...</target>
-<source>Creating symbolic link %x</source>
-<target>יוצר קישור סימבולי %x</target>
-
-<source>Creating folder %x</source>
-<target>יוצר תיקייה %x</target>
-
<source>Updating file %x</source>
<target>מעדכן קובץ %x</target>
@@ -680,30 +686,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>שגיאה חמורה</target>
-<source>Check for Program Updates</source>
-<target>בדוק קיום עדכוני תוכנה</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>גירסה חדשה של FreeFileSync זמינה:</target>
-
-<source>Download now?</source>
-<target>הורד עכשיו?</target>
-
-<source>&Download</source>
-<target>&הורד</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync מעודכן לגירסה האחרונה.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>אין תקשורת אל www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>לא מוצא מספר גירסה עדכנית של FreeFileSync באופן מכוון. האם אתה רוצה לבדוק באופן ידני?</target>
-
-<source>&Check</source>
-<target>&בדוק</target>
-
<source>Symlink</source>
<target>קשור סימבולי</target>
@@ -764,11 +746,20 @@ The command is triggered if:
<source>Paste</source>
<target>הדבק</target>
-<source>Local Synchronization Settings</source>
-<target>הגדרות סינכרון מקומיות</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>התיקייה הנבחרת %x אינה יכולה להיות בשימוש עם FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>אנא בחר תיקייה במערכת הקבצים המקומית, ברשת או בהתקן MTP.</target>
+
+<source>SFTP folder</source>
+<target>תיקיית SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>בחר תיקיית SFTP</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>התיקייה שנבחרה %x אינה ניתנת לשחמוש עם FreeFileSync. אנא בחר תיקייה במערכת קבצים מקומית, רשת או התקן MTP.</target>
+<source>Select alternative folder type</source>
+<target>בחר סוג תיקייה חלופי</target>
<source>&New</source>
<target>&חדש</target>
@@ -797,8 +788,8 @@ The command is triggered if:
<source>&Actions</source>
<target>&פעולות</target>
-<source>&Options</source>
-<target>&אפשרויות</target>
+<source>&Preferences</source>
+<target>&העדפות</target>
<source>&Language</source>
<target>&שפה</target>
@@ -839,9 +830,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>הסר זוג תיקיות</target>
-<source>Select SFTP folder</source>
-<target>בחר תיקיית SFTP</target>
-
<source>Swap sides</source>
<target>החלף צדדים</target>
@@ -887,27 +875,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>סה"כ בתים להעתיק</target>
+<source>Folder pair:</source>
+<target>זוג תיקיות:</target>
+
<source>Use local settings:</source>
<target>השתמש בהגדרות מקומיות:</target>
<source>Select a variant:</source>
<target>בחר גירסה:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>זהה קבצים זהים באמצעות השוואת תג הזמן והגודל.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>זהה קבצים זהים באמצעות השוואת תוכן.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&התעלם מסטיית זמן (בשעות)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>החשב זמני קובץ עם תזוזת זמן שנקבעה כשווים</target>
-
-<source>Handle daylight saving time</source>
-<target>התמודד עם שעון קיץ</target>
-
<source>Include &symbolic links:</source>
<target>כלול &קישורים סימבוליים:</target>
@@ -920,6 +896,18 @@ The command is triggered if:
<source>More information</source>
<target>מידע נוסף</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&התעלם מהזזת זמן [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>רשימת סטיות זמני קבצים להתעלם</target>
+
+<source>Example:</source>
+<target>דוגמה:</target>
+
+<source>Handle daylight saving time</source>
+<target>התמודד עם שעון קיץ</target>
+
<source>Local settings:</source>
<target>הגדרות מקומיות:</target>
@@ -1009,14 +997,17 @@ The command is triggered if:
<source>OK</source>
<target>אשר</target>
+<source>Arrange folder pair</source>
+<target>סדר זוג תיקיות</target>
+
<source>Enter your SFTP login details:</source>
<target>הכנס את נתוני הכניסה שלך ל-SFTP:</target>
<source>Server name or IP address:</source>
<target>שם שרת או כתובת IP:</target>
-<source>Examples:</source>
-<target>דוגמאות:</target>
+<source>Port:</source>
+<target>יציאה:</target>
<source>User name:</source>
<target>שם משתמש:</target>
@@ -1030,6 +1021,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>מחיצה על שרת:</target>
+<source>Select a directory on the server:</source>
+<target>בחר מחיצה על השרת:</target>
+
+<source>Select Folder</source>
+<target>בחר מחיצה</target>
+
<source>Start synchronization now?</source>
<target>האם להתחיל סנכרון עכשיו?</target>
@@ -1039,9 +1036,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>&אל תראה דושיח זה שנית</target>
-<source>Arrange folder pair</source>
-<target>סדר זוג תיקיות</target>
-
<source>Items found:</source>
<target>אלמנטים נמצאו:</target>
@@ -1093,6 +1087,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>כיצד לתזמן משימת אצווה?</target>
+<source>&Keep relative paths</source>
+<target>&שמור נתיבים יחסיים</target>
+
+<source>&Overwrite existing files</source>
+<target>&דרוס קבצים קיימים</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>ההגדרות הבאות משמשות לכל משימות הסנכרון.</target>
@@ -1183,14 +1183,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>מחק פריטים</target>
+<source>Copy items</source>
+<target>העתק פריטים</target>
+
<source>Options</source>
<target>אפשרויות</target>
<source>Select Time Span</source>
<target>בחר טווח זמן</target>
-<source>&Preferences</source>
-<target>&העדפות</target>
+<source>&Options</source>
+<target>&אפשרויות</target>
<source>Main Bar</source>
<target>סרגל ראשי</target>
@@ -1210,6 +1213,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>מבט כללי</target>
+<source>&Download</source>
+<target>&הורד</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>גירסה חדשה של FreeFileSync זמינה:</target>
+
<source>Confirm</source>
<target>אשר</target>
@@ -1270,8 +1279,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>אל תכלול זמנית</target>
-<source>Delete</source>
-<target>מחק</target>
+<source>&Copy to...</source>
+<target>&העתק אל...</target>
+
+<source>&Delete</source>
+<target>&מחק</target>
<source>Include all</source>
<target>הכלל הכל</target>
@@ -1321,9 +1333,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>הסר פריט מרשימה</target>
-<source>Synchronization Settings</source>
-<target>הגדרות סנכרון</target>
-
<source>Clear filter</source>
<target>נקה מסנן</target>
@@ -1411,27 +1420,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>כבה מחשב</target>
+<source>Paused</source>
+<target>עצור</target>
+
+<source>Initializing...</source>
+<target>מאתחל ...</target>
+
<source>Scanning...</source>
<target>סורק...</target>
<source>Comparing content...</source>
<target>משווה תכולה...</target>
+<source>Completed</source>
+<target>הושלם</target>
+
<source>Info</source>
<target>מידע</target>
<source>Select all</source>
<target>בחר הכל</target>
-<source>Paused</source>
-<target>עצור</target>
-
-<source>Initializing...</source>
-<target>מאתחל ...</target>
-
-<source>Completed</source>
-<target>הושלם</target>
-
<source>&Continue</source>
<target>&המשך</target>
@@ -1441,6 +1450,21 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>יומן</target>
+<source>Loading...</source>
+<target>טוען...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>העתק את הפריט לתיקייה אחרת?</pluralform>
+<pluralform>העתק את הפריט %x לתיקייה אחרת?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>אנא הזן תיקיית יעד.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>האם ברצונך למחוק את הפריטים %x הבאים?</pluralform>
</target>
-<source>Preferences</source>
-<target>העדפות</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>העתק DACL, SACL, Owner, Group</target>
@@ -1489,6 +1510,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&הראה</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>זהה קבצים זהים באמצעות השוואת תג הזמן והגודל.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>זהה קבצים זהים באמצעות השוואת תוכן.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>זהה קבצים זהים באמצעות השוואת גודל קובץ.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>זהה והפץ שינויים בשני הצדדים. מחיקות העברות וסתירות מתגלים באופן אוטומטי באמצעות מסד נתונים.</target>
@@ -1501,6 +1531,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>סדר את כללי הסנכרון שלך.</target>
+<source>Synchronization Settings</source>
+<target>הגדרות סנכרון</target>
+
+<source>Comparison</source>
+<target>השוואה</target>
+
+<source>Synchronization</source>
+<target>סינכרון</target>
+
<source>Today</source>
<target>היום</target>
@@ -1537,11 +1576,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>הוסף חתימת זמן לכל שם קובץ</target>
-<source>Comparison</source>
-<target>השוואה</target>
+<source>Main config</source>
+<target>תצורה ראשית</target>
-<source>Synchronization</source>
-<target>סינכרון</target>
+<source>empty</source>
+<target>empty</target>
<source>Leave as unresolved conflict</source>
<target>השאר כקונפליקט לא מטופל</target>
@@ -1561,6 +1600,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>אחוז</target>
+<source>Internet access failed.</source>
+<target>גישה לאינטרנט נכשלה.</target>
+
+<source>Check for Program Updates</source>
+<target>בדוק קיום עדכוני תוכנה</target>
+
+<source>Download now?</source>
+<target>הורד עכשיו?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync מעודכן לגירסה האחרונה.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>אין תקשורת אל www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>לא מוצא מספר גירסה עדכנית של FreeFileSync באופן מכוון. האם אתה רוצה לבדוק באופן ידני?</target>
+
+<source>&Check</source>
+<target>&בדוק</target>
+
<source>Unable to register to receive system messages.</source>
<target>לא ניתן להרשם לקבלת הודעות מערכת.</target>
@@ -1588,6 +1648,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>לא יכול להעתיק הרשאות מ- %x אל %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x אינו שם של מחיצה רגילה.</target>
+
<source>Cannot find system function %x.</source>
<target>לא יכול למצוא פונקצית מערכת %x.</target>
@@ -1714,9 +1777,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>בסיס נתוני סינכרון של FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>תצורת RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>תצורת RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>ערוך עם FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>תודה עבור תרומתך ותמיכתך!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>קובץ התקנת FreeFileSync לתורמים הגיע למגבלת ההתקנות. האם להוריד את הגירסה הרגילה של קובץ ההתקנה מאתר הבית של FreeFileSync כעת?</target>
+
diff --git a/FreeFileSync/Build/Languages/hindi.lng b/FreeFileSync/Build/Languages/hindi.lng
index 7f97b984..b818e364 100644
--- a/FreeFileSync/Build/Languages/hindi.lng
+++ b/FreeFileSync/Build/Languages/hindi.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>डिफ़ॉल्ट सिंक्रनाइज़ेशन दिशाएँ सेट हो रही हैं: पुराने फ़ाइल्स नए फ़ाइल्स से अधिलेखित होंगे।</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>%x फ़ोल्डर के लिए रीसायकल बिन की उपलब्धता की जाँच हो रही है...</target>
+<source>Creating folder %x</source>
+<target>फ़ोल्डर %x बनाया हा रहा है</target>
+
+<source>Creating file %x</source>
+<target>फ़ाइल %x बनाई जा रही है</target>
+
+<source>Creating symbolic link %x</source>
+<target>प्रतीकात्मक कड़ी %x बनाया जा रहा है</target>
<source>Moving file %x to the recycle bin</source>
<target>%x फ़ाइल को रीसायकल बिन में ले जाया जा रहा है</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>%x प्रतीकात्मक कड़ी हटाया जा रहा है</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>%x फ़ोल्डर के लिए रीसायकल बिन की उपलब्धता की जाँच हो रही है...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>रीसायकल बिन निम्न फ़ोलडर्स के लिए उपलब्ध नहीं है। फ़ाइल्स को स्थायी रूप से हटाया जाएगा:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>फ़ाइल %x नहीं मिली।</target>
+<source>Error</source>
+<target>त्रुटि</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>%x फ़ाइल में वैध कॉन्फ़िगरेशन नहीं है।</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>निम्न फ़ोलडर्स नहीं मिले:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>हर फ़ोल्डर को खाली समझकर आप इस त्रुटि को अनदेखा कर सकते हो। फिर सिंक्रनाइज़ेशन के दौरान फ़ोलडर्स अपने आप बनेंगे।</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>यदि आप इस त्रुटी को अनदेखा करते हैं तो निर्देशिकाओं को खाली समझा जाएगा। लापता निर्देशिकाएं आवश्यकता नुसार स्वचालित रूप से बनाए जाते हैं।</target>
<source>A folder input field is empty.</source>
<target>कोई फ़ोल्डर इनपुट प्रविष्टि खाली है।</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>डिवाइस %x नहीं मिला।</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>%x के लिए खाली डिस्क जगह निर्धारित नहीं कर सकते।</target>
-
<source>Cannot create directory %x.</source>
<target>%x निर्देशिका बना नहीं सकते।</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>सिंबॉलिक लिंक %x को हल नहीं कर सकते।</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>%x को रीसायकल बिन ले जाने में असमर्थ।</target>
-
<source>Cannot open directory %x.</source>
<target>निर्देशिका %x खोल नहीं सकते।</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>%x के लिए खाली डिस्क जगह निर्धारित नहीं कर सकते।</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>%x को रीसायकल बिन ले जाने में असमर्थ।</target>
+
<source>Incorrect command line:</source>
<target>अनुचित आदेश-पंक्ति:</target>
@@ -345,9 +357,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>अपसर्जित अवरोध पता लगाया जा रहा है...</target>
-<source>Creating file %x</source>
-<target>फ़ाइल %x बनाई जा रही है</target>
-
<source>Saving file %x...</source>
<target>फ़ाइल %x सहेजी जा रही है...</target>
@@ -366,9 +375,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>%x के लिए निर्देशिका अवरोध सेट नहीं कर सकते।</target>
-<source>Scanning:</source>
-<target>स्कैनिंग:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Actual: %y bytes
<pluralform>%x थ्रेड्स</pluralform>
</target>
+<source>Scanning:</source>
+<target>स्कैनिंग:</target>
+
<source>/sec</source>
<target>/सेकंड</target>
@@ -451,7 +460,7 @@ Actual: %y bytes
<target>2. आदेश-पंक्ति प्रविष्ट करें।</target>
<source>3. Press 'Start'.</source>
-<target>3. 'प्रारंभ' दबाएं.</target>
+<target>3. 'प्रारंभ' दबाएं।</target>
<source>To get started just import a .ffs_batch file.</source>
<target>प्रारंभ करने के लिए केवल कोई .ffs_batch फ़ाइल आयात करें।</target>
@@ -488,8 +497,8 @@ The command is triggered if:
- नए फ़ोलडर्स आए (उदा. USB स्टिक डालने पर)
</target>
-<source>&Start</source>
-<target>प्रारंभ (&S)</target>
+<source>Start</source>
+<target>प्रारंभ</target>
<source>About</source>
<target>बारे में</target>
@@ -503,15 +512,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>स्वचालित सिंक्रनाइज़ेशन</target>
+<source>The following path does not support directory monitoring:</source>
+<target>निम्न पथ निर्देशिका निगरानी का समर्थन नहीं करता:</target>
+
<source>Directory monitoring active</source>
<target>निर्देशिका निगरानी सक्रिय</target>
<source>Waiting until all directories are available...</source>
<target>सब निर्देशिकाएँ उपलब्ध होने की प्रतिक्षा में...</target>
-<source>Error</source>
-<target>त्रुटि</target>
-
<source>&Restore</source>
<target>पुनर्स्थापित करें (&R)</target>
@@ -524,11 +533,14 @@ The command is triggered if:
<source>&Retry</source>
<target>पुनः प्रयास (&R)</target>
+<source>File time and size</source>
+<target>फ़ाइल समय और आकार</target>
+
<source>File content</source>
<target>फ़ाइल सामग्री</target>
-<source>File time and size</source>
-<target>फ़ाइल समय और आकार</target>
+<source>File size</source>
+<target>फ़ाइल आकार</target>
<source>Two way</source>
<target>दुतरफा</target>
@@ -557,12 +569,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>पुराने संस्करणों को हटाया जा रहा है...</target>
-<source>Creating symbolic link %x</source>
-<target>प्रतीकात्मक कड़ी %x बनाया जा रहा है</target>
-
-<source>Creating folder %x</source>
-<target>फ़ोल्डर %x बनाया हा रहा है</target>
-
<source>Updating file %x</source>
<target>फ़ाइल %x अद्यतित हो रही है</target>
@@ -680,30 +686,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>गंभीर त्रुटि</target>
-<source>Check for Program Updates</source>
-<target>प्रोग्राम अद्यतनों के लिए जाँच करें</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>FreeFileSync का नया संस्करण उपलब्ध है:</target>
-
-<source>Download now?</source>
-<target>अभी डाउनलोड करें?</target>
-
-<source>&Download</source>
-<target>डाउनलोड (&D)</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync नवीनतम है।</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>www.freefilesync.org से जुड़ने में असमर्थ।</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>वर्तमान FreeFileSync संस्करण संख्या ऑनलाइन नहीं मिल सकती. क्या आप मैन्युअल रूप से जाँच करना चाहते हैं?</target>
-
-<source>&Check</source>
-<target>जाँच करें (&C)</target>
-
<source>Symlink</source>
<target>सिमलिंक</target>
@@ -764,11 +746,20 @@ The command is triggered if:
<source>Paste</source>
<target>चिपकाएं</target>
-<source>Local Synchronization Settings</source>
-<target>स्थानीय सिंक्रनाइज़ेशन सेटिंग्स</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>चुनी निर्देशिका %x FreeFileSync के साथ उपयोग नहीं की जा सकती।</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>चुना फ़ोल्डर %x FreeFileSync के साथ प्रयोग नहीं किया जा सकता। कृपया स्थानीय फ़ाइल सिस्टम, नेट्वर्क या किसी MTP डिवाइस से फ़ोल्डर चुनें।</target>
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>स्थानीय फ़ाइल सिस्टम, नेटवर्क या MTP डिव्हाइस पर कोई निर्देशिका चुनें।</target>
+
+<source>SFTP folder</source>
+<target>SFTP फ़ोल्डर</target>
+
+<source>Select SFTP folder</source>
+<target>SFTP फ़ोल्डर चुनें</target>
+
+<source>Select alternative folder type</source>
+<target>वैकल्पिक फ़ोल्डर प्रकार चुनें</target>
<source>&New</source>
<target>नया (&N)</target>
@@ -797,8 +788,8 @@ The command is triggered if:
<source>&Actions</source>
<target>क्रियाएँ (&A)</target>
-<source>&Options</source>
-<target>विकल्प (&O)</target>
+<source>&Preferences</source>
+<target>प्राथमिकताएँ (&P)</target>
<source>&Language</source>
<target>भाषा (&L)</target>
@@ -839,9 +830,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>फ़ोल्डर जोडा निकालें</target>
-<source>Select SFTP folder</source>
-<target>SFTP फ़ोल्डर चुनें</target>
-
<source>Swap sides</source>
<target>पक्ष गमागम करें</target>
@@ -887,27 +875,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>कॉपी करने के लिए कुल बाइट्स</target>
+<source>Folder pair:</source>
+<target>फ़ोल्डर जोडा:</target>
+
<source>Use local settings:</source>
<target>स्थानीय सेटिंग्स का उपयोग करें:</target>
<source>Select a variant:</source>
<target>प्रकार चुने:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>समान फ़ाइल्स पहचानने के लिए संशोधन समय और आकार की तुलना करें।</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>समान फ़ाइल्स पहचानने के लिए फ़ाइल सामग्री की तुलना करें।</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>समय बदलाव (घंटों में) को अनदेखा करें (&I)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>निर्दिष्ट खसका में फ़ाइल समयों को समान समझें</target>
-
-<source>Handle daylight saving time</source>
-<target>दिवालोक बचत समय (डेलाईट सेविंग टाइम) प्रहस्तन करें</target>
-
<source>Include &symbolic links:</source>
<target>प्रतीकात्मक कड़ीयाँ शामिल करें (&s):</target>
@@ -920,6 +896,18 @@ The command is triggered if:
<source>More information</source>
<target>अधिक जानकारी</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>समय शिफ़्ट अनदेखा करें [hh:mm] (&I)</target>
+
+<source>List of file time offsets to ignore</source>
+<target>उपेक्षित फ़ाइल समय ऑफ़्सेट्स की सूची</target>
+
+<source>Example:</source>
+<target>उदाहरण:</target>
+
+<source>Handle daylight saving time</source>
+<target>दिवालोक बचत समय (डेलाईट सेविंग टाइम) प्रहस्तन करें</target>
+
<source>Local settings:</source>
<target>स्थानीय सेटिंग्स:</target>
@@ -1009,14 +997,17 @@ The command is triggered if:
<source>OK</source>
<target>ठीक</target>
+<source>Arrange folder pair</source>
+<target>फ़ोल्डर जोडा व्यवस्थित करें</target>
+
<source>Enter your SFTP login details:</source>
<target>आपके SFTP लॉगइन विवरण प्रविष्ट करें:</target>
<source>Server name or IP address:</source>
<target>सर्वर नाम या IP पता:</target>
-<source>Examples:</source>
-<target>उदाहरण:</target>
+<source>Port:</source>
+<target>पोर्ट:</target>
<source>User name:</source>
<target>उपयोगकर्ता नाम:</target>
@@ -1030,6 +1021,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>सर्वर पर निर्देशिका:</target>
+<source>Select a directory on the server:</source>
+<target>सर्वर पर कोई निर्देशिका चुनें:</target>
+
+<source>Select Folder</source>
+<target>फ़ोल्डर चुनें</target>
+
<source>Start synchronization now?</source>
<target>अब सिंक्रनाइज़ेशन शुरू करें?</target>
@@ -1039,9 +1036,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>यह संवाद बॉक्स दोबारा न दिखाएं (&D)</target>
-<source>Arrange folder pair</source>
-<target>फ़ोल्डर जोडा व्यवस्थित करें</target>
-
<source>Items found:</source>
<target>आइटम बरामद:</target>
@@ -1093,6 +1087,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>मैं कोई बॅच कार्य कैसे अनुसूचित करूँ?</target>
+<source>&Keep relative paths</source>
+<target>सापेक्ष पथों को बनाए रखें (&K)</target>
+
+<source>&Overwrite existing files</source>
+<target>मौजूद फ़ाइल्स अधिलेखित करें (&O)</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>सभी सिंक्रनाइज़ेशन कार्यों के लिए निम्न सेटिंग्स का उपयोग किया जाता है।</target>
@@ -1183,14 +1183,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>आइटम हटाएं</target>
+<source>Copy items</source>
+<target>आइटम्स प्रतिलिपित करें</target>
+
<source>Options</source>
<target>विकल्प</target>
<source>Select Time Span</source>
<target>समय अवधि चुनें</target>
-<source>&Preferences</source>
-<target>प्राथमिकताएँ (&P)</target>
+<source>&Options</source>
+<target>विकल्प (&O)</target>
<source>Main Bar</source>
<target>मुख्य पट्टी</target>
@@ -1210,6 +1213,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>अवलोकन</target>
+<source>&Download</source>
+<target>डाउनलोड (&D)</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>FreeFileSync का नया संस्करण उपलब्ध है:</target>
+
<source>Confirm</source>
<target>पुष्टि करें</target>
@@ -1270,8 +1279,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>अस्थायी रूप से अपवर्जित करें</target>
-<source>Delete</source>
-<target>हटाएं</target>
+<source>&Copy to...</source>
+<target>यहाँ प्रतिलिपित करें (&C)...</target>
+
+<source>&Delete</source>
+<target>हटाएं (&D)</target>
<source>Include all</source>
<target>सभी शामिल करें</target>
@@ -1321,9 +1333,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>सूचि से प्रविष्टि निकालें</target>
-<source>Synchronization Settings</source>
-<target>सिंक्रनाइज़ेशन सेटिंग्स</target>
-
<source>Clear filter</source>
<target>फ़िल्टर हटाएं</target>
@@ -1411,27 +1420,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>बंद करें</target>
+<source>Paused</source>
+<target>ठहरा</target>
+
+<source>Initializing...</source>
+<target>प्रारंभ हो रहा है...</target>
+
<source>Scanning...</source>
<target>स्कैनिंग...</target>
<source>Comparing content...</source>
<target>सामग्री की तुलना हो रही है...</target>
+<source>Completed</source>
+<target>पूर्ण हुआ</target>
+
<source>Info</source>
<target>जानकारी</target>
<source>Select all</source>
<target>सभी चुने</target>
-<source>Paused</source>
-<target>ठहरा</target>
-
-<source>Initializing...</source>
-<target>प्रारंभ हो रहा है...</target>
-
-<source>Completed</source>
-<target>पूर्ण हुआ</target>
-
<source>&Continue</source>
<target>जारी रखें (&C)</target>
@@ -1441,6 +1450,21 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>लॉग</target>
+<source>Loading...</source>
+<target>लोड हो रहा है...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>निम्न आइटम अन्य निर्देशिका में प्र्तिलिपित करें?</pluralform>
+<pluralform>निम्न %x आइटम्स अन्य निर्देशिका में प्र्तिलिपित करें?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>कृपया कोई गंतव्य निर्देशिका प्रविष्ट करें।</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>क्या आप वाकई निम्न %x आइटम्स हटाना चाहते हैं?</pluralform>
</target>
-<source>Preferences</source>
-<target>प्राथमिकताएँ</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>DACL, SACL, स्वामी, समूह प्रतिलिपित करें</target>
@@ -1489,6 +1510,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>दिखाएं (&S)</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>समान फ़ाइल्स पहचानने के लिए संशोधन समय और आकार की तुलना करें।</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>समान फ़ाइल्स पहचानने के लिए फ़ाइल सामग्री की तुलना करें।</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>समान फ़ाइल्स पहचानने के लिए फ़ाइल आकार की तुलना करें।</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>दोनों तरफ़ के परिवर्तन पहचानें और प्रसारित करें। हटाए गए, ले जाए गए और विरोधों का स्वचालित रूप से डेटाबेस के उपयोग से पता लगाया जाता है।</target>
@@ -1501,6 +1531,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>अपने खुद के सिंक्रनाइज़ेशन नियम कॉन्फ़िगर करें।</target>
+<source>Synchronization Settings</source>
+<target>सिंक्रनाइज़ेशन सेटिंग्स</target>
+
+<source>Comparison</source>
+<target>तुलना</target>
+
+<source>Synchronization</source>
+<target>सिंक्रनाइज़ेशन</target>
+
<source>Today</source>
<target>आज</target>
@@ -1537,11 +1576,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>प्रत्येक फ़ाइल नाम को समय मोहर जोडें</target>
-<source>Comparison</source>
-<target>तुलना</target>
+<source>Main config</source>
+<target>मुख्य कॉन्फ़िग</target>
-<source>Synchronization</source>
-<target>सिंक्रनाइज़ेशन</target>
+<source>empty</source>
+<target>रीता</target>
<source>Leave as unresolved conflict</source>
<target>हल नहीं किये गए विरोध के रूप में छोड़ दें</target>
@@ -1561,6 +1600,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>प्रतिशत</target>
+<source>Internet access failed.</source>
+<target>इंटरनेट पहुँच विफल।</target>
+
+<source>Check for Program Updates</source>
+<target>प्रोग्राम अद्यतनों के लिए जाँच करें</target>
+
+<source>Download now?</source>
+<target>अभी डाउनलोड करें?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync नवीनतम है।</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>www.freefilesync.org से जुड़ने में असमर्थ।</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>वर्तमान FreeFileSync संस्करण संख्या ऑनलाइन नहीं मिल सकती. क्या आप मैन्युअल रूप से जाँच करना चाहते हैं?</target>
+
+<source>&Check</source>
+<target>जाँच करें (&C)</target>
+
<source>Unable to register to receive system messages.</source>
<target>सिस्टम संदेशों को प्राप्त करने के लिए पंजीकृत करने में असमर्थ।</target>
@@ -1588,6 +1648,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>%x से %y अनुमतियां प्रतिलिपित नहीं कर सकते।</target>
+<source>%x is not a regular directory name.</source>
+<target>%x कोई नियमित निर्देशिका नाम नहीं है।</target>
+
<source>Cannot find system function %x.</source>
<target>सिस्टम फ़ंकशन %x ढूंढ नहीं सकते।</target>
@@ -1649,7 +1712,7 @@ This guarantees a consistent state even in case of a serious error.
<target>निम्न XML तत्वों को पढा नहीं जा सका:</target>
<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
-<target>कॉन्फ़िगरेशन फ़ाइल %x अधूरी है। गुम तत्व उनके डिफ़ॉल्ट मानों से सेट होंगे।</target>
+<target>कॉन्फ़िगरेशन फ़ाइल %x अधूरी है। लापता तत्व उनके डिफ़ॉल्ट मानों से सेट होंगे।</target>
<source>Prepare installation</source>
<target>स्थापना तैयारी</target>
@@ -1714,9 +1777,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync सिंक्रनाइज़ेशन डेटाबेस</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync कॉन्फ़िगरेशन</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync कॉन्फ़िगरेशन</target>
<source>Edit with FreeFileSync</source>
<target>FreeFileSync के साथ संपादित करें</target>
+<source>Thanks for your donation and support!</source>
+<target>आपके दान और समर्थन के लिए धन्यवाद!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>यह दाताओं का FreeFileSync installer अपनी स्थापना सीमा तक पहूँचा है। नियमित संस्करण FreeFileSync मुख प्र्ष्ठ से डाउनलोड करें?</target>
+
diff --git a/FreeFileSync/Build/Languages/hungarian.lng b/FreeFileSync/Build/Languages/hungarian.lng
index aedfeffd..82160fb3 100644
--- a/FreeFileSync/Build/Languages/hungarian.lng
+++ b/FreeFileSync/Build/Languages/hungarian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Alapértelmezett szinkronizálási irányok beállítása: a régebbi fájlokat írja felül az újabbakkal.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>A Lomtár elérhetőségének ellenőrzése %x könyvtár vonatkozásában...</target>
+<source>Creating folder %x</source>
+<target>%x könyvtár létrehozása</target>
+
+<source>Creating file %x</source>
+<target>%x fájl létrehozása</target>
+
+<source>Creating symbolic link %x</source>
+<target>%x szimbolikus hivatkozás létrehozása</target>
<source>Moving file %x to the recycle bin</source>
<target>%x fájlt a Lomtárba mozgatja</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>%x szimbolikus hivatkozás törlése</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>A Lomtár elérhetőségének ellenőrzése %x könyvtár vonatkozásában...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>A Lomtár nem elérhető a következő könyvtárak esetében. A fájlok ezért véglegesen törlődnek:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Nem található a %x fájl.</target>
+<source>Error</source>
+<target>Hiba</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>%x fájl nem tartalmaz érvényes beállításokat.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>A következő könyvtárak nem találhatóak:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Figyelmen kívül hagyhatod ezt a hibát, ezzel üresnek tekintve minden egyes könyvtárat. A könyvtárak ekkor automatikusan létrejönnek a szinkronizálás folyamán.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ha figyelmen kívül ezt a hibajelzést, a könyvtárak üresnek minősülnek. Az hiányzó könyvárak automatikusan jönnek létre ha szükséges.</target>
<source>A folder input field is empty.</source>
<target>A könyvtár beviteli mező üres.</target>
@@ -246,9 +258,6 @@ Jelenlegi: %y bájt
<source>Cannot find device %x.</source>
<target>%x eszköz nem található.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>%x-en nem lehet a szabad tárterületet meghatározni.</target>
-
<source>Cannot create directory %x.</source>
<target>%x könyvtár létrehozása nem sikerült.</target>
@@ -267,12 +276,15 @@ Jelenlegi: %y bájt
<source>Cannot resolve symbolic link %x.</source>
<target>%x szimbolikus hivatkozás feloldása nem sikerült.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>%x nem helyezhető a Lomtárba.</target>
-
<source>Cannot open directory %x.</source>
<target>%x könyvtár megnyitása nem sikerült.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>%x-en nem lehet a szabad tárterületet meghatározni.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>%x nem helyezhető a Lomtárba.</target>
+
<source>Incorrect command line:</source>
<target>Hibás parancssor:</target>
@@ -345,9 +357,6 @@ Jelenlegi: %y bájt
<source>Detecting abandoned lock...</source>
<target>Elhagyott zárolást érzékel...</target>
-<source>Creating file %x</source>
-<target>%x fájl létrehozása</target>
-
<source>Saving file %x...</source>
<target>%x fájl mentése...</target>
@@ -358,7 +367,7 @@ Jelenlegi: %y bájt
<target>Hátralévő elemek száma:</target>
<source>Total time:</source>
-<target>Összes időszükségelet:</target>
+<target>Összes időszükséglet:</target>
<source>Error parsing file %x, row %y, column %z.</source>
<target>Hiba történt a feldolgozás közben: %x fájl, %y sor, %z oszlop.</target>
@@ -366,9 +375,6 @@ Jelenlegi: %y bájt
<source>Cannot set directory lock for %x.</source>
<target>Nem sikerült zárolni a(z) %x könyvtárat.</target>
-<source>Scanning:</source>
-<target>Vizsgálat:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Jelenlegi: %y bájt
<pluralform>%x szál</pluralform>
</target>
+<source>Scanning:</source>
+<target>Vizsgálat:</target>
+
<source>/sec</source>
<target>/másodperc</target>
@@ -488,8 +497,8 @@ A parancs végrehajtódik, ha:
- új könyvtárak jelennek meg (pl. USB-kulcs csatlakoztatása)
</target>
-<source>&Start</source>
-<target>&Start</target>
+<source>Start</source>
+<target>Indítás</target>
<source>About</source>
<target>A programról</target>
@@ -503,15 +512,15 @@ A parancs végrehajtódik, ha:
<source>Automated Synchronization</source>
<target>Automatizált szinkronizálás</target>
+<source>The following path does not support directory monitoring:</source>
+<target>A következő útvonal nem támogatja a könyvtár-monitorozást:</target>
+
<source>Directory monitoring active</source>
<target>A könyvtár figyelés aktív</target>
<source>Waiting until all directories are available...</source>
<target>Várakozik, amíg az összes könyvtár elérhetővé válik...</target>
-<source>Error</source>
-<target>Hiba</target>
-
<source>&Restore</source>
<target>&Visszaállít</target>
@@ -524,11 +533,14 @@ A parancs végrehajtódik, ha:
<source>&Retry</source>
<target>&Ismét</target>
+<source>File time and size</source>
+<target>Fájl dátuma és mérete</target>
+
<source>File content</source>
<target>Fájl tartalma</target>
-<source>File time and size</source>
-<target>Fájl dátuma és mérete</target>
+<source>File size</source>
+<target>Fájl mérete</target>
<source>Two way</source>
<target>Kétirányú</target>
@@ -557,12 +569,6 @@ A parancs végrehajtódik, ha:
<source>Removing old versions...</source>
<target>Régi verziók eltávolítása...</target>
-<source>Creating symbolic link %x</source>
-<target>%x szimbolikus hivatkozás létrehozása</target>
-
-<source>Creating folder %x</source>
-<target>%x könyvtár létrehozása</target>
-
<source>Updating file %x</source>
<target>%x fájl frissítése</target>
@@ -680,30 +686,6 @@ A parancs végrehajtódik, ha:
<source>Serious Error</source>
<target>Komoly hiba</target>
-<source>Check for Program Updates</source>
-<target>Program-frissítések ellenőrzése</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Elérhető a FreeFileSync új verziója:</target>
-
-<source>Download now?</source>
-<target>Letöltsem most?</target>
-
-<source>&Download</source>
-<target>&Letölt</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>A FreeFileSync naprakész.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Nem lehet csatlakozni a www.freefilesync.org-hoz.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Nem lehet online megtalálni a jelenlegi FreeFileSync verziószámot. Meg akarod keresni manuálisan?</target>
-
-<source>&Check</source>
-<target>&Ellenőriz</target>
-
<source>Symlink</source>
<target>Symlink</target>
@@ -764,11 +746,20 @@ A parancs végrehajtódik, ha:
<source>Paste</source>
<target>Beilleszt</target>
-<source>Local Synchronization Settings</source>
-<target>Helyi Szinkronizálási Beállítások</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>A kiválasztott %x könyvtárat nem lehet a FreeFileSync-kel használni.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Kérem válasszon egy könyvtárat a helyi fájlrendszerben, a hálózaton vagy egy MTP eszközön.</target>
+
+<source>SFTP folder</source>
+<target>SFTP könyvtár</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>A választott %x könyvtárat nem lehet a FreeFileSyc-kel használni. Válasszon egy könyvtárat a helyi fájlrendszerben, hálózaton vagy egy MTP-t használó eszközön.</target>
+<source>Select SFTP folder</source>
+<target>Válasszon SFTP könyvtárat</target>
+
+<source>Select alternative folder type</source>
+<target>Válasszon alternatív könyvtár-típust</target>
<source>&New</source>
<target>&Új</target>
@@ -797,8 +788,8 @@ A parancs végrehajtódik, ha:
<source>&Actions</source>
<target>&Műveletek</target>
-<source>&Options</source>
-<target>&Beállítások</target>
+<source>&Preferences</source>
+<target>&Preferenciák</target>
<source>&Language</source>
<target>&Nyelv</target>
@@ -839,9 +830,6 @@ A parancs végrehajtódik, ha:
<source>Remove folder pair</source>
<target>Távolítsa el a könyvtár-párt</target>
-<source>Select SFTP folder</source>
-<target>Válassza ki az SFTP könyvtárat</target>
-
<source>Swap sides</source>
<target>Cserélje fel az oldalakat</target>
@@ -887,27 +875,15 @@ A parancs végrehajtódik, ha:
<source>Total bytes to copy</source>
<target>Összesen másolandó bájtok</target>
+<source>Folder pair:</source>
+<target>Könyvtár-pár:</target>
+
<source>Use local settings:</source>
<target>Használja a helyi beállításokat:</target>
<source>Select a variant:</source>
<target>Válasszon egy változatot:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Módosítási idő és méret összehasonlítása alapján azonosítsa az azonos fájlokat.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Tartalom összehasonlítása alapján azonosítsa az azonos fájlokat.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>Óra időeltolást hagyjon f&igyelmen kívül</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>A meghatározott eltolású fájlidőket egyenlőnek tekinti</target>
-
-<source>Handle daylight saving time</source>
-<target>Kezelje a nyári időszámítás különbségét</target>
-
<source>Include &symbolic links:</source>
<target>Tartalmazza a &szimbolikus linkeket:</target>
@@ -920,6 +896,18 @@ A parancs végrehajtódik, ha:
<source>More information</source>
<target>További információ</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>Hagyja figyelmen kívül az &időeltolódást [óó:pp]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>A figyelmen kívül hagyandó fájl időpont-eltolások listája</target>
+
+<source>Example:</source>
+<target>Példa:</target>
+
+<source>Handle daylight saving time</source>
+<target>Kezelje a nyári időszámítás különbségét</target>
+
<source>Local settings:</source>
<target>Helyi beállítások:</target>
@@ -1009,14 +997,17 @@ A parancs végrehajtódik, ha:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Rendezze a könyvtár-párt</target>
+
<source>Enter your SFTP login details:</source>
<target>Adja meg SFTP bejelentkezésének részletei:</target>
<source>Server name or IP address:</source>
<target>Szerver neve vagy IP címe:</target>
-<source>Examples:</source>
-<target>Példák:</target>
+<source>Port:</source>
+<target>Port:</target>
<source>User name:</source>
<target>Felhasználó név:</target>
@@ -1030,6 +1021,12 @@ A parancs végrehajtódik, ha:
<source>Directory on server:</source>
<target>Könyvtár az alábbi szerveren:</target>
+<source>Select a directory on the server:</source>
+<target>Válasszon egy könyvtárat szerveren:</target>
+
+<source>Select Folder</source>
+<target>Könyvtár kiválasztása</target>
+
<source>Start synchronization now?</source>
<target>Megkezdje a szinkronizálást?</target>
@@ -1039,9 +1036,6 @@ A parancs végrehajtódik, ha:
<source>&Don't show this dialog again</source>
<target>&Ne mutassa ismételten ezt a párbeszédablakot</target>
-<source>Arrange folder pair</source>
-<target>Rendezze a könyvtár-párt</target>
-
<source>Items found:</source>
<target>Talált elemek száma:</target>
@@ -1093,6 +1087,12 @@ A parancs végrehajtódik, ha:
<source>How can I schedule a batch job?</source>
<target>Hogyan tudok kötegelt feldolgozást ütemezni?</target>
+<source>&Keep relative paths</source>
+<target>&Tartsa meg a relatív útvonalat</target>
+
+<source>&Overwrite existing files</source>
+<target>&Felülírja a létező fájlokat</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>A következő beállítások minden szinkronizálási feladatnál használja.</target>
@@ -1183,14 +1183,17 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Delete Items</source>
<target>Törölje az elemeket</target>
+<source>Copy items</source>
+<target>Másolja az elemeket</target>
+
<source>Options</source>
<target>Beállítások</target>
<source>Select Time Span</source>
<target>Válassza ki az idősávot (időtartamot)</target>
-<source>&Preferences</source>
-<target>&Preferenciák</target>
+<source>&Options</source>
+<target>&Beállítások</target>
<source>Main Bar</source>
<target>Fő sáv</target>
@@ -1210,6 +1213,12 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Overview</source>
<target>Áttekintés</target>
+<source>&Download</source>
+<target>&Letölt</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Elérhető a FreeFileSync új verziója:</target>
+
<source>Confirm</source>
<target>Jóváhagy</target>
@@ -1270,8 +1279,11 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Exclude temporarily</source>
<target>Zárja ki ideiglenesen</target>
-<source>Delete</source>
-<target>Töröl</target>
+<source>&Copy to...</source>
+<target>&Másolja oda...</target>
+
+<source>&Delete</source>
+<target>&Törölje</target>
<source>Include all</source>
<target>Csatolja az összest</target>
@@ -1321,9 +1333,6 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Remove entry from list</source>
<target>Törölje a bejegyzést a listáról</target>
-<source>Synchronization Settings</source>
-<target>Szinkronizálási beállítások</target>
-
<source>Clear filter</source>
<target>Törölje a szűrőt</target>
@@ -1411,27 +1420,27 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Shut down</source>
<target>Leállítja a gépet</target>
+<source>Paused</source>
+<target>Megállítva</target>
+
+<source>Initializing...</source>
+<target>Inicializálás...</target>
+
<source>Scanning...</source>
<target>Vizsgálat folyamatban...</target>
<source>Comparing content...</source>
<target>Tartalom összehasonlítása...</target>
+<source>Completed</source>
+<target>Befejeződött</target>
+
<source>Info</source>
<target>Információ</target>
<source>Select all</source>
<target>Összeset kiválasztja</target>
-<source>Paused</source>
-<target>Megállítva</target>
-
-<source>Initializing...</source>
-<target>Inicializálás...</target>
-
-<source>Completed</source>
-<target>Befejeződött</target>
-
<source>&Continue</source>
<target>&Folytat</target>
@@ -1441,6 +1450,21 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Log</source>
<target>Napló</target>
+<source>Loading...</source>
+<target>Tölti...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Másolja a következő elemet egy másik könyvtárba?</pluralform>
+<pluralform>Másolja a következő %x elemet egy másik könyvtárba?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Adja meg a célkönyvárat.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<pluralform>Valóban törölni akarod a következő %x elemet?</pluralform>
</target>
-<source>Preferences</source>
-<target>Beállítások</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Másolja át DACL-t, SACL-t, tulajdonost és csoportot</target>
@@ -1489,6 +1510,15 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>&Show</source>
<target>&Mutat</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Módosítási idő és méret összehasonlítása alapján azonosítsa az azonos fájlokat.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Tartalom összehasonlítása alapján azonosítsa az azonos fájlokat.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>A fájlméret összehasonlítása alapján azonosítsa az azonos fájlokat.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Változások keresése és bemutatása mindkét oldalon. A törléseket, mozgatásokat és ütközéseket automatikusan ismeri fel egy adatbázis segítségével.</target>
@@ -1501,6 +1531,15 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Configure your own synchronization rules.</source>
<target>Állítsa be a saját szinkronizálási szabályait.</target>
+<source>Synchronization Settings</source>
+<target>Szinkronizálási beállítások</target>
+
+<source>Comparison</source>
+<target>Összehasonlítás</target>
+
+<source>Synchronization</source>
+<target>Szinkronizálás</target>
+
<source>Today</source>
<target>Mai</target>
@@ -1537,11 +1576,11 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Append a time stamp to each file name</source>
<target>Minden fájlnévhez adjon egy-egy időbélyeget</target>
-<source>Comparison</source>
-<target>Összehasonlítás</target>
+<source>Main config</source>
+<target>Alapbeállítások</target>
-<source>Synchronization</source>
-<target>Szinkronizálás</target>
+<source>empty</source>
+<target>üres</target>
<source>Leave as unresolved conflict</source>
<target>Hagyja feloldatlan ütközésként</target>
@@ -1561,6 +1600,27 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Percentage</source>
<target>Százalék</target>
+<source>Internet access failed.</source>
+<target>Nem sikerült az internet hozzáférés.</target>
+
+<source>Check for Program Updates</source>
+<target>Program-frissítések ellenőrzése</target>
+
+<source>Download now?</source>
+<target>Letöltsem most?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>A FreeFileSync naprakész.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Nem lehet csatlakozni a www.freefilesync.org-hoz.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Nem lehet online megtalálni a jelenlegi FreeFileSync verziószámot. Meg akarod keresni manuálisan?</target>
+
+<source>&Check</source>
+<target>&Ellenőriz</target>
+
<source>Unable to register to receive system messages.</source>
<target>Nem tud regisztrálni hogy megkapja a rendszerüzeneteket.</target>
@@ -1588,6 +1648,9 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Cannot copy permissions from %x to %y.</source>
<target>Nem lehet az jogosultságokat %x-ből %y-ba másolni.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x nem megfelelő könyvtárnév.</target>
+
<source>Cannot find system function %x.</source>
<target>%x rendszerfunkció nem elérhető.</target>
@@ -1714,9 +1777,15 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync szinkronizációs adatbázis</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync konfigurálása</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync konfigurálása</target>
<source>Edit with FreeFileSync</source>
<target>Szerkesztés FreeFileSync-kel</target>
+<source>Thanks for your donation and support!</source>
+<target>Köszönöm az adományt és támogatást!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Ez az adományozók számára biztosított FreeFileSync telepítőcsomag elérte a megengedett telepítési számot. Letöltse most a normál verziót a FreeFileSync honlapjáról?</target>
+
diff --git a/FreeFileSync/Build/Languages/italian.lng b/FreeFileSync/Build/Languages/italian.lng
index 3542ee7e..8c795b67 100644
--- a/FreeFileSync/Build/Languages/italian.lng
+++ b/FreeFileSync/Build/Languages/italian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Imposta le direzioni di sincronizzazione predefinite: i vecchi file saranno sovrascritti dai nuovi.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Controllo di disponibilità Cestino per la cartella %x...</target>
+<source>Creating folder %x</source>
+<target>Creazione cartella %x</target>
+
+<source>Creating file %x</source>
+<target>Creazione file %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Creazione collegamento %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Spostamento file %x nel cestino</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Eliminazione collegamento %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Controllo di disponibilità Cestino per la cartella %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Il cestino non è disponibile per le seguenti cartelle. I file verranno invece eliminati in modo permanente:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Impossibile trovare il file %x.</target>
+<source>Error</source>
+<target>Errore</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Il file %x non contiene una configurazione valida.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Impossibile trovare le seguenti cartelle:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>È possibile ignorare questo errore che considera ogni cartella come vuota. Le cartelle poi verranno create automaticamente durante la sincronizzazione.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Se si ignora questo errore le cartelle saranno considerate vuote. Le cartelle mancanti vengono create automaticamente quando necessario.</target>
<source>A folder input field is empty.</source>
<target>Un campo di input cartella è vuoto.</target>
@@ -246,9 +258,6 @@ Attuale: %y byte
<source>Cannot find device %x.</source>
<target>Impossibile trovare dispositivo %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Impossibile determinare lo spazio libero su disco per %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Impossibile creare la cartella %x.</target>
@@ -267,12 +276,15 @@ Attuale: %y byte
<source>Cannot resolve symbolic link %x.</source>
<target>Impossibile risolvere collegamento %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Impossibile spostare %x nel cestino.</target>
-
<source>Cannot open directory %x.</source>
<target>Impossibile aprire la cartella %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Impossibile determinare lo spazio libero su disco per %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Impossibile spostare %x nel cestino.</target>
+
<source>Incorrect command line:</source>
<target>Linea di comando non corretta:</target>
@@ -345,9 +357,6 @@ Attuale: %y byte
<source>Detecting abandoned lock...</source>
<target>Rilevamento blocco abbandonato ...</target>
-<source>Creating file %x</source>
-<target>Creazione file %x</target>
-
<source>Saving file %x...</source>
<target>Salvare il file %x...</target>
@@ -366,9 +375,6 @@ Attuale: %y byte
<source>Cannot set directory lock for %x.</source>
<target>Impossibile impostare il blocco cartella per %x.</target>
-<source>Scanning:</source>
-<target>Scansione di:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Attuale: %y byte
<pluralform>%x thread</pluralform>
</target>
+<source>Scanning:</source>
+<target>Scansione di:</target>
+
<source>/sec</source>
<target>/sec</target>
@@ -472,7 +481,7 @@ Attuale: %y byte
<target>Tempo di inattività (in secondi):</target>
<source>Idle time between last detected change and execution of command</source>
-<target>Tempo di attesa tra ultimo cambiamento rilevato ed l'esecuzione del comando</target>
+<target>Tempo di attesa tra ultimo cambiamento rilevato e l'esecuzione del comando</target>
<source>Command line:</source>
<target>Riga di comando:</target>
@@ -488,8 +497,8 @@ Il comando è attivato se:
- nuove cartelle vengono aggiunte (es. inserimento di memoria USB)
</target>
-<source>&Start</source>
-<target>&Avvio</target>
+<source>Start</source>
+<target>Avviare</target>
<source>About</source>
<target>Info su</target>
@@ -503,15 +512,15 @@ Il comando è attivato se:
<source>Automated Synchronization</source>
<target>Sincronizzazione automatizzata</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Il seguente percorso non supporta il Monitoraggio Cartella:</target>
+
<source>Directory monitoring active</source>
<target>Monitoraggio Cartella attivo</target>
<source>Waiting until all directories are available...</source>
<target>Attendere finchè tutte le cartelle diventano disponibili...</target>
-<source>Error</source>
-<target>Errore</target>
-
<source>&Restore</source>
<target>&Ripristina</target>
@@ -524,11 +533,14 @@ Il comando è attivato se:
<source>&Retry</source>
<target>&Riprova</target>
+<source>File time and size</source>
+<target>Ora e dimensione file</target>
+
<source>File content</source>
<target>Contenuto del file</target>
-<source>File time and size</source>
-<target>Ora e dimensione file</target>
+<source>File size</source>
+<target>Dimensione del file</target>
<source>Two way</source>
<target>Due vie</target>
@@ -557,12 +569,6 @@ Il comando è attivato se:
<source>Removing old versions...</source>
<target>Rimozione di vecchie versioni...</target>
-<source>Creating symbolic link %x</source>
-<target>Creazione collegamento %x</target>
-
-<source>Creating folder %x</source>
-<target>Creazione cartella %x</target>
-
<source>Updating file %x</source>
<target>Aggiornamento file %x</target>
@@ -680,30 +686,6 @@ Il comando è attivato se:
<source>Serious Error</source>
<target>Errore Grave</target>
-<source>Check for Program Updates</source>
-<target>Controlla Aggiornamenti del Programma</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>E' disponibile una nuova versione di FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>Scaricarla ora?</target>
-
-<source>&Download</source>
-<target>&Scaricare</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync è aggiornato.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Impossibile connettersi al www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Non riesci a trovare l'attuale numero di versione di FreeFileSync on-line. Vuoi controllare manualmente?</target>
-
-<source>&Check</source>
-<target>&Controllare</target>
-
<source>Symlink</source>
<target>Symlink</target>
@@ -764,11 +746,20 @@ Il comando è attivato se:
<source>Paste</source>
<target>Incolla</target>
-<source>Local Synchronization Settings</source>
-<target>Impostazioni di sincronizzazione locale</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>La cartella selezionata %x non può essere utilizzata con FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Si prega di selezionare una cartella su un file system locale, di rete o un dispositivo MTP.</target>
+
+<source>SFTP folder</source>
+<target>Cartella SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Selezionare la cartella SFTP</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>La cartella selezionata %x non può essere utilizzata con FreeFileSync. Si prega di selezionare una cartella su un file system locale, di rete o un dispositivo MTP.</target>
+<source>Select alternative folder type</source>
+<target>Selezionare tipo di cartella alternativa</target>
<source>&New</source>
<target>&Nuovo</target>
@@ -797,8 +788,8 @@ Il comando è attivato se:
<source>&Actions</source>
<target>&Azioni</target>
-<source>&Options</source>
-<target>&Opzioni</target>
+<source>&Preferences</source>
+<target>&Preferenze</target>
<source>&Language</source>
<target>&Lingua</target>
@@ -839,9 +830,6 @@ Il comando è attivato se:
<source>Remove folder pair</source>
<target>Elimina la coppia di cartelle</target>
-<source>Select SFTP folder</source>
-<target>Selezionare la cartella SFTP</target>
-
<source>Swap sides</source>
<target>Inverti i lati</target>
@@ -887,27 +875,15 @@ Il comando è attivato se:
<source>Total bytes to copy</source>
<target>Bytes totali da copiare</target>
+<source>Folder pair:</source>
+<target>Coppia di cartelle:</target>
+
<source>Use local settings:</source>
<target>Utilizza impostazioni locali:</target>
<source>Select a variant:</source>
<target>Scegli una variante:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Identificare i file uguali confrontando data di modifica e dimensione.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Identificare i file uguali confrontando il contenuto del file.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignora tempo di spostamento (in ore)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Considerare i tempi dei file con specifico offset o uguale</target>
-
-<source>Handle daylight saving time</source>
-<target>Maneggiare l'ora legale</target>
-
<source>Include &symbolic links:</source>
<target>Includere collegamenti &simbolici:</target>
@@ -920,6 +896,18 @@ Il comando è attivato se:
<source>More information</source>
<target>Maggiori informazioni</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignora tempo spostamento [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Elenco delle compensazioni del tempo file da ignorare</target>
+
+<source>Example:</source>
+<target>Esempio:</target>
+
+<source>Handle daylight saving time</source>
+<target>Maneggiare l'ora legale</target>
+
<source>Local settings:</source>
<target>Impostazioni Locali:</target>
@@ -1009,14 +997,17 @@ Il comando è attivato se:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Disporre coppia di cartelle</target>
+
<source>Enter your SFTP login details:</source>
<target>Inserisci i tuoi dati d'accesso SFTP:</target>
<source>Server name or IP address:</source>
<target>Nome server o indirizzo IP:</target>
-<source>Examples:</source>
-<target>Esempi:</target>
+<source>Port:</source>
+<target>Porta:</target>
<source>User name:</source>
<target>Nome utente:</target>
@@ -1030,6 +1021,12 @@ Il comando è attivato se:
<source>Directory on server:</source>
<target>Directory su server:</target>
+<source>Select a directory on the server:</source>
+<target>Selezionare una directory sul server:</target>
+
+<source>Select Folder</source>
+<target>Seleziona cartella</target>
+
<source>Start synchronization now?</source>
<target>Avviare la sincronizzazione ora?</target>
@@ -1039,9 +1036,6 @@ Il comando è attivato se:
<source>&Don't show this dialog again</source>
<target>&Non mostrare più questo avviso</target>
-<source>Arrange folder pair</source>
-<target>Disporre coppia di cartelle</target>
-
<source>Items found:</source>
<target>Oggetti trovati:</target>
@@ -1093,6 +1087,12 @@ Il comando è attivato se:
<source>How can I schedule a batch job?</source>
<target>Come posso programmare un lavoro batch?</target>
+<source>&Keep relative paths</source>
+<target>&Mantenere percorsi relativi</target>
+
+<source>&Overwrite existing files</source>
+<target>&Sovrascrivere i file esistenti</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Le seguenti impostazioni vengono utilizzate per tutti i processi di sincronizzazione.</target>
@@ -1183,14 +1183,17 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Delete Items</source>
<target>Elimina Elementi</target>
+<source>Copy items</source>
+<target>Copia elementi</target>
+
<source>Options</source>
<target>Opzioni</target>
<source>Select Time Span</source>
<target>Selezionare Intervallo di Tempo</target>
-<source>&Preferences</source>
-<target>&Preferenze</target>
+<source>&Options</source>
+<target>&Opzioni</target>
<source>Main Bar</source>
<target>Barra Principale</target>
@@ -1210,6 +1213,12 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Overview</source>
<target>Anteprima</target>
+<source>&Download</source>
+<target>&Scaricare</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>E' disponibile una nuova versione di FreeFileSync:</target>
+
<source>Confirm</source>
<target>Confermare</target>
@@ -1270,8 +1279,11 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Exclude temporarily</source>
<target>Escludi temporaneamente</target>
-<source>Delete</source>
-<target>Elimina</target>
+<source>&Copy to...</source>
+<target>&Copia in...</target>
+
+<source>&Delete</source>
+<target>&Cancellare</target>
<source>Include all</source>
<target>Includi tutto</target>
@@ -1321,9 +1333,6 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Remove entry from list</source>
<target>Togliere voce dalla lista</target>
-<source>Synchronization Settings</source>
-<target>Impostazioni di Sincronizzazione</target>
-
<source>Clear filter</source>
<target>Eliminare filtro</target>
@@ -1411,27 +1420,27 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Shut down</source>
<target>Arresta</target>
+<source>Paused</source>
+<target>In pausa</target>
+
+<source>Initializing...</source>
+<target>Inizializzazione...</target>
+
<source>Scanning...</source>
<target>Scansione...</target>
<source>Comparing content...</source>
<target>Comparazione del contenuto...</target>
+<source>Completed</source>
+<target>Completato</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Seleziona tutto</target>
-<source>Paused</source>
-<target>In pausa</target>
-
-<source>Initializing...</source>
-<target>Inizializzazione...</target>
-
-<source>Completed</source>
-<target>Completato</target>
-
<source>&Continue</source>
<target>&Continuare</target>
@@ -1441,6 +1450,21 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Log</source>
<target>Log</target>
+<source>Loading...</source>
+<target>Caricamento...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Copiare il seguente elemento in un'altra cartella?</pluralform>
+<pluralform>Copiare i seguenti elementi %x in un'altra cartella?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Si prega di inserire una cartella di destinazione.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<pluralform>Vuoi davvero eliminare i seguenti %x oggetti?</pluralform>
</target>
-<source>Preferences</source>
-<target>Preferenze</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Copia DACL, SACL, Proprietario, Gruppo</target>
@@ -1489,6 +1510,15 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>&Show</source>
<target>&Mostra</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Identificare i file uguali confrontando data di modifica e dimensione.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Identificare i file uguali confrontando il contenuto del file.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identificare i file uguali confrontando le dimensioni del file.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identifica e propaga cambiamenti su entrambi i lati. Cancellazioni, spostamenti e conflitti sono identificati automaticamente usando un database.</target>
@@ -1501,6 +1531,15 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Configure your own synchronization rules.</source>
<target>Configura le tue regole di sincronizzazione.</target>
+<source>Synchronization Settings</source>
+<target>Impostazioni di Sincronizzazione</target>
+
+<source>Comparison</source>
+<target>Confronto</target>
+
+<source>Synchronization</source>
+<target>Sincronizzazione</target>
+
<source>Today</source>
<target>Oggi</target>
@@ -1537,11 +1576,11 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Append a time stamp to each file name</source>
<target>Aggiunge un'impronta per ogni nome di file</target>
-<source>Comparison</source>
-<target>Confronto</target>
+<source>Main config</source>
+<target>Config principale</target>
-<source>Synchronization</source>
-<target>Sincronizzazione</target>
+<source>empty</source>
+<target>vuoto</target>
<source>Leave as unresolved conflict</source>
<target>Lascia come conflitti irrisolti</target>
@@ -1561,6 +1600,27 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Percentage</source>
<target>Percentuale</target>
+<source>Internet access failed.</source>
+<target>L'accesso a Internet non è riuscito.</target>
+
+<source>Check for Program Updates</source>
+<target>Controlla Aggiornamenti del Programma</target>
+
+<source>Download now?</source>
+<target>Scaricarla ora?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync è aggiornato.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Impossibile connettersi al www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Non riesci a trovare l'attuale numero di versione di FreeFileSync on-line. Vuoi controllare manualmente?</target>
+
+<source>&Check</source>
+<target>&Controllare</target>
+
<source>Unable to register to receive system messages.</source>
<target>Impossibile registrarsi per ricevere i messaggi di sistema.</target>
@@ -1588,6 +1648,9 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Cannot copy permissions from %x to %y.</source>
<target>Non è possibile copiare i permessi da %x per %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x non è un nome di directory normale.</target>
+
<source>Cannot find system function %x.</source>
<target>Impossibile trovare la funzione di sistema %x.</target>
@@ -1714,9 +1777,15 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>FreeFileSync Synchronization Database</source>
<target>Database sincronizzazione FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Configurazione RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Configurazione RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Modifica con FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Grazie per la vostra donazione e il supporto!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Questo programma di installazione di FreeFileSync per i donatori ha raggiunto il suo limite di utilizzo. Scarica la versione normale dalla homepage FreeFileSync ora?</target>
+
diff --git a/FreeFileSync/Build/Languages/japanese.lng b/FreeFileSync/Build/Languages/japanese.lng
index 60a08657..a6174dec 100644
--- a/FreeFileSync/Build/Languages/japanese.lng
+++ b/FreeFileSync/Build/Languages/japanese.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>同期方向のデフォルト設定: 古いファイルに新しいファイルを上書き.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>フォルダ %x をゴミ箱として使用できるかを確認中...</target>
+<source>Creating folder %x</source>
+<target>フォルダ %x を作成中</target>
+
+<source>Creating file %x</source>
+<target>ファイル %x を作成中</target>
+
+<source>Creating symbolic link %x</source>
+<target>シンボリックリンク %x を作成中</target>
<source>Moving file %x to the recycle bin</source>
<target>ファイル %x をゴミ箱に移動中</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>シンボリックリンク %x を削除中</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>フォルダ %x をゴミ箱として使用できるかを確認中...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>以下のフォルダではゴミ箱を利用できません。代替手段としてファイルの完全削除を利用することが出来ます:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>ファイル %x がみつかりません.</target>
+<source>Error</source>
+<target>エラー</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>ファイル %x には有効な構成が含まれていません.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>以下のフォルダがみつかりません:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>各フォルダを空とみなす場合はこのエラーを無視することができます。このフォルダは、同期処理を実行する際自動的に作成されるものです。</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>このエラーを無視した場合、空のフォルダが考慮され、必要に応じて不足しているフォルダが自動的に生成されます。</target>
<source>A folder input field is empty.</source>
<target>フォルダ入力欄が空白です.</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>デバイス %x がみつかりません.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>%x の空きディスク領域を検出できません.</target>
-
<source>Cannot create directory %x.</source>
<target>ディレクトリ %x を作成できません.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>シンボリックリンク %x を解決できません.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>%x をゴミ箱に移動できません.</target>
-
<source>Cannot open directory %x.</source>
<target>ディレクトリ %x を開けません.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>%x の空きディスク領域を検出できません.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>%x をゴミ箱に移動できません.</target>
+
<source>Incorrect command line:</source>
<target>不正なコマンドライン:</target>
@@ -343,9 +355,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>放棄されたロックを検出中...</target>
-<source>Creating file %x</source>
-<target>ファイル %x を作成中</target>
-
<source>Saving file %x...</source>
<target>ファイル %x を保存中...</target>
@@ -364,9 +373,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>%x のディレクトリロックができません.</target>
-<source>Scanning:</source>
-<target>スキャン:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -375,6 +381,9 @@ Actual: %y bytes
<pluralform>%x スレッド</pluralform>
</target>
+<source>Scanning:</source>
+<target>スキャン:</target>
+
<source>/sec</source>
<target>/秒</target>
@@ -485,8 +494,8 @@ The command is triggered if:
- 新規フォルダの追加 (例. USB の挿入)
</target>
-<source>&Start</source>
-<target>開始(&S)</target>
+<source>Start</source>
+<target>開始</target>
<source>About</source>
<target>情報</target>
@@ -500,15 +509,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>自動同期</target>
+<source>The following path does not support directory monitoring:</source>
+<target>次のパスは、ディレクトリの監視に対応していません:</target>
+
<source>Directory monitoring active</source>
<target>ディレクトリの監視アクティブ</target>
<source>Waiting until all directories are available...</source>
<target>全ディレクトリが利用可能になるまで待機中...</target>
-<source>Error</source>
-<target>エラー</target>
-
<source>&Restore</source>
<target>修復(&R)</target>
@@ -521,11 +530,14 @@ The command is triggered if:
<source>&Retry</source>
<target>再試行(&R)</target>
+<source>File time and size</source>
+<target>ファイル時刻とサイズ</target>
+
<source>File content</source>
<target>ファイルの内容</target>
-<source>File time and size</source>
-<target>ファイル時刻とサイズ</target>
+<source>File size</source>
+<target>ファイルサイズ</target>
<source>Two way</source>
<target>両方向</target>
@@ -554,12 +566,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>旧バージョンを除去中...</target>
-<source>Creating symbolic link %x</source>
-<target>シンボリックリンク %x を作成中</target>
-
-<source>Creating folder %x</source>
-<target>フォルダ %x を作成中</target>
-
<source>Updating file %x</source>
<target>ファイル %x を更新中</target>
@@ -676,30 +682,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>重大なエラー</target>
-<source>Check for Program Updates</source>
-<target>プログラムのアップデートを確認</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>FreeFileSync の新しいバージョンが利用できます:</target>
-
-<source>Download now?</source>
-<target>ダウンロードしますか?</target>
-
-<source>&Download</source>
-<target>ダウンロード(&D)</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync は最新です.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>www.freefilesync.org に接続できません.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>現在の FreeFileSync バージョン番号を確認できませんでした、手動で確認しますか?</target>
-
-<source>&Check</source>
-<target>チェック(&C)</target>
-
<source>Symlink</source>
<target>Symリンク</target>
@@ -760,11 +742,20 @@ The command is triggered if:
<source>Paste</source>
<target>貼り付け</target>
-<source>Local Synchronization Settings</source>
-<target>ローカルの同期設定</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>選択したフォルダ %x は FreeFileSync で使用できません。</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>ローカルファイルシステム、ネットワークまたは MTP デバイス上のフォルダを選択.</target>
+
+<source>SFTP folder</source>
+<target>SFTP フォルダ</target>
+
+<source>Select SFTP folder</source>
+<target>SFTPフォルダを選択</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>選択したフォルダ %x は、FreeFileSync で使用できません。ローカルファイルシステム、ネットワークまたは MTP デバイス上で選択してください.</target>
+<source>Select alternative folder type</source>
+<target>代替フォルダ タイプを選択</target>
<source>&New</source>
<target>新規(&N)</target>
@@ -793,8 +784,8 @@ The command is triggered if:
<source>&Actions</source>
<target>動作(&A)</target>
-<source>&Options</source>
-<target>設定(&O)</target>
+<source>&Preferences</source>
+<target>環境設定(&P)</target>
<source>&Language</source>
<target>使用言語(&L)</target>
@@ -835,9 +826,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>フォルダペアを除去</target>
-<source>Select SFTP folder</source>
-<target>SFTPフォルダを選択</target>
-
<source>Swap sides</source>
<target>パネルを入れ替え</target>
@@ -883,27 +871,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>コピーの合計バイト</target>
+<source>Folder pair:</source>
+<target>フォルダ ペア:</target>
+
<source>Use local settings:</source>
<target>ローカル設定を使用:</target>
<source>Select a variant:</source>
<target>方法を選択:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>更新時刻とサイズを比較して、同一ファイルを識別します.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>ファイルの内容を比較して、同一ファイルを識別します.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>タイムシフトを無視(&I)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>指定されたオフセット値でファイル時刻を考慮</target>
-
-<source>Handle daylight saving time</source>
-<target>夏時間の取り扱い</target>
-
<source>Include &symbolic links:</source>
<target>Symリンクを含める(&S):</target>
@@ -916,6 +892,18 @@ The command is triggered if:
<source>More information</source>
<target>更に詳細な情報</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>タイムシフトを無視(&I) [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>無視するファイル時間オフセットのリスト</target>
+
+<source>Example:</source>
+<target>使用例:</target>
+
+<source>Handle daylight saving time</source>
+<target>夏時間の取り扱い</target>
+
<source>Local settings:</source>
<target>ローカル設定:</target>
@@ -1005,14 +993,17 @@ The command is triggered if:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>フォルダ ペアの配置</target>
+
<source>Enter your SFTP login details:</source>
<target>SFTP ログインの詳細を入力:</target>
<source>Server name or IP address:</source>
<target>サーバ名、または IP アドレス:</target>
-<source>Examples:</source>
-<target>入力例:</target>
+<source>Port:</source>
+<target>ポート:</target>
<source>User name:</source>
<target>ユーザ名:</target>
@@ -1026,6 +1017,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>サーバ上のディレクトリ:</target>
+<source>Select a directory on the server:</source>
+<target>サーバ上のディレクトリを選択:</target>
+
+<source>Select Folder</source>
+<target>フォルダ選択</target>
+
<source>Start synchronization now?</source>
<target>今すぐ同期を開始しますか?</target>
@@ -1035,9 +1032,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>次回以降から表示しない(&D)</target>
-<source>Arrange folder pair</source>
-<target>フォルダ ペアの配置</target>
-
<source>Items found:</source>
<target>見つかった要素:</target>
@@ -1089,6 +1083,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>一括ジョブ スケジュールの作成方法</target>
+<source>&Keep relative paths</source>
+<target>相対パスを保持(&K)</target>
+
+<source>&Overwrite existing files</source>
+<target>既存のファイルに上書き(&O)</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>以下の設定は、すべての同期ジョブで使用されます.</target>
@@ -1165,7 +1165,7 @@ This guarantees a consistent state even in case of a serious error.
<target>E-メール</target>
<source>Published under the GNU General Public License</source>
-<target>GNU 一般共有使用許諾に基づき公開されています</target>
+<target>GNU 一般共有使用許諾に基づき公開</target>
<source>Many thanks for localization:</source>
<target>ローカライズのご協力に感謝します:</target>
@@ -1179,14 +1179,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>項目の削除</target>
+<source>Copy items</source>
+<target>項目のコピー</target>
+
<source>Options</source>
<target>設定</target>
<source>Select Time Span</source>
<target>タイムスパンを選択</target>
-<source>&Preferences</source>
-<target>環境設定(&P)</target>
+<source>&Options</source>
+<target>設定(&O)</target>
<source>Main Bar</source>
<target>メインバー</target>
@@ -1206,6 +1209,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>概要</target>
+<source>&Download</source>
+<target>ダウンロード(&D)</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>FreeFileSync の新しいバージョンが利用できます:</target>
+
<source>Confirm</source>
<target>確認</target>
@@ -1262,8 +1271,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>一時的に除外</target>
-<source>Delete</source>
-<target>削除</target>
+<source>&Copy to...</source>
+<target>コピー先(&C)...</target>
+
+<source>&Delete</source>
+<target>削除(&D)</target>
<source>Include all</source>
<target>すべて含める</target>
@@ -1313,9 +1325,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>一覧からエントリを除去</target>
-<source>Synchronization Settings</source>
-<target>同期の設定</target>
-
<source>Clear filter</source>
<target>フィルタをクリア</target>
@@ -1403,27 +1412,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>シャットダウン</target>
+<source>Paused</source>
+<target>一時停止中</target>
+
+<source>Initializing...</source>
+<target>初期化中...</target>
+
<source>Scanning...</source>
<target>スキャン中...</target>
<source>Comparing content...</source>
<target>内容を比較中...</target>
+<source>Completed</source>
+<target>完了しました!</target>
+
<source>Info</source>
<target>情報</target>
<source>Select all</source>
<target>すべて選択</target>
-<source>Paused</source>
-<target>一時停止中</target>
-
-<source>Initializing...</source>
-<target>初期化中...</target>
-
-<source>Completed</source>
-<target>完了しました!</target>
-
<source>&Continue</source>
<target>続行(&C)</target>
@@ -1433,6 +1442,20 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>ログ</target>
+<source>Loading...</source>
+<target>読み込み中...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>以下 %x 個の項目を別のフォルダにコピーしますか?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>対象フォルダを入力.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1452,9 +1475,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>本当に以下の %x 個の項目を削除しますか?</pluralform>
</target>
-<source>Preferences</source>
-<target>プリファレンス</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>DACL, SACL, 所有者, グループをコピー</target>
@@ -1479,6 +1499,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>表示(&S)</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>更新時刻とサイズを比較して、同一ファイルを識別します.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>ファイルの内容を比較して、同一ファイルを識別します.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>ファイルのサイズを比較して、同一ファイルを識別します.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>変更箇所を識別して両側に変更を反映します。データベースを使用することで、削除/移動/競合などは自動的に検出されます.</target>
@@ -1491,6 +1520,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>あなたが使用する同期規則を設定します.</target>
+<source>Synchronization Settings</source>
+<target>同期の設定</target>
+
+<source>Comparison</source>
+<target>比較</target>
+
+<source>Synchronization</source>
+<target>同期</target>
+
<source>Today</source>
<target>今日</target>
@@ -1527,11 +1565,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>各ファイル名にタイムスタンプを付加</target>
-<source>Comparison</source>
-<target>比較</target>
+<source>Main config</source>
+<target>メイン構成</target>
-<source>Synchronization</source>
-<target>同期</target>
+<source>empty</source>
+<target>空</target>
<source>Leave as unresolved conflict</source>
<target>未解決の競合はそのまま残す</target>
@@ -1551,6 +1589,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>パーセント</target>
+<source>Internet access failed.</source>
+<target>インターネットのアクセスに失敗.</target>
+
+<source>Check for Program Updates</source>
+<target>プログラムのアップデートを確認</target>
+
+<source>Download now?</source>
+<target>ダウンロードしますか?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync は最新です.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>www.freefilesync.org に接続できません.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>現在の FreeFileSync バージョン番号を確認できませんでした、手動で確認しますか?</target>
+
+<source>&Check</source>
+<target>チェック(&C)</target>
+
<source>Unable to register to receive system messages.</source>
<target>システム受信メッセージに登録できません.</target>
@@ -1578,6 +1637,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>パーミッション を %x から %y にコピーできません.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x は通常のディレクトリ名ではありません。</target>
+
<source>Cannot find system function %x.</source>
<target>システム関数 %x がみつかりません.</target>
@@ -1701,9 +1763,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync 同期データベース</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync 構成設定</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync 構成設定</target>
<source>Edit with FreeFileSync</source>
<target>FreeFileSync で編集</target>
+<source>Thanks for your donation and support!</source>
+<target>あなたの寄付と支援に感謝します!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>このドナー用 FreeFileSync インストーラは、インストールの制限に達しました。 今すぐ FreeFileSync 公式サイトで正規版をダウンロードしますか?</target>
+
diff --git a/FreeFileSync/Build/Languages/korean.lng b/FreeFileSync/Build/Languages/korean.lng
index 59ebc2b7..0677d2a7 100644
--- a/FreeFileSync/Build/Languages/korean.lng
+++ b/FreeFileSync/Build/Languages/korean.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>기본값 동기화 방향 설정: 이전 파일들은 보다 최신 파일들로 덮어 쓰여집니다.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>폴더 %x을(를) 위한 휴지통 가용성 여부 확인 중...</target>
+<source>Creating folder %x</source>
+<target>폴더 %x 생성 중</target>
+
+<source>Creating file %x</source>
+<target>파일 %x 생성 중</target>
+
+<source>Creating symbolic link %x</source>
+<target>심볼릭 링크 %x 생성 중</target>
<source>Moving file %x to the recycle bin</source>
<target>파일 %x을(를) 휴지통으로 이동 중</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>심볼릭 링크 %x 삭제 중</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>폴더 %x을(를) 위한 휴지통 가용성 여부 확인 중...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>다음 폴더들을 위해 휴지통을 사용할 수 없습니다. 대신 파일들을 영구 삭제합니다:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>파일 %x을(를) 찾을 수 없습니다.</target>
+<source>Error</source>
+<target>오류</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>파일 %x 의 구성이 유효하지 않습니다.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>다음 폴더를 찾을 수 없습니다:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>각 폴더를 비어있는 상태로 간주할 경우 이 오류는 무시될 수 있습니다. 폴더들은 동기화가 진행되는 동안 자동 생성됩니다.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>이 오류를 무시하면 폴더가 비어 있는 것으로 간주됩니다. 필요한 경우 누락 된 폴더가 자동으로 생성됩니다.</target>
<source>A folder input field is empty.</source>
<target>폴더 입력 필드 하나가 비어 있습니다.</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>장치 %x을(를) 찾을 수 없습니다.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>%x에 대한 사용 가능한 디스크 공간을 확인할 수 없습니다.</target>
-
<source>Cannot create directory %x.</source>
<target>디렉토리 %x을(를) 생성할 수 없습니다.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>심볼릭 링크 %x을(를) 해결할 수 없습니다.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>휴지통으로 %x을(를) 이동할 수 없습니다.</target>
-
<source>Cannot open directory %x.</source>
<target>디렉토리 %x을(를) 열 수 없습니다.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>%x에 대한 사용 가능한 디스크 공간을 확인할 수 없습니다.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>휴지통으로 %x을(를) 이동할 수 없습니다.</target>
+
<source>Incorrect command line:</source>
<target>부정확한 명령줄:</target>
@@ -343,9 +355,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>방치된 잠금 탐색 중...</target>
-<source>Creating file %x</source>
-<target>파일 %x 생성 중</target>
-
<source>Saving file %x...</source>
<target>파일 %x 저장 중...</target>
@@ -364,9 +373,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>%x 에 대한 디렉토리 잠금을 설정할 수 없습니다.</target>
-<source>Scanning:</source>
-<target>스캔 중:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -375,6 +381,9 @@ Actual: %y bytes
<pluralform>%x 스레드</pluralform>
</target>
+<source>Scanning:</source>
+<target>스캔 중:</target>
+
<source>/sec</source>
<target>/초</target>
@@ -442,7 +451,7 @@ Actual: %y bytes
<target>사용:</target>
<source>1. Select folders to watch.</source>
-<target>1. 열어 볼 폴더를 선택하세요.</target>
+<target>1. 감시할 폴더를 선택하세요.</target>
<source>2. Enter a command line.</source>
<target>2. 명령줄을 입력하세요.</target>
@@ -454,7 +463,7 @@ Actual: %y bytes
<target>시작하려면 .ffs_batch file을 가져 오십시오.</target>
<source>Folders to watch:</source>
-<target>열어 볼 폴더:</target>
+<target>감시할 폴더:</target>
<source>Add folder</source>
<target>폴더 추가</target>
@@ -485,8 +494,8 @@ The command is triggered if:
- 새 폴더가 생겼을 시 (예: USB 스틱 삽입)
</target>
-<source>&Start</source>
-<target>시작(&S)</target>
+<source>Start</source>
+<target>시작</target>
<source>About</source>
<target>상세 정보</target>
@@ -500,15 +509,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>자동 동기화</target>
+<source>The following path does not support directory monitoring:</source>
+<target>다음 경로는 디렉토리 모니터링을 지원하지 않습니다:</target>
+
<source>Directory monitoring active</source>
<target>디렉토리 모니터링 활성화</target>
<source>Waiting until all directories are available...</source>
<target>모든 디렉토리가 사용 가능할 때까지 대기 중...</target>
-<source>Error</source>
-<target>오류</target>
-
<source>&Restore</source>
<target>복원(&R)</target>
@@ -521,11 +530,14 @@ The command is triggered if:
<source>&Retry</source>
<target>다시 시도(&R)</target>
+<source>File time and size</source>
+<target>파일 시간 및 크기</target>
+
<source>File content</source>
<target>파일 내용</target>
-<source>File time and size</source>
-<target>파일 시간 및 크기</target>
+<source>File size</source>
+<target>파일 크기</target>
<source>Two way</source>
<target>양측 방향 (Two Way)</target>
@@ -554,12 +566,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>구 버전 삭제 중...</target>
-<source>Creating symbolic link %x</source>
-<target>심볼릭 링크 %x 생성 중</target>
-
-<source>Creating folder %x</source>
-<target>폴더 %x 생성 중</target>
-
<source>Updating file %x</source>
<target>파일 %x 업데이트 중</target>
@@ -676,30 +682,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>심각한 오류</target>
-<source>Check for Program Updates</source>
-<target>프로그램 업데이트 확인</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>새로운 버전의 FreeFileSync가 나왔습니다:</target>
-
-<source>Download now?</source>
-<target>지금 다운로드 하시겠습니까?</target>
-
-<source>&Download</source>
-<target>다운로드(&D)</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync는 현재 최신버전 상태입니다.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>www.freefilesync.org.에 접속할 수 없습니다.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>현재 사용 중인 FreeFileSync 버전 번호를 온라인에서 찾을 수 없습니다. 수동으로 확인해 보시겠습니까?</target>
-
-<source>&Check</source>
-<target>체크(&C)</target>
-
<source>Symlink</source>
<target>심링크</target>
@@ -760,11 +742,20 @@ The command is triggered if:
<source>Paste</source>
<target>붙여넣기</target>
-<source>Local Synchronization Settings</source>
-<target>로컬 동기화 설정</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>선택된 폴더 %x은(는) FreeFileSync와 함께 사용할 수 없습니다.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>로컬 파일 시스템, 네트워크 또는 MTP 장치에서의 폴더 하나를 선택하십시오.</target>
+
+<source>SFTP folder</source>
+<target>SFTP 폴더</target>
+
+<source>Select SFTP folder</source>
+<target>SFTP 폴더 선택</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>선택하신 폴더 %x은(는) FreeFileSync와 함께 사용할 수 없습니다. 로컬 파일 시스템, 네트워크 또는 MTP 장치 폴더를 선택하십시오.</target>
+<source>Select alternative folder type</source>
+<target>다른 폴더 유형 선택</target>
<source>&New</source>
<target>새로 만들기(&N)</target>
@@ -793,8 +784,8 @@ The command is triggered if:
<source>&Actions</source>
<target>실행(&A)</target>
-<source>&Options</source>
-<target>옵션(&O)</target>
+<source>&Preferences</source>
+<target>환경설정(&P)</target>
<source>&Language</source>
<target>언어 선택(&L)</target>
@@ -835,9 +826,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>폴더 페어 제거</target>
-<source>Select SFTP folder</source>
-<target>SFTP 폴더 선택</target>
-
<source>Swap sides</source>
<target>양측 위치 바꾸기</target>
@@ -883,27 +871,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>복사할 전체 바이트 크기</target>
+<source>Folder pair:</source>
+<target>폴더 페어:</target>
+
<source>Use local settings:</source>
<target>로컬 설정 사용:</target>
<source>Select a variant:</source>
<target>베어리언트 선택:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>수정 시간 및 크기를 비교하여 동일한 파일을 식별.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>파일 내용을 비교하여 동일한 파일을 식별.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>타임 쉬프트 무시(&I) [시간 단위]</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>특정 오프셋 파일 시간은 동일한 것으로 간주</target>
-
-<source>Handle daylight saving time</source>
-<target>서머타임 설정</target>
-
<source>Include &symbolic links:</source>
<target>심볼릭 링크 포함(&s):</target>
@@ -916,6 +892,18 @@ The command is triggered if:
<source>More information</source>
<target>상세 정보</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>타임 쉬프트 무시(&I) [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>무시할 파일 시간 오프셋 목록</target>
+
+<source>Example:</source>
+<target>예시:</target>
+
+<source>Handle daylight saving time</source>
+<target>서머타임 설정</target>
+
<source>Local settings:</source>
<target>로컬 설정:</target>
@@ -1005,14 +993,17 @@ The command is triggered if:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>폴더 페어 정렬</target>
+
<source>Enter your SFTP login details:</source>
<target>귀하의 SFTP 로그인 정보 입력:</target>
<source>Server name or IP address:</source>
<target>서버 이름 또는 IP 주소:</target>
-<source>Examples:</source>
-<target>예시:</target>
+<source>Port:</source>
+<target>포트:</target>
<source>User name:</source>
<target>사용자 이름:</target>
@@ -1026,6 +1017,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>서버 디렉토리:</target>
+<source>Select a directory on the server:</source>
+<target>서버 디렉토리 선택:</target>
+
+<source>Select Folder</source>
+<target>폴더 선택</target>
+
<source>Start synchronization now?</source>
<target>지금 동기화를 시작하시겠습니까?</target>
@@ -1035,9 +1032,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>이 대화 창을 다시 표시 안 함(&D)</target>
-<source>Arrange folder pair</source>
-<target>폴더 페어 정렬</target>
-
<source>Items found:</source>
<target>발견된 항목:</target>
@@ -1089,6 +1083,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>일괄 작업 예약 방법은?</target>
+<source>&Keep relative paths</source>
+<target>상대 경로 유지(&K)</target>
+
+<source>&Overwrite existing files</source>
+<target>기존 파일 덮어쓰기(&O)</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>다음 설정은 모든 동기화 작업에 사용됩니다.</target>
@@ -1179,14 +1179,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>항목 삭제</target>
+<source>Copy items</source>
+<target>항목 복사</target>
+
<source>Options</source>
<target>옵션</target>
<source>Select Time Span</source>
<target>시간간격(타임스팬) 선택</target>
-<source>&Preferences</source>
-<target>환경설정(&P)</target>
+<source>&Options</source>
+<target>옵션(&O)</target>
<source>Main Bar</source>
<target>메인 바</target>
@@ -1206,6 +1209,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>개요</target>
+<source>&Download</source>
+<target>다운로드(&D)</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>FreeFileSync 신규 버전이 나왔습니다:</target>
+
<source>Confirm</source>
<target>확인</target>
@@ -1262,8 +1271,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>임시 제외</target>
-<source>Delete</source>
-<target>삭제</target>
+<source>&Copy to...</source>
+<target>다른 경로로 복사(&C)...</target>
+
+<source>&Delete</source>
+<target>삭제(&D)</target>
<source>Include all</source>
<target>모두 포함</target>
@@ -1313,9 +1325,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>목록에서 입력항목 제거</target>
-<source>Synchronization Settings</source>
-<target>동기화 설정</target>
-
<source>Clear filter</source>
<target>필터 제거</target>
@@ -1403,27 +1412,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>종료</target>
+<source>Paused</source>
+<target>일시정지 중</target>
+
+<source>Initializing...</source>
+<target>초기화 작업 중...</target>
+
<source>Scanning...</source>
<target>스캔 중...</target>
<source>Comparing content...</source>
<target>내용 비교 중...</target>
+<source>Completed</source>
+<target>완료</target>
+
<source>Info</source>
<target>정보</target>
<source>Select all</source>
<target>모두 선택</target>
-<source>Paused</source>
-<target>일시정지 중</target>
-
-<source>Initializing...</source>
-<target>초기화 작업 중...</target>
-
-<source>Completed</source>
-<target>완료</target>
-
<source>&Continue</source>
<target>계속(&C)</target>
@@ -1433,12 +1442,26 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>로그</target>
+<source>Loading...</source>
+<target>로드 중...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>다음 %x 항목을 다른 폴더로 복사하시겠습니까?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>대상 폴더를 입력하십시오.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
</source>
<target>
-<pluralform>다음 %x 항목을 정말로 휴지통으로 이동하기를 원하십니까?</pluralform>
+<pluralform>다음 %x 항목을 정말로 휴지통으로 이동하시겠습니까?</pluralform>
</target>
<source>Move</source>
@@ -1449,12 +1472,9 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Do you really want to delete the following %x items?</pluralform>
</source>
<target>
-<pluralform>정말로 다음 %x 항목(들)을 삭제하시겠습니까?</pluralform>
+<pluralform>정말로 다음 %x 항목을 삭제하시겠습니까?</pluralform>
</target>
-<source>Preferences</source>
-<target>환경설정</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>DACL, SACL, 소유자, 그룹 복사</target>
@@ -1479,6 +1499,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>표시/보이기(&S)</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>수정 시간 및 크기를 비교하여 동일한 파일을 식별합니다.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>파일 내용을 비교하여 동일한 파일을 식별합니다.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>파일 크기를 비교하여 동일한 파일을 식별합니다.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>양측 변경사항을 확인하고 전달. 삭제, 이동 및 충돌은 데이터베이스를 통해 자동으로 감지됩니다.</target>
@@ -1486,10 +1515,19 @@ This guarantees a consistent state even in case of a serious error.
<target>좌측 폴더의 미러 백업을 만듭니다. 우측 폴더는 좌측 폴더와 완전히 일치하게 됩니다.</target>
<source>Copy new and updated files to the right folder.</source>
-<target>신규 또는 업데이트 된 파일을 우측 폴더로 복사.</target>
+<target>신규 또는 업데이트 된 파일을 우측 폴더로 복사합니다.</target>
<source>Configure your own synchronization rules.</source>
-<target>개인 동기화 규칙 설정.</target>
+<target>개인 동기화 규칙을 설정합니다.</target>
+
+<source>Synchronization Settings</source>
+<target>동기화 설정</target>
+
+<source>Comparison</source>
+<target>비 교</target>
+
+<source>Synchronization</source>
+<target>동 기 화</target>
<source>Today</source>
<target>오늘</target>
@@ -1527,11 +1565,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>각 파일 이름마다 타임 스탬프 추가</target>
-<source>Comparison</source>
-<target>비 교</target>
+<source>Main config</source>
+<target>주요 설정</target>
-<source>Synchronization</source>
-<target>동 기 화</target>
+<source>empty</source>
+<target>빈 폴더</target>
<source>Leave as unresolved conflict</source>
<target>미해결 충돌로 놔두기</target>
@@ -1551,6 +1589,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>퍼센티지(%)</target>
+<source>Internet access failed.</source>
+<target>인터넷 접속에 실패했습니다.</target>
+
+<source>Check for Program Updates</source>
+<target>프로그램 업데이트 확인</target>
+
+<source>Download now?</source>
+<target>지금 다운로드 하시겠습니까?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync는 현재 최신버전 상태입니다.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>www.freefilesync.org.에 접속할 수 없습니다.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>현재 사용 중인 FreeFileSync 버전 번호를 온라인에서 찾을 수 없습니다. 수동으로 확인해 보시겠습니까?</target>
+
+<source>&Check</source>
+<target>체크(&C)</target>
+
<source>Unable to register to receive system messages.</source>
<target>시스템 메시지 수신을 위한 등록을 할 수 없습니다.</target>
@@ -1578,6 +1637,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>%x에서 %y(으)로의 권한을 복사할 수 없습니다.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x(은)는 일반 디렉토리 이름이 아닙니다.</target>
+
<source>Cannot find system function %x.</source>
<target>시스템 함수 %x을(를) 찾을 수 없습니다.</target>
@@ -1701,9 +1763,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync 동기화 데이터베이스</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync (실시간 동기화) 환경설정</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync 환경설정</target>
<source>Edit with FreeFileSync</source>
<target>FreeFileSync로 편집</target>
+<source>Thanks for your donation and support!</source>
+<target>귀하의 기부와 지원에 감사드립니다!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>기부자용 FreeFileSync 인스톨러가 설치 제한에 도달했습니다. FreeFileSync 홈페이지에서 일반 버전을 다운로드 하시겠습니까?</target>
+
diff --git a/FreeFileSync/Build/Languages/lithuanian.lng b/FreeFileSync/Build/Languages/lithuanian.lng
index 29994868..69f267e9 100644
--- a/FreeFileSync/Build/Languages/lithuanian.lng
+++ b/FreeFileSync/Build/Languages/lithuanian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Nustatomos numatytos suvienodinimo kryptys: Seni failai bus perrašyti naujesniais failais.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Tikrinamas šiukšliadėžės prieinamumas aplankui %x...</target>
+<source>Creating folder %x</source>
+<target>Kuriamas aplankas %x</target>
+
+<source>Creating file %x</source>
+<target>Kuriamas failas %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Kuriama simbolinė nuoroda %x</target>
<source>Moving file %x to the recycle bin</source>
<target>%x failas perkeliamas į šiukšliadėžę</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Trinama simbolinė nuoroda %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Tikrinamas šiukšliadėžės prieinamumas aplankui %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Šiuklšliadėžė šiems aplankams yra nepasiekiama. Failai bus negrįžtamai ištrinti:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Negalima surasti failo %x.</target>
+<source>Error</source>
+<target>Klaida</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Failas %x neturi tinkamų nustatymų.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nepavyksta rasti šių aplankų:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Jei žinote, kad kiekvienas katalogas yra tuščias, šią klaidą galite ignoruoti. Katalogai bus automatiškai sukurti suvienodinimo metu.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Jeigu ignoruosite šią klaidą aplankas bus laikomas tuščiu. Trūkstami aplankai, kai reikės bus sukurti.</target>
<source>A folder input field is empty.</source>
<target>Aplanko įvesties laukas yra tuščias.</target>
@@ -246,9 +258,6 @@ Esamas: %y baitai
<source>Cannot find device %x.</source>
<target>Negalima surasti įrenginio %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Negalima nustatyti laisvos disko dalies %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Nepavyksta sukurti katalogo %x.</target>
@@ -267,12 +276,15 @@ Esamas: %y baitai
<source>Cannot resolve symbolic link %x.</source>
<target>Nepavyko rasti simbolinės nuorodos %x reikšmės.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>%x į šiukšliadėžę perkelti nepavyko.</target>
-
<source>Cannot open directory %x.</source>
<target>Nepavyksta atversti direktorijos %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Negalima nustatyti laisvos disko dalies %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>%x į šiukšliadėžę perkelti nepavyko.</target>
+
<source>Incorrect command line:</source>
<target>Netaisyklinga Komandinė eilutė:</target>
@@ -347,9 +359,6 @@ Esamas: %y baitai
<source>Detecting abandoned lock...</source>
<target>Aptiktas paliktas užraktas...</target>
-<source>Creating file %x</source>
-<target>Kuriamas failas %x</target>
-
<source>Saving file %x...</source>
<target>Išsaugomas failas %x...</target>
@@ -368,9 +377,6 @@ Esamas: %y baitai
<source>Cannot set directory lock for %x.</source>
<target>Nepavyksta nustatyti katalogo užrakto %x.</target>
-<source>Scanning:</source>
-<target>Nuskaitoma:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -381,6 +387,9 @@ Esamas: %y baitai
<pluralform>%x srautų</pluralform>
</target>
+<source>Scanning:</source>
+<target>Nuskaitoma:</target>
+
<source>/sec</source>
<target>/sek.</target>
@@ -491,8 +500,8 @@ Komanda inicijuojama jei:
- atsiranda nauji aplankai (pvz.: įkišamas USB raktas)
</target>
-<source>&Start</source>
-<target>&Pradėti</target>
+<source>Start</source>
+<target>Pradėti</target>
<source>About</source>
<target>Apie</target>
@@ -506,15 +515,15 @@ Komanda inicijuojama jei:
<source>Automated Synchronization</source>
<target>Automatinis Suvienodinimas</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Ši nuoroda nepalaiko katalogo stebėjimo:</target>
+
<source>Directory monitoring active</source>
<target>Katalogų stebėjimas yra aktyvus</target>
<source>Waiting until all directories are available...</source>
<target>Laukiama kol katalogai bus prieinami...</target>
-<source>Error</source>
-<target>Klaida</target>
-
<source>&Restore</source>
<target>&Atstatyti</target>
@@ -527,11 +536,14 @@ Komanda inicijuojama jei:
<source>&Retry</source>
<target>&Bandyti vėl</target>
+<source>File time and size</source>
+<target>Failo laiką ir dydį</target>
+
<source>File content</source>
<target>Failo turinį</target>
-<source>File time and size</source>
-<target>Failo laiką ir dydį</target>
+<source>File size</source>
+<target>Failo dydis</target>
<source>Two way</source>
<target>Dvipusis</target>
@@ -560,12 +572,6 @@ Komanda inicijuojama jei:
<source>Removing old versions...</source>
<target>Šalinamos senos versijos...</target>
-<source>Creating symbolic link %x</source>
-<target>Kuriama simbolinė nuoroda %x</target>
-
-<source>Creating folder %x</source>
-<target>Kuriamas aplankas %x</target>
-
<source>Updating file %x</source>
<target>Atnaujinamas failas %x</target>
@@ -684,30 +690,6 @@ Komanda inicijuojama jei:
<source>Serious Error</source>
<target>Rimta klaida</target>
-<source>Check for Program Updates</source>
-<target>Tikrinti programos atnaujinimus</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Yra nauja FreeFileSync versija:</target>
-
-<source>Download now?</source>
-<target>Atsiųsti dabar?</target>
-
-<source>&Download</source>
-<target>&Atsisiųsti</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync yra naujausia.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Nepavyko prisijungti prie www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Dabartinės FreeFileSync versijos numeris internete nerastas. Ar norėtumėte patikrinti rankiniu būdu?</target>
-
-<source>&Check</source>
-<target>&Tikrinti</target>
-
<source>Symlink</source>
<target>Simbolinė nuoroda</target>
@@ -768,11 +750,20 @@ Komanda inicijuojama jei:
<source>Paste</source>
<target>Įklijuoti</target>
-<source>Local Synchronization Settings</source>
-<target>Vietiniai Suvienodinimo Parametrai</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>FreeFileSync negali naudoti pažymėto %x aplanko.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Prašome pasirinkti aplanką vietinėje failų sistemoje, tinkle arba MTP įrenginyje.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>FreeFileSync negali naudoti pasirinkto aplanko %x. Prašome pasirinkti aplanką vietinėje failų sistemoje, tinkle arba MTP įrenginį.</target>
+<source>SFTP folder</source>
+<target>SFTP aplankas</target>
+
+<source>Select SFTP folder</source>
+<target>Pasirinkti SFTP aplanką</target>
+
+<source>Select alternative folder type</source>
+<target>Pažymėti alternatyvų aplanko tipą</target>
<source>&New</source>
<target>&Naujas</target>
@@ -801,8 +792,8 @@ Komanda inicijuojama jei:
<source>&Actions</source>
<target>&Veiksmai</target>
-<source>&Options</source>
-<target>&Parinktys</target>
+<source>&Preferences</source>
+<target>&Pirmenybės</target>
<source>&Language</source>
<target>&Kalba</target>
@@ -843,9 +834,6 @@ Komanda inicijuojama jei:
<source>Remove folder pair</source>
<target>Pašalinti aplankų porą</target>
-<source>Select SFTP folder</source>
-<target>Pasirinkti SFTP aplanką</target>
-
<source>Swap sides</source>
<target>Sukeisti puses</target>
@@ -891,27 +879,15 @@ Komanda inicijuojama jei:
<source>Total bytes to copy</source>
<target>Viso baitų kopijuoti</target>
+<source>Folder pair:</source>
+<target>Aplanko pora:</target>
+
<source>Use local settings:</source>
<target>Naudoti vietinius nustatymus:</target>
<source>Select a variant:</source>
<target>Pasirinkti variantą:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Sutapatinti vienodus failus lyginant failų modifikavimo laiką ir dydį.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Sutapatinti vienodus failus lyginant failų turinį.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignoruoti laiko skirtumą (valandomis)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Failai su tam tikra paklaida skaitomi kaip lygūs</target>
-
-<source>Handle daylight saving time</source>
-<target>Naudoti vasaros laiką</target>
-
<source>Include &symbolic links:</source>
<target>Pridėti &simbolines nuorodas:</target>
@@ -924,6 +900,18 @@ Komanda inicijuojama jei:
<source>More information</source>
<target>Daugiau informacijos</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignoruoti laiko nuokrypį [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Parinkti failo ignoruojamo laiko nuokrypį</target>
+
+<source>Example:</source>
+<target>Pavyzdys:</target>
+
+<source>Handle daylight saving time</source>
+<target>Naudoti vasaros laiką</target>
+
<source>Local settings:</source>
<target>Vietiniai nustatymai:</target>
@@ -1013,14 +1001,17 @@ Komanda inicijuojama jei:
<source>OK</source>
<target>Gerai</target>
+<source>Arrange folder pair</source>
+<target>Sulygiuoti pagal aplanko porą</target>
+
<source>Enter your SFTP login details:</source>
<target>Įveskite jūsų SFTP prisijungimo duomenis:</target>
<source>Server name or IP address:</source>
<target>Serverio vardas arba IP adresas:</target>
-<source>Examples:</source>
-<target>Pavyzdžiai:</target>
+<source>Port:</source>
+<target>Jungtis:</target>
<source>User name:</source>
<target>Vartotojo vardas:</target>
@@ -1034,6 +1025,12 @@ Komanda inicijuojama jei:
<source>Directory on server:</source>
<target>Katalogas serveryje:</target>
+<source>Select a directory on the server:</source>
+<target>Pažymėti katalogą serveryje:</target>
+
+<source>Select Folder</source>
+<target>Pažymėti Aplanką</target>
+
<source>Start synchronization now?</source>
<target>Dabar pradėti suvienodinimą?</target>
@@ -1043,9 +1040,6 @@ Komanda inicijuojama jei:
<source>&Don't show this dialog again</source>
<target>&Nerodyti pakartotinai šio dialogo lango</target>
-<source>Arrange folder pair</source>
-<target>Sulygiuoti pagal aplanko porą</target>
-
<source>Items found:</source>
<target>Rasta elementų:</target>
@@ -1097,6 +1091,12 @@ Komanda inicijuojama jei:
<source>How can I schedule a batch job?</source>
<target>Kaip aš galiu užduočių paketą įtraukti į tvarkaraštį?</target>
+<source>&Keep relative paths</source>
+<target>&Laikyti panašias kelius</target>
+
+<source>&Overwrite existing files</source>
+<target>&Pakeisti esamus failus</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Sekantys parametrai yra naudojami visiems suvienodinimo darbams.</target>
@@ -1187,14 +1187,17 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Delete Items</source>
<target>Pašalinti elementai</target>
+<source>Copy items</source>
+<target>Kopijuoti elementus</target>
+
<source>Options</source>
<target>Parinktys</target>
<source>Select Time Span</source>
<target>Pasirinkti laiko atkarpą</target>
-<source>&Preferences</source>
-<target>&Pirmenybės</target>
+<source>&Options</source>
+<target>&Parinktys</target>
<source>Main Bar</source>
<target>Pagrindinė įrankinė</target>
@@ -1214,6 +1217,12 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Overview</source>
<target>Apžvalga</target>
+<source>&Download</source>
+<target>&Atsisiųsti</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Yra nauja FreeFileSync versija:</target>
+
<source>Confirm</source>
<target>Patvirtinti</target>
@@ -1278,8 +1287,11 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Exclude temporarily</source>
<target>Neįtraukti laikinai</target>
-<source>Delete</source>
-<target>Trinti</target>
+<source>&Copy to...</source>
+<target>&Kopijuoti į...</target>
+
+<source>&Delete</source>
+<target>&Ištrinti</target>
<source>Include all</source>
<target>Įtraukti visus</target>
@@ -1329,9 +1341,6 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Remove entry from list</source>
<target>Pašalinti įrašą iš sarašo</target>
-<source>Synchronization Settings</source>
-<target>Suvienodinimo parametrai</target>
-
<source>Clear filter</source>
<target>Panaikinti filtrą</target>
@@ -1419,27 +1428,27 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Shut down</source>
<target>Išjungti kompiuterį</target>
+<source>Paused</source>
+<target>Pristabdyta</target>
+
+<source>Initializing...</source>
+<target>Pradedama...</target>
+
<source>Scanning...</source>
<target>Tikrinama...</target>
<source>Comparing content...</source>
<target>Palyginimo turinys...</target>
+<source>Completed</source>
+<target>Baigta</target>
+
<source>Info</source>
<target>Informacija</target>
<source>Select all</source>
<target>Pažymėti visus</target>
-<source>Paused</source>
-<target>Pristabdyta</target>
-
-<source>Initializing...</source>
-<target>Pradedama...</target>
-
-<source>Completed</source>
-<target>Baigta</target>
-
<source>&Continue</source>
<target>&Tęsti</target>
@@ -1449,6 +1458,22 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Log</source>
<target>Žurnalas</target>
+<source>Loading...</source>
+<target>Įkraunama...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Ar kopijuoti šį %x elementą į kitą aplanką?</pluralform>
+<pluralform>Ar kopijuoti šiuos %x elementus į kitą aplanką?</pluralform>
+<pluralform>Ar kopijuoti šiuos %x elementų į kitą aplanką?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Prašome įvesti tikslinį aplanko vardą.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1472,9 +1497,6 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<pluralform>Ar tikrai norite ištrinti šiuos %x elementų?</pluralform>
</target>
-<source>Preferences</source>
-<target>Pirmenybės</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Kopijuoti DACL, SACL, Owner, Group</target>
@@ -1499,6 +1521,15 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>&Show</source>
<target>&Rodyti</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Sutapatinti vienodus failus lyginant failų modifikavimo laiką ir dydį.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Sutapatinti vienodus failus lyginant failų turinį.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identifikuoti vienodus failus, palyginant jų dydį.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Nustatyti ir vykdyti pokyčius abiejose pusėse. Trynimai, perkėlimai ir konfliktai yra aptinkami automatiškai naudojant duomenų bazę.</target>
@@ -1511,6 +1542,15 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Configure your own synchronization rules.</source>
<target>Nustatyti Jūsų pačių suvienodinimo taisykles.</target>
+<source>Synchronization Settings</source>
+<target>Suvienodinimo parametrai</target>
+
+<source>Comparison</source>
+<target>Palyginimas</target>
+
+<source>Synchronization</source>
+<target>Suvienodinimas</target>
+
<source>Today</source>
<target>Šiandien</target>
@@ -1547,11 +1587,11 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Append a time stamp to each file name</source>
<target>Pridėti laiko žymę prie kiekvieno failo pavadinimo</target>
-<source>Comparison</source>
-<target>Palyginimas</target>
+<source>Main config</source>
+<target>Pagrindiniia parametrai</target>
-<source>Synchronization</source>
-<target>Suvienodinimas</target>
+<source>empty</source>
+<target>tuščias</target>
<source>Leave as unresolved conflict</source>
<target>Palikti kaip neišpręstą konfliktą</target>
@@ -1571,6 +1611,27 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Percentage</source>
<target>Procentai</target>
+<source>Internet access failed.</source>
+<target>Interneto prieiga nepasiekiama.</target>
+
+<source>Check for Program Updates</source>
+<target>Tikrinti programos atnaujinimus</target>
+
+<source>Download now?</source>
+<target>Atsiųsti dabar?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync yra naujausia.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Nepavyko prisijungti prie www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Dabartinės FreeFileSync versijos numeris internete nerastas. Ar norėtumėte patikrinti rankiniu būdu?</target>
+
+<source>&Check</source>
+<target>&Tikrinti</target>
+
<source>Unable to register to receive system messages.</source>
<target>Nepavyko aktyvuoti sisteminių žinučių gavimo funkciją.</target>
@@ -1598,6 +1659,9 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Cannot copy permissions from %x to %y.</source>
<target>Nepavyko nukopijuoti leidimų iš %x į %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x nėra reguliarus katalogo vardas.</target>
+
<source>Cannot find system function %x.</source>
<target>Nepavyksta rasti sisteminės funkcijos %x.</target>
@@ -1727,9 +1791,15 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync Suvienodinimo duomenų bazė</target>
-<source>RealtimeSync Configuration</source>
-<target>Realaus laiko suvienodinimo konfiguracija</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync Nustatymai</target>
<source>Edit with FreeFileSync</source>
<target>Koreguoti su FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Ačių už jūsų aukas ir palaikymą!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Šis FreeFileSync remėjų diegiamasis failas pasiekė savo ribą. Ar dabar parsisiųsti standartinę versiją iš FreeFileSync internetinio puslapio?</target>
+
diff --git a/FreeFileSync/Build/Languages/outdated/norwegian.lng b/FreeFileSync/Build/Languages/outdated/norwegian.lng
index e02ec59f..02efdf9c 100644
--- a/FreeFileSync/Build/Languages/outdated/norwegian.lng
+++ b/FreeFileSync/Build/Languages/outdated/norwegian.lng
@@ -1705,8 +1705,8 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync Synkronisering</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync konfigurering</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync konfigurering</target>
<source>Edit with FreeFileSync</source>
<target>Rediger med FreeFileSync</target>
diff --git a/FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng b/FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng
index 26b5f438..928b14f8 100644
--- a/FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng
+++ b/FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng
@@ -10,7 +10,7 @@
<source>Edit with FreeFileSync</source>
<target></target>
-<source>RealtimeSync Configuration</source>
+<source>RealTimeSync Configuration</source>
<target></target>
<source>FreeFileSync Synchronization Database</source>
diff --git a/FreeFileSync/Build/Languages/polish.lng b/FreeFileSync/Build/Languages/polish.lng
index cd57ffd3..fc602fc4 100644
--- a/FreeFileSync/Build/Languages/polish.lng
+++ b/FreeFileSync/Build/Languages/polish.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Ustawianie domyślnego kierunku synchronizacji: Stare pliki zostaną nadpisane nowszymi.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Sprawdzanie dostępności kosza dla katalogu %x...</target>
+<source>Creating folder %x</source>
+<target>Tworzenie folderu %x</target>
+
+<source>Creating file %x</source>
+<target>Tworzenie pliku %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Tworzenie dowiązania symbolicznego %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Przenoszenie pliku %x do kosza</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Usuwanie dowiązania symbolicznego %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Sprawdzanie dostępności kosza dla katalogu %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Dla następujących katalogów kosz nie jest dostępny. Pliki zostaną usunięte bez możliwości ich przywrócenia:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Nie można odnaleźć pliku %x.</target>
+<source>Error</source>
+<target>Błąd</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Plik %x nie zawiera prawidłowej konfiguracji.</target>
@@ -68,7 +80,7 @@
<target>Plik konfiguracyjny nie może zawierać informacji o synchronizowanych katalogach gdy nazwy ścieżek przekazywane są w linii poleceń.</target>
<source>Directories cannot be set for more than one configuration file.</source>
-<target>Dla więcej niż jednego pliku konfiguracyjnego, nie można ustawić wielu katalogów.</target>
+<target>Nie można ustawić wielu katalogów dla więcej niż jednego pliku konfiguracyjnego.</target>
<source>Command line</source>
<target>Linia komend</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nie można znaleźć następujących katalogów:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Możesz zignorować ten błąd aby uznając katalogi jako puste. Katalog zostanie utworzony automatycznie podczas synchronizacji.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Jeżeli zignorujesz to ostrzeżenie, katalogi zostaną potraktowane jako puste. Brakujące katalogi są tworzone automatycznie.</target>
<source>A folder input field is empty.</source>
<target>Pole katalog źródłowy jest puste.</target>
@@ -119,7 +131,7 @@
<target>Data:</target>
<source>Files %x have the same date but a different size.</source>
-<target>Pliki %x mają tą samą datę lecz różne rozmiary.</target>
+<target>Pliki %x mają tę samą datę, lecz różne rozmiary.</target>
<source>Size:</source>
<target>Rozmiar:</target>
@@ -246,9 +258,6 @@ Przesłany: %y bajtów
<source>Cannot find device %x.</source>
<target>Nie można odnaleźć urządzenia %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Nie można określić wolnego miejsca na %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Nie można utworzyć katalogu %x.</target>
@@ -267,12 +276,15 @@ Przesłany: %y bajtów
<source>Cannot resolve symbolic link %x.</source>
<target>Nie można określić położenia dowiązania symbolicznego %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Nie można przenieść %x do kosza.</target>
-
<source>Cannot open directory %x.</source>
<target>Nie można otworzyć katalogu %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Nie można określić wolnego miejsca na %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Nie można przenieść %x do kosza.</target>
+
<source>Incorrect command line:</source>
<target>Niepoprawne polecenie:</target>
@@ -347,9 +359,6 @@ Przesłany: %y bajtów
<source>Detecting abandoned lock...</source>
<target>Wykrywanie nieaktywnej blokady...</target>
-<source>Creating file %x</source>
-<target>Tworzenie pliku %x</target>
-
<source>Saving file %x...</source>
<target>Zapisywanie pliku %x...</target>
@@ -368,9 +377,6 @@ Przesłany: %y bajtów
<source>Cannot set directory lock for %x.</source>
<target>Nie można utworzyć blokady dla katalogu %x.</target>
-<source>Scanning:</source>
-<target>Skanowanie:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -381,6 +387,9 @@ Przesłany: %y bajtów
<pluralform>%x wątków</pluralform>
</target>
+<source>Scanning:</source>
+<target>Skanowanie:</target>
+
<source>/sec</source>
<target>/sekundę</target>
@@ -457,7 +466,7 @@ Przesłany: %y bajtów
<target>3. Wciśnij 'Start'.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>Aby rozpocząć po zaimportuj plik .ffs_batch.</target>
+<target>Aby rozpocząć zaimportuj plik .ffs_batch.</target>
<source>Folders to watch:</source>
<target>Katalogi do obserwowania:</target>
@@ -491,8 +500,8 @@ Komenda jest wykonywana gdy:
- zostaną utworzony nowe katalogi (n.p włożenie pamięci USB)
</target>
-<source>&Start</source>
-<target>&Rozpocznij</target>
+<source>Start</source>
+<target>Start</target>
<source>About</source>
<target>O Programie</target>
@@ -506,15 +515,15 @@ Komenda jest wykonywana gdy:
<source>Automated Synchronization</source>
<target>Automatyczna synchronizacja</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Następująca ścieżka nie wspiera monitorowania katalogów:</target>
+
<source>Directory monitoring active</source>
<target>Monitorowanie katalogów aktywne</target>
<source>Waiting until all directories are available...</source>
<target>Oczekiwanie na dostępność wszystkich katalogów...</target>
-<source>Error</source>
-<target>Błąd</target>
-
<source>&Restore</source>
<target>&Przywróć</target>
@@ -527,11 +536,14 @@ Komenda jest wykonywana gdy:
<source>&Retry</source>
<target>&Powtórz</target>
+<source>File time and size</source>
+<target>Czas modyfikacji i rozmiar</target>
+
<source>File content</source>
<target>Zawartość pliku</target>
-<source>File time and size</source>
-<target>Czas modyfikacji i rozmiar</target>
+<source>File size</source>
+<target>Rozmiar pliku</target>
<source>Two way</source>
<target>Obustronna</target>
@@ -560,12 +572,6 @@ Komenda jest wykonywana gdy:
<source>Removing old versions...</source>
<target>Usuwanie starszych wersji...</target>
-<source>Creating symbolic link %x</source>
-<target>Tworzenie dowiązania symbolicznego %x</target>
-
-<source>Creating folder %x</source>
-<target>Tworzenie folderu %x</target>
-
<source>Updating file %x</source>
<target>Aktualizowanie pliku %x</target>
@@ -684,30 +690,6 @@ Komenda jest wykonywana gdy:
<source>Serious Error</source>
<target>Poważny błąd</target>
-<source>Check for Program Updates</source>
-<target>Sprawdź dostępne aktualizacje.</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Dostępna jest nowa wersja FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>Pobrać teraz?</target>
-
-<source>&Download</source>
-<target>&Pobierz</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>Posiadasz aktualną wersję FreeFileSync.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Nie można połączyć się z www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Nie można znaleźć obecnej wersji FreeFileSync. Czy chcesz sprawdzić ręcznie?</target>
-
-<source>&Check</source>
-<target>S&prawdź</target>
-
<source>Symlink</source>
<target>Dowiązanie symboliczne</target>
@@ -768,11 +750,20 @@ Komenda jest wykonywana gdy:
<source>Paste</source>
<target>Wklej</target>
-<source>Local Synchronization Settings</source>
-<target>Lokalne Ustawienia Synchronizacji</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Katalog %x nie może być użyty w FreeFileSync.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Katalog %x nie może być użyty przez FreeFileSync. Określ katalog znajdujący się lokalnie na komputerze, katalog sieciowy lub urządzenie MTP.</target>
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Okreś katalog lokalny, sieciowy bądź urządzenie MTP.</target>
+
+<source>SFTP folder</source>
+<target>Katalog SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Określ katalog SFTP</target>
+
+<source>Select alternative folder type</source>
+<target>Określ inny typ katalogu</target>
<source>&New</source>
<target>&Nowy</target>
@@ -801,8 +792,8 @@ Komenda jest wykonywana gdy:
<source>&Actions</source>
<target>&akcje</target>
-<source>&Options</source>
-<target>&Opcje</target>
+<source>&Preferences</source>
+<target>&Ustawienia</target>
<source>&Language</source>
<target>&Język</target>
@@ -843,9 +834,6 @@ Komenda jest wykonywana gdy:
<source>Remove folder pair</source>
<target>Usuń katalogi</target>
-<source>Select SFTP folder</source>
-<target>Określ katalog SFTP</target>
-
<source>Swap sides</source>
<target>Zamień stronami</target>
@@ -891,27 +879,15 @@ Komenda jest wykonywana gdy:
<source>Total bytes to copy</source>
<target>Całkowity rozmiar do skopiowania</target>
+<source>Folder pair:</source>
+<target>Para folderów:</target>
+
<source>Use local settings:</source>
<target>Korzystaj z ustawień lokalnych:</target>
<source>Select a variant:</source>
<target>Określ wariant:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Określ różnice w plikach na podstawie czasu modyfikacji i rozmiaru.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Określ różnice w plikach na podstawie ich zawartości.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignoruj różnice czasu (w godzinach)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Traktuje czasy dwóch plików jako równe w określonych granicach</target>
-
-<source>Handle daylight saving time</source>
-<target>Uwzględniaj przesunięcie czasu</target>
-
<source>Include &symbolic links:</source>
<target>Uwzględniaj dowiązania &symboliczne:</target>
@@ -924,6 +900,18 @@ Komenda jest wykonywana gdy:
<source>More information</source>
<target>Więcej informacji</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignoruj przesunięcie czasu [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Lista różnic czasu do zignorowania dla pliku</target>
+
+<source>Example:</source>
+<target>Przykład:</target>
+
+<source>Handle daylight saving time</source>
+<target>Uwzględniaj przesunięcie czasu</target>
+
<source>Local settings:</source>
<target>Ustawienia lokalne:</target>
@@ -1013,14 +1001,17 @@ Komenda jest wykonywana gdy:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Uporządkuj parę katalogów</target>
+
<source>Enter your SFTP login details:</source>
<target>Wprowadź dane logowania do serwera SFTP:</target>
<source>Server name or IP address:</source>
-<target>Nazwa serwera lub adres IP:</target>
+<target>Nazwa serwera, lub adres IP:</target>
-<source>Examples:</source>
-<target>Przykład:</target>
+<source>Port:</source>
+<target>Port:</target>
<source>User name:</source>
<target>Nazwa użytkownika:</target>
@@ -1034,6 +1025,12 @@ Komenda jest wykonywana gdy:
<source>Directory on server:</source>
<target>Katalog na serwerze:</target>
+<source>Select a directory on the server:</source>
+<target>Określ katalog na serwerze:</target>
+
+<source>Select Folder</source>
+<target>Określ katalog</target>
+
<source>Start synchronization now?</source>
<target>Rozpocząć teraz synchronizację?</target>
@@ -1043,9 +1040,6 @@ Komenda jest wykonywana gdy:
<source>&Don't show this dialog again</source>
<target>&Nie pokazuj więcej tego okna</target>
-<source>Arrange folder pair</source>
-<target>Uporządkuj parę katalogów</target>
-
<source>Items found:</source>
<target>Znalezione elementy:</target>
@@ -1097,6 +1091,12 @@ Komenda jest wykonywana gdy:
<source>How can I schedule a batch job?</source>
<target>Jak zaplanować zadanie w trybie wsadowym?</target>
+<source>&Keep relative paths</source>
+<target>&Zachowaj relatywne ścieżki</target>
+
+<source>&Overwrite existing files</source>
+<target>&Nadpisz istniejące pliki</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Następujące ustawienia stosowane są do wszystkich zadań synchronizacji.</target>
@@ -1108,7 +1108,7 @@ Copy to a temporary file (*.ffs_tmp) before overwriting target.
This guarantees a consistent state even in case of a serious error.
</source>
<target>
-Aby zagwarantować spójność synchronizacji nawet podczas błędu,
+Aby zagwarantować spójność synchronizacji nawet podczas błędu,
program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadpisuje plik docelowy.
</target>
@@ -1187,14 +1187,17 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Delete Items</source>
<target>Usuń elementy</target>
+<source>Copy items</source>
+<target>Kopiuj element</target>
+
<source>Options</source>
<target>Opcje</target>
<source>Select Time Span</source>
<target>Określ</target>
-<source>&Preferences</source>
-<target>&Ustawienia</target>
+<source>&Options</source>
+<target>&Opcje</target>
<source>Main Bar</source>
<target>Główny pasek</target>
@@ -1214,6 +1217,12 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Overview</source>
<target>Przegląd</target>
+<source>&Download</source>
+<target>&Pobierz</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Dostępna jest nowa wersja FreeFileSync:</target>
+
<source>Confirm</source>
<target>Potwierdź</target>
@@ -1278,8 +1287,11 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Exclude temporarily</source>
<target>Wyklucz tymczasowo</target>
-<source>Delete</source>
-<target>Usuń</target>
+<source>&Copy to...</source>
+<target>&Kopiuj do...</target>
+
+<source>&Delete</source>
+<target>&Usuń</target>
<source>Include all</source>
<target>Zaznacz wszystko</target>
@@ -1329,9 +1341,6 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Remove entry from list</source>
<target>Usuń wpis z listy</target>
-<source>Synchronization Settings</source>
-<target>Ustawienia synchronizacji</target>
-
<source>Clear filter</source>
<target>Wyczyść filtr</target>
@@ -1378,7 +1387,7 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<target>Pokaż pliki, które nie będą kopiowane</target>
<source>Show filtered or temporarily excluded files</source>
-<target>Pokaż pliki wykluczone tymczasowo lub pliki wykluczone tymczasowo</target>
+<target>Pokaż pliki wykluczone tymczasowo, lub pliki wykluczone tymczasowo</target>
<source>Save as default</source>
<target>Zapisz jako domyślne</target>
@@ -1419,27 +1428,27 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Shut down</source>
<target>Wyłącz komputer</target>
+<source>Paused</source>
+<target>Pauza</target>
+
+<source>Initializing...</source>
+<target>Inicjalizacja...</target>
+
<source>Scanning...</source>
<target>Skanowanie...</target>
<source>Comparing content...</source>
<target>Porównywanie zawartości...</target>
+<source>Completed</source>
+<target>Zakończono</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Zaznacz wszystko</target>
-<source>Paused</source>
-<target>Pauza</target>
-
-<source>Initializing...</source>
-<target>Inicjalizacja...</target>
-
-<source>Completed</source>
-<target>Zakończono</target>
-
<source>&Continue</source>
<target>&Kontynuuj</target>
@@ -1449,6 +1458,22 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Log</source>
<target>Log</target>
+<source>Loading...</source>
+<target>Wczytywanie...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Skopiować element do innego katalogu?</pluralform>
+<pluralform>Skopiować %x elementy do innego katalogu?</pluralform>
+<pluralform>Skopiować %x elementów do innego katalogu?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Wprowadź katalog docelowy.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1472,9 +1497,6 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<pluralform>Czy na pewno chcesz usunąć %x następujących elementów?</pluralform>
</target>
-<source>Preferences</source>
-<target>Preferencje</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Kopiuj DACL, SACL, Użytkownik, Grupa</target>
@@ -1499,6 +1521,15 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>&Show</source>
<target>&Przywróć</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Określ różnice w plikach na podstawie czasu modyfikacji i rozmiaru.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Określ różnice w plikach na podstawie ich zawartości.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Traktuj pliki jako jednakowe, jeżeli mają ten sam rozmiar.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Wyszukaj oraz zastosuj zmiany po obu stronach. Wszystkie operacje na plikach takie jak usunięcia, zmiany oraz konflikty wykrywane są automatycznie przy użyciu bazy danych.</target>
@@ -1511,6 +1542,15 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Configure your own synchronization rules.</source>
<target>Skonfiguruj swoje własne reguły synchronizacji.</target>
+<source>Synchronization Settings</source>
+<target>Ustawienia synchronizacji</target>
+
+<source>Comparison</source>
+<target>Porównanie</target>
+
+<source>Synchronization</source>
+<target>Synchronizacja</target>
+
<source>Today</source>
<target>Dzisiaj</target>
@@ -1539,7 +1579,7 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<target>Zamień</target>
<source>Move files and replace if existing</source>
-<target>Przenieś pliki i nadpisz jeżeli już istnieją</target>
+<target>Przenieś pliki i nadpisz, jeżeli już istnieją</target>
<source>Time stamp</source>
<target>Znacznik czasu</target>
@@ -1547,11 +1587,11 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Append a time stamp to each file name</source>
<target>Dołącz datę do nazwy każdego pliku</target>
-<source>Comparison</source>
-<target>Porównanie</target>
+<source>Main config</source>
+<target>Główna konfiguracja</target>
-<source>Synchronization</source>
-<target>Synchronizacja</target>
+<source>empty</source>
+<target>Pusty</target>
<source>Leave as unresolved conflict</source>
<target>Zostaw jako nierozwiązany konflikt</target>
@@ -1571,6 +1611,27 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Percentage</source>
<target>Procentowo</target>
+<source>Internet access failed.</source>
+<target>Błąd połączenia Internetowego.</target>
+
+<source>Check for Program Updates</source>
+<target>Sprawdź dostępne aktualizacje.</target>
+
+<source>Download now?</source>
+<target>Pobrać teraz?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>Posiadasz aktualną wersję FreeFileSync.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Nie można połączyć się z www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Nie można znaleźć obecnej wersji FreeFileSync. Czy chcesz sprawdzić ręcznie?</target>
+
+<source>&Check</source>
+<target>S&prawdź</target>
+
<source>Unable to register to receive system messages.</source>
<target>Błąd podczas rejestrowania do odbioru komunikatów systemowych.</target>
@@ -1598,6 +1659,9 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Cannot copy permissions from %x to %y.</source>
<target>Nie można skopiować uprawnień z %x do %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x nie jest zwykłą nazwą katalogu.</target>
+
<source>Cannot find system function %x.</source>
<target>Nie można odnaleźć funkcji systemowej %x.</target>
@@ -1727,9 +1791,15 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>FreeFileSync Synchronization Database</source>
<target>Baza danych FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Konfiguracja RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Konfiguracja RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Edytuj przy użyciu FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Dziękujemy za wsparcie i dotacje!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Ta wersja instalatora FreeFileSync osiągneła swój limit instalacji. Pobrać zwykłą wersję ze strony FreeFileSync?</target>
+
diff --git a/FreeFileSync/Build/Languages/portuguese.lng b/FreeFileSync/Build/Languages/portuguese.lng
index 749408bb..7e6ce0b6 100644
--- a/FreeFileSync/Build/Languages/portuguese.lng
+++ b/FreeFileSync/Build/Languages/portuguese.lng
@@ -7,12 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>Select alternative folder type</source>
-<target></target>
-
-<source>SFTP folder</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Ambos os lados tiveram alterações desde a última sincronização.</target>
@@ -73,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Não é possível encontrar o ficheiro %x.</target>
+<source>Error</source>
+<target>Erro</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Ficheiro %x não tem uma configuração válida.</target>
@@ -115,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Não é possível encontrar as seguintes pastas:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Pode ignorar este erro para considerar cada pasta como vazia. As pastas necessárias serão criadas automaticamente durante a sincronização.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Se ignorar este erro, as pastas serão consideradas vazias. Pastas faltando são criadas automaticamente se necessário.</target>
<source>A folder input field is empty.</source>
<target>Um dos campos de directório para comparar está vazio.</target>
@@ -261,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>Não é possível encontrar o dispositivo %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Não é possível determinar o espaço livre no disco %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Não é possível criar o directório %x.</target>
@@ -282,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Não é possível resolver o link simbólico %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Não é possível mover %x para a reciclagem.</target>
-
<source>Cannot open directory %x.</source>
<target>Não é possível abrir o directório %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Não é possível determinar o espaço livre no disco %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Não é possível mover %x para a reciclagem.</target>
+
<source>Incorrect command line:</source>
<target>Linha de comandos incorrecta:</target>
@@ -500,8 +497,8 @@ O comando é executado se:
- forem detetadas novas pastas (p.e. pen USB)
</target>
-<source>&Start</source>
-<target>&Início</target>
+<source>Start</source>
+<target>Início</target>
<source>About</source>
<target>Sobre</target>
@@ -515,15 +512,15 @@ O comando é executado se:
<source>Automated Synchronization</source>
<target>Sincronização Automática</target>
+<source>The following path does not support directory monitoring:</source>
+<target>O seguinte caminho não suporta o monitoramento de direcctório:</target>
+
<source>Directory monitoring active</source>
<target>Monitorização de directório activa</target>
<source>Waiting until all directories are available...</source>
<target>A aguardar que todos os directórios fiquem disponíveis...</target>
-<source>Error</source>
-<target>Erro</target>
-
<source>&Restore</source>
<target>&Restaurar</target>
@@ -536,11 +533,14 @@ O comando é executado se:
<source>&Retry</source>
<target>&Tentar de Novo</target>
+<source>File time and size</source>
+<target>Data e tamanho do ficheiro</target>
+
<source>File content</source>
<target>Conteúdo do ficheiro</target>
-<source>File time and size</source>
-<target>Data e tamanho do ficheiro</target>
+<source>File size</source>
+<target>Tamanho do ficheiro</target>
<source>Two way</source>
<target>Duas vias</target>
@@ -686,30 +686,6 @@ O comando é executado se:
<source>Serious Error</source>
<target>Erro Grave</target>
-<source>Check for Program Updates</source>
-<target>Procurar actualizações do programa</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Uma nova versão do FreeFileSync está disponível:</target>
-
-<source>Download now?</source>
-<target>Fazer download agora?</target>
-
-<source>&Download</source>
-<target>&Download</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync está actualizado.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Não é possível ligar a www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Não é possível encontrar a última versão do FreeFileSync online. Deseja verificar manualmente?</target>
-
-<source>&Check</source>
-<target>&Verificar</target>
-
<source>Symlink</source>
<target>Link Simbólico</target>
@@ -770,15 +746,21 @@ O comando é executado se:
<source>Paste</source>
<target>Colar</target>
-<source>Local Synchronization Settings</source>
-<target>Opções Locais Sincronização</target>
-
<source>The selected folder %x cannot be used with FreeFileSync.</source>
<target>A pasta seleccionada %x não pode ser usada pelo FreeFileSync.</target>
<source>Please select a folder on a local file system, network or an MTP device.</source>
<target>Seleccione a pasta no sistema de ficheiros local, rede ou dispositivo MTP.</target>
+<source>SFTP folder</source>
+<target>Pasta SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Seleccionar pasta SFTP</target>
+
+<source>Select alternative folder type</source>
+<target>Seleccione o tipo de pasta alternativa</target>
+
<source>&New</source>
<target>&Novo</target>
@@ -893,27 +875,15 @@ O comando é executado se:
<source>Total bytes to copy</source>
<target>Total em bytes a copiar</target>
+<source>Folder pair:</source>
+<target>Par da pasta:</target>
+
<source>Use local settings:</source>
<target>Usar opções locais:</target>
<source>Select a variant:</source>
<target>Seleccionar uma variante:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Identificar ficheiros iguais ao comparar hora de modificação e tamanho.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Identificar ficheiros iguais ao comparar o conteúdo.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignorar desvio de tempo (em horas)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Considerar ficheiros com o desvio de tempo especificado como iguais</target>
-
-<source>Handle daylight saving time</source>
-<target>Lidar com horário de verão</target>
-
<source>Include &symbolic links:</source>
<target>Incluir links &simbólicos:</target>
@@ -926,6 +896,18 @@ O comando é executado se:
<source>More information</source>
<target>Mais informação</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignorar mudança de horário [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Lista de intervalos de tempo de ficheiro a ignorar</target>
+
+<source>Example:</source>
+<target>Exemplo:</target>
+
+<source>Handle daylight saving time</source>
+<target>Lidar com horário de verão</target>
+
<source>Local settings:</source>
<target>Opções locais:</target>
@@ -1027,9 +1009,6 @@ O comando é executado se:
<source>Port:</source>
<target>Porta:</target>
-<source>Examples:</source>
-<target>Amostras:</target>
-
<source>User name:</source>
<target>Utilizador:</target>
@@ -1042,6 +1021,12 @@ O comando é executado se:
<source>Directory on server:</source>
<target>Directório no servidor:</target>
+<source>Select a directory on the server:</source>
+<target>Seleccione um directório no servidor:</target>
+
+<source>Select Folder</source>
+<target>Seleccionar Pasta</target>
+
<source>Start synchronization now?</source>
<target>Iniciar sincronização agora?</target>
@@ -1093,9 +1078,6 @@ O comando é executado se:
<source>Save log:</source>
<target>Guardar registo:</target>
-<source>Select SFTP folder</source>
-<target>Seleccionar pasta SFTP</target>
-
<source>Limit:</source>
<target>Limitar:</target>
@@ -1111,9 +1093,6 @@ O comando é executado se:
<source>&Overwrite existing files</source>
<target>&Substituir ficheiros existentes</target>
-<source>&Copy</source>
-<target>&Copiar</target>
-
<source>The following settings are used for all synchronization jobs.</source>
<target>As seguintes definições são usadas para todas as sincronizações.</target>
@@ -1234,6 +1213,12 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Overview</source>
<target>Vista</target>
+<source>&Download</source>
+<target>&Download</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Uma nova versão do FreeFileSync está disponível:</target>
+
<source>Confirm</source>
<target>Confirmar</target>
@@ -1294,11 +1279,11 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Exclude temporarily</source>
<target>Excluir temporariamente</target>
-<source>Copy to...</source>
-<target>Copiar para...</target>
+<source>&Copy to...</source>
+<target>&Copiar para...</target>
-<source>Delete</source>
-<target>Eliminar</target>
+<source>&Delete</source>
+<target>&Deletar</target>
<source>Include all</source>
<target>Incluir tudo</target>
@@ -1348,9 +1333,6 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Remove entry from list</source>
<target>Remover entrada da lista</target>
-<source>Synchronization Settings</source>
-<target>Definições de Sincronização</target>
-
<source>Clear filter</source>
<target>Limpar filtro</target>
@@ -1438,27 +1420,27 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Shut down</source>
<target>Desligar</target>
+<source>Paused</source>
+<target>Em pausa</target>
+
+<source>Initializing...</source>
+<target>A iniciar...</target>
+
<source>Scanning...</source>
<target>A pesquisar...</target>
<source>Comparing content...</source>
<target>A comparar...</target>
+<source>Completed</source>
+<target>Terminado</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Seleccionar tudo</target>
-<source>Paused</source>
-<target>Em pausa</target>
-
-<source>Initializing...</source>
-<target>A iniciar...</target>
-
-<source>Completed</source>
-<target>Terminado</target>
-
<source>&Continue</source>
<target>&Continuar</target>
@@ -1468,6 +1450,9 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Log</source>
<target>Registo</target>
+<source>Loading...</source>
+<target>A carregar...</target>
+
<source>
<pluralform>Copy the following item to another folder?</pluralform>
<pluralform>Copy the following %x items to another folder?</pluralform>
@@ -1525,6 +1510,15 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>&Show</source>
<target>&Mostrar</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Identificar ficheiros iguais ao comparar hora de modificação e tamanho.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Identificar ficheiros iguais ao comparar o conteúdo.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identificar ficheiros iguais, comparando o tamanho do ficheiro.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identificar e propagar mudanças nos dois lados. Eliminações, cópias e conflitos são detectados automaticamente usando base de dados.</target>
@@ -1537,6 +1531,15 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Configure your own synchronization rules.</source>
<target>Configure as suas regras de sincronização.</target>
+<source>Synchronization Settings</source>
+<target>Definições de Sincronização</target>
+
+<source>Comparison</source>
+<target>Comparação</target>
+
+<source>Synchronization</source>
+<target>Sincronização</target>
+
<source>Today</source>
<target>Hoje</target>
@@ -1573,11 +1576,11 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Append a time stamp to each file name</source>
<target>Adicione data/hora ao nome de cada ficheiro</target>
-<source>Comparison</source>
-<target>Comparação</target>
+<source>Main config</source>
+<target>Configuração principal</target>
-<source>Synchronization</source>
-<target>Sincronização</target>
+<source>empty</source>
+<target>vazia</target>
<source>Leave as unresolved conflict</source>
<target>Deixar como conflito</target>
@@ -1597,6 +1600,27 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Percentage</source>
<target>Percentagem</target>
+<source>Internet access failed.</source>
+<target>Falha ao acessar a Internet.</target>
+
+<source>Check for Program Updates</source>
+<target>Procurar actualizações do programa</target>
+
+<source>Download now?</source>
+<target>Fazer download agora?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync está actualizado.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Não é possível ligar a www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Não é possível encontrar a última versão do FreeFileSync online. Deseja verificar manualmente?</target>
+
+<source>&Check</source>
+<target>&Verificar</target>
+
<source>Unable to register to receive system messages.</source>
<target>Não foi possível registar para receber mensagens do sistema.</target>
@@ -1624,6 +1648,9 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Cannot copy permissions from %x to %y.</source>
<target>Não é possível copiar as permissões de %x para %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x não é um nome regular de directório.</target>
+
<source>Cannot find system function %x.</source>
<target>Não é possível encontrar a função do sistema %x.</target>
@@ -1685,7 +1712,7 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<target>Os seguintes elementos XML não puderam ser lidos:</target>
<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
-<target>O arquivo de instalação %x está incompleto. Os elementos em falta serão definidos para seus valores iniciais.</target>
+<target>O ficheiro de instalação %x está incompleto. Os elementos em falta serão definidos para seus valores iniciais.</target>
<source>Prepare installation</source>
<target>A preparar a instalação</target>
@@ -1750,9 +1777,15 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>FreeFileSync Synchronization Database</source>
<target>Base de Dados de Sincronização FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Configuração do RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Configuração do RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Editar com FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Obrigado pela sua doação e apoio!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Este instalador para doadores do FreeFileSync atingiu seu limite de instalação. Descarregar a versão normal na página do FreeFileSync agora?</target>
+
diff --git a/FreeFileSync/Build/Languages/portuguese_br.lng b/FreeFileSync/Build/Languages/portuguese_br.lng
index e047d1eb..5207e0f1 100644
--- a/FreeFileSync/Build/Languages/portuguese_br.lng
+++ b/FreeFileSync/Build/Languages/portuguese_br.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Configurando direções padrões de sincronização: Arquivos antigos serão substituídos por arquivos mais novos.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Verificando a disponibilidade da lixeira para a pasta %x...</target>
+<source>Creating folder %x</source>
+<target>Criando pasta %x</target>
+
+<source>Creating file %x</source>
+<target>Criando arquivo %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Criando link simbólico %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Movendo arquivo %x para a Lixeira</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Apagando link simbólico %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Verificando a disponibilidade da lixeira para a pasta %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>A Lixeira não está disponível para as seguintes pastas. Os arquivos serão apagados permanentemente:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Não foi possível encontrar o arquivo %x.</target>
+<source>Error</source>
+<target>Erro</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>O arquivo %x não contém uma configuração válida.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Não foi possível localizar as seguintes pastas:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Você pode ignorar este erro para considerar cada pasta como vazia. As pastas serão criadas automaticamentes durante a sincronização.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Se você ignorar este erro, as pastas serão consideradas como vazias. Pastas faltantes serão criadas automaticamente quando necessárias.</target>
<source>A folder input field is empty.</source>
<target>Um campo de entrada de pasta está vazio.</target>
@@ -246,9 +258,6 @@ Atual: %y bytes
<source>Cannot find device %x.</source>
<target>Não foi possível encontrar o dispositivo %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Não foi possível determinar o espaço livre em disco para %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Não foi possível criar o diretório %x.</target>
@@ -267,12 +276,15 @@ Atual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Não foi possível resolver o link simbólico %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Não foi possível mover %x para a Lixeira.</target>
-
<source>Cannot open directory %x.</source>
<target>Não foi possível abrir o diretório %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Não foi possível determinar o espaço livre em disco para %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Não foi possível mover %x para a Lixeira.</target>
+
<source>Incorrect command line:</source>
<target>Linha de comando incorreta:</target>
@@ -345,9 +357,6 @@ Atual: %y bytes
<source>Detecting abandoned lock...</source>
<target>Detectando travamento abandonado...</target>
-<source>Creating file %x</source>
-<target>Criando arquivo %x</target>
-
<source>Saving file %x...</source>
<target>Salvando arquivo %x...</target>
@@ -366,9 +375,6 @@ Atual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>Não foi possível travar o diretório %x.</target>
-<source>Scanning:</source>
-<target>Pesquisando:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Atual: %y bytes
<pluralform>%x threads</pluralform>
</target>
+<source>Scanning:</source>
+<target>Pesquisando:</target>
+
<source>/sec</source>
<target>/seg</target>
@@ -488,8 +497,8 @@ O comando é disparado se:
- novas pastas aparecem (p. ex. Pen drive inserido)
</target>
-<source>&Start</source>
-<target>&Iniciar</target>
+<source>Start</source>
+<target>Iniciar</target>
<source>About</source>
<target>Sobre</target>
@@ -503,15 +512,15 @@ O comando é disparado se:
<source>Automated Synchronization</source>
<target>Sincronização Automatizada</target>
+<source>The following path does not support directory monitoring:</source>
+<target>O seguinte caminho não suporta monitoramento de diretório:</target>
+
<source>Directory monitoring active</source>
<target>Monitoramento de diretórios ativado</target>
<source>Waiting until all directories are available...</source>
<target>Aguardando até todos os diretórios estarem disponíveis...</target>
-<source>Error</source>
-<target>Erro</target>
-
<source>&Restore</source>
<target>&Restaurar</target>
@@ -524,11 +533,14 @@ O comando é disparado se:
<source>&Retry</source>
<target>&Tentar Novamente</target>
+<source>File time and size</source>
+<target>Data e tamanho do arquivo</target>
+
<source>File content</source>
<target>Conteúdo do arquivo</target>
-<source>File time and size</source>
-<target>Data e tamanho do arquivo</target>
+<source>File size</source>
+<target>Tamanho do arquivo</target>
<source>Two way</source>
<target>Dois sentidos</target>
@@ -557,12 +569,6 @@ O comando é disparado se:
<source>Removing old versions...</source>
<target>Removendo versões antigas...</target>
-<source>Creating symbolic link %x</source>
-<target>Criando link simbólico %x</target>
-
-<source>Creating folder %x</source>
-<target>Criando pasta %x</target>
-
<source>Updating file %x</source>
<target>Atualizando arquivo %x...</target>
@@ -680,30 +686,6 @@ O comando é disparado se:
<source>Serious Error</source>
<target>Erro Grave</target>
-<source>Check for Program Updates</source>
-<target>Verificar se existem atualizações</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Uma nova versão do FreeFileSync está disponível:</target>
-
-<source>Download now?</source>
-<target>Baixar agora?</target>
-
-<source>&Download</source>
-<target>&Baixar</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync está atualizado.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Não foi possível conectar a www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Não foi possível encontrar a versão atual do FreeFileSync online. Deseja verificar manualmente?</target>
-
-<source>&Check</source>
-<target>&Verificar</target>
-
<source>Symlink</source>
<target>Link Simbólico</target>
@@ -764,11 +746,20 @@ O comando é disparado se:
<source>Paste</source>
<target>Colar</target>
-<source>Local Synchronization Settings</source>
-<target>Configurações de Sincronização Local</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>A pasta selecionada %x não pode ser usada com o FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Por favor, selecione uma pasta em um sistema de arquivos local, de rede ou de um dispositivo MTP.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>A pasta %x selecionada não pode ser usada com o FreeFileSync. Por favor, selecione uma pasta em seu sistema de arquivos local, na rede ou em um dispositivo MTP.</target>
+<source>SFTP folder</source>
+<target>Pasta SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Selecionar pasta SFTP</target>
+
+<source>Select alternative folder type</source>
+<target>Selecionar tipo alternativo de pasta</target>
<source>&New</source>
<target>&Novo</target>
@@ -797,8 +788,8 @@ O comando é disparado se:
<source>&Actions</source>
<target>A&ções</target>
-<source>&Options</source>
-<target>&Opções</target>
+<source>&Preferences</source>
+<target>&Preferências</target>
<source>&Language</source>
<target>&Idioma</target>
@@ -839,9 +830,6 @@ O comando é disparado se:
<source>Remove folder pair</source>
<target>Remover par de pastas</target>
-<source>Select SFTP folder</source>
-<target>Selecionar pasta SFTP</target>
-
<source>Swap sides</source>
<target>Inverter lados</target>
@@ -887,27 +875,15 @@ O comando é disparado se:
<source>Total bytes to copy</source>
<target>Bytes totais a serem copiados</target>
+<source>Folder pair:</source>
+<target>Par de pastas:</target>
+
<source>Use local settings:</source>
<target>Usar configurações locais:</target>
<source>Select a variant:</source>
<target>Selecione uma variante:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Identifica arquivos iguais comparando modificações na data e no tamanho.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Identifica arquivos iguais comparando o conteúdo do arquivo.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignorar mudança de horário (em horas)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Considera horário de arquivos com uma diferença especificada como iguais</target>
-
-<source>Handle daylight saving time</source>
-<target>Como lidar com horário de verão</target>
-
<source>Include &symbolic links:</source>
<target>Incluir &links simbólicos:</target>
@@ -920,6 +896,18 @@ O comando é disparado se:
<source>More information</source>
<target>Mais informações</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignorar mudança de tempo [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Lista de diferença de tempo nos arquivos para ignorar</target>
+
+<source>Example:</source>
+<target>Exemplo:</target>
+
+<source>Handle daylight saving time</source>
+<target>Como lidar com horário de verão</target>
+
<source>Local settings:</source>
<target>Configurações locais:</target>
@@ -1009,14 +997,17 @@ O comando é disparado se:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Organizar par de pastas</target>
+
<source>Enter your SFTP login details:</source>
<target>Entre com seus detalhes de login do SFTP:</target>
<source>Server name or IP address:</source>
<target>Nome do servidor ou endereço IP:</target>
-<source>Examples:</source>
-<target>Exemplos:</target>
+<source>Port:</source>
+<target>Porta:</target>
<source>User name:</source>
<target>Nome do usuário:</target>
@@ -1030,6 +1021,12 @@ O comando é disparado se:
<source>Directory on server:</source>
<target>Diretório no servidor:</target>
+<source>Select a directory on the server:</source>
+<target>Selecione um diretório no servidor:</target>
+
+<source>Select Folder</source>
+<target>Selecionar Pasta</target>
+
<source>Start synchronization now?</source>
<target>Iniciar sincronização agora?</target>
@@ -1039,9 +1036,6 @@ O comando é disparado se:
<source>&Don't show this dialog again</source>
<target>&Não mostrar este diálogo novamente</target>
-<source>Arrange folder pair</source>
-<target>Organizar par de pastas</target>
-
<source>Items found:</source>
<target>Elementos encontrados:</target>
@@ -1093,6 +1087,12 @@ O comando é disparado se:
<source>How can I schedule a batch job?</source>
<target>Como posso agendar uma tarefa em lote?</target>
+<source>&Keep relative paths</source>
+<target>&Manter caminhos relativos</target>
+
+<source>&Overwrite existing files</source>
+<target>&Sobrescrever arquivos existentes</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>As seguintes configurações são utilizadas para todas as tarefas de sincronização.</target>
@@ -1183,14 +1183,17 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Delete Items</source>
<target>Apagar Itens</target>
+<source>Copy items</source>
+<target>Copiar itens</target>
+
<source>Options</source>
<target>Opções</target>
<source>Select Time Span</source>
<target>Selecionar Intervalo de Tempo</target>
-<source>&Preferences</source>
-<target>&Preferências</target>
+<source>&Options</source>
+<target>&Opções</target>
<source>Main Bar</source>
<target>Barra Principal</target>
@@ -1210,6 +1213,12 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Overview</source>
<target>Parâmetros</target>
+<source>&Download</source>
+<target>&Baixar</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Uma nova versão do FreeFileSync está disponível:</target>
+
<source>Confirm</source>
<target>Confirmar</target>
@@ -1270,8 +1279,11 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Exclude temporarily</source>
<target>Excluir temporariamente</target>
-<source>Delete</source>
-<target>Apagar</target>
+<source>&Copy to...</source>
+<target>&Copiar para...</target>
+
+<source>&Delete</source>
+<target>&Apagar</target>
<source>Include all</source>
<target>Incluir todos</target>
@@ -1321,9 +1333,6 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Remove entry from list</source>
<target>Remover entrada da lista</target>
-<source>Synchronization Settings</source>
-<target>Configurações de Sincronização</target>
-
<source>Clear filter</source>
<target>Limpar filtro</target>
@@ -1411,27 +1420,27 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Shut down</source>
<target>Desligar</target>
+<source>Paused</source>
+<target>Pausado</target>
+
+<source>Initializing...</source>
+<target>Inicializando...</target>
+
<source>Scanning...</source>
<target>Pesquisando...</target>
<source>Comparing content...</source>
<target>Comparando conteúdo...</target>
+<source>Completed</source>
+<target>Finalizado</target>
+
<source>Info</source>
<target>Informações</target>
<source>Select all</source>
<target>Seleciona todos</target>
-<source>Paused</source>
-<target>Pausado</target>
-
-<source>Initializing...</source>
-<target>Inicializando...</target>
-
-<source>Completed</source>
-<target>Finalizado</target>
-
<source>&Continue</source>
<target>&Continuar</target>
@@ -1441,6 +1450,21 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Log</source>
<target>Log</target>
+<source>Loading...</source>
+<target>Carregando...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Copiar o seguinte item para outra pasta?</pluralform>
+<pluralform>Copiar os seguintes %x itens para outra pasta?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Por favor, entre com uma pasta de destino.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<pluralform>Você realmente deseja apagar os seguintes %x itens?</pluralform>
</target>
-<source>Preferences</source>
-<target>Preferências</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Copiar DACL, SACL, Proprietário, Grupo</target>
@@ -1489,6 +1510,15 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>&Show</source>
<target>&Mostrar</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Identifica arquivos iguais comparando modificações na data e no tamanho.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Identifica arquivos iguais comparando o conteúdo do arquivo.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identifica arquivos iguais comparando os seus tamanhos.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identifica e propaga as mudanças em ambos os lados. Arquivos e pastas apagados e/ou movidos e conflitos são detectados automaticamente usando um banco de dados.</target>
@@ -1501,6 +1531,15 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Configure your own synchronization rules.</source>
<target>Configure as suas próprias regras de sincronização.</target>
+<source>Synchronization Settings</source>
+<target>Configurações de Sincronização</target>
+
+<source>Comparison</source>
+<target>Comparação</target>
+
+<source>Synchronization</source>
+<target>Sincronização</target>
+
<source>Today</source>
<target>Hoje</target>
@@ -1537,11 +1576,11 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Append a time stamp to each file name</source>
<target>Coloca uma estampa de tempo para cada nome de arquivo</target>
-<source>Comparison</source>
-<target>Comparação</target>
+<source>Main config</source>
+<target>Config. principal</target>
-<source>Synchronization</source>
-<target>Sincronização</target>
+<source>empty</source>
+<target>vazio</target>
<source>Leave as unresolved conflict</source>
<target>Deixar como conflito não resolvido</target>
@@ -1561,6 +1600,27 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Percentage</source>
<target>Percentual</target>
+<source>Internet access failed.</source>
+<target>Acesso à internet falhou.</target>
+
+<source>Check for Program Updates</source>
+<target>Verificar se existem atualizações</target>
+
+<source>Download now?</source>
+<target>Baixar agora?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync está atualizado.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Não foi possível conectar a www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Não foi possível encontrar a versão atual do FreeFileSync online. Deseja verificar manualmente?</target>
+
+<source>&Check</source>
+<target>&Verificar</target>
+
<source>Unable to register to receive system messages.</source>
<target>Não foi possível registrar para receber mensagens do sistema.</target>
@@ -1588,6 +1648,9 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Cannot copy permissions from %x to %y.</source>
<target>Não foi possível copiar as permissões de %x para %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x não é um nome de diretório regular.</target>
+
<source>Cannot find system function %x.</source>
<target>Não foi possível localizar a função de sistema %x.</target>
@@ -1714,9 +1777,15 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>FreeFileSync Synchronization Database</source>
<target>Banco de dados de sincronização do FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Configuração do RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Configuração do RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Editar com FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Obrigado pela sua doação e suporte!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Este instalador do FreeFileSync para doadores atingiu seu limite de instalação. Baixar a versão regular da página do FreeFileSync agora?</target>
+
diff --git a/FreeFileSync/Build/Languages/romanian.lng b/FreeFileSync/Build/Languages/romanian.lng
index 9ad6dcea..f38efc04 100644
--- a/FreeFileSync/Build/Languages/romanian.lng
+++ b/FreeFileSync/Build/Languages/romanian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Baza de date existentă va fi făcută compatibilă cu versiunea softului și apoi va fi setată direcția implicită de sincronizare: Filele vechi vor fi suprascrise de cele noi.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Verific dacă Reciclatorul e disponibil pentru dosarul %x...</target>
+<source>Creating folder %x</source>
+<target>Creez dosarul %x</target>
+
+<source>Creating file %x</source>
+<target>Creez fila %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Creez legătura simbolică %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Mut fila %x în Reciclator</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Șterg legătura simbolică %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Verific dacă Reciclatorul e disponibil pentru dosarul %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Reciclatorul nu este disponibil pentru dosarele următoare. Filele șterse de acolo vor dispărea în mod definitiv:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Nu pot găsi fila %x.</target>
+<source>Error</source>
+<target>Eroare</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Fila %x nu conține o configurație validă.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Nu pot găsi dosarele următoare:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Poți ignora această eroare dacă vrei ca ambele dosare să fie considerate goale. Dosarele vor fi apoi create automat în timpul sincronizării.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Dacă ignori această eroare, dosarele lipsă vor fi considerate goale. Dosarele lipsă vor fi create automat la nevoie.</target>
<source>A folder input field is empty.</source>
<target>Un cîmp de introducere a dosarului este gol.</target>
@@ -246,9 +258,6 @@ Actuală: %y baiți
<source>Cannot find device %x.</source>
<target>Nu pot găsi dispozitivul %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Nu pot determina spațiul liber de stocare pentru %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Nu pot crea dosarul %x.</target>
@@ -267,12 +276,15 @@ Actuală: %y baiți
<source>Cannot resolve symbolic link %x.</source>
<target>Nu pot rezolva legătura simbolică %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Nu pot muta %x în Reciclator.</target>
-
<source>Cannot open directory %x.</source>
<target>Nu pot deschide dosarul %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Nu pot determina spațiul liber de stocare pentru %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Nu pot muta %x în Reciclator.</target>
+
<source>Incorrect command line:</source>
<target>Linie de comandă incorectă:</target>
@@ -347,9 +359,6 @@ Actuală: %y baiți
<source>Detecting abandoned lock...</source>
<target>Detectez zăvorîrea [lock] abandonată...</target>
-<source>Creating file %x</source>
-<target>Creez fila %x</target>
-
<source>Saving file %x...</source>
<target>Salvez fila %x...</target>
@@ -368,9 +377,6 @@ Actuală: %y baiți
<source>Cannot set directory lock for %x.</source>
<target>Nu pot face zăvorîrea dosarului %x.</target>
-<source>Scanning:</source>
-<target>Scanez:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -381,6 +387,9 @@ Actuală: %y baiți
<pluralform>%x de fire</pluralform>
</target>
+<source>Scanning:</source>
+<target>Scanez:</target>
+
<source>/sec</source>
<target>/sec</target>
@@ -491,8 +500,8 @@ Comanda este declanșată dacă:
- apar dosare noi (de ex. prin atașarea unui dispozitiv USB)
</target>
-<source>&Start</source>
-<target>&Pornește</target>
+<source>Start</source>
+<target>Pornește</target>
<source>About</source>
<target>Despre</target>
@@ -506,15 +515,15 @@ Comanda este declanșată dacă:
<source>Automated Synchronization</source>
<target>Sincronizare Automată</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Calea următoare nu suportă monitorizarea dosarelor:</target>
+
<source>Directory monitoring active</source>
<target>Monitorizarea dosarelor este activă</target>
<source>Waiting until all directories are available...</source>
<target>Aștept pînă cînd toate dosarele vor fi disponibile...</target>
-<source>Error</source>
-<target>Eroare</target>
-
<source>&Restore</source>
<target>&Restaurează</target>
@@ -527,11 +536,14 @@ Comanda este declanșată dacă:
<source>&Retry</source>
<target>&Reîncearcă</target>
+<source>File time and size</source>
+<target>Timpul și Mărimea Filelor</target>
+
<source>File content</source>
<target>Conținutul Filelor</target>
-<source>File time and size</source>
-<target>Timpul și Mărimea Filelor</target>
+<source>File size</source>
+<target>Mărimea Filei</target>
<source>Two way</source>
<target>Ambele Direcții</target>
@@ -560,12 +572,6 @@ Comanda este declanșată dacă:
<source>Removing old versions...</source>
<target>Înlătur versiunile vechi...</target>
-<source>Creating symbolic link %x</source>
-<target>Creez legătura simbolică %x</target>
-
-<source>Creating folder %x</source>
-<target>Creez dosarul %x</target>
-
<source>Updating file %x</source>
<target>Actualizez fila %x</target>
@@ -684,30 +690,6 @@ Comanda este declanșată dacă:
<source>Serious Error</source>
<target>Eroare Serioasă</target>
-<source>Check for Program Updates</source>
-<target>Caută Actualizări ale Programului</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Este disponibilă o versiune nouă a softului:</target>
-
-<source>Download now?</source>
-<target>Vrei s-o descarci acum ?</target>
-
-<source>&Download</source>
-<target>&Descarcă</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>Ai deja ultima versiune a softului.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Nu pot face conectarea la www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Nu pot afla numărul versiunii FreeFileSync disponibile acum pe internet. Vrei să-l cauți manual?</target>
-
-<source>&Check</source>
-<target>&Verifică</target>
-
<source>Symlink</source>
<target>Simlegătură</target>
@@ -768,11 +750,20 @@ Comanda este declanșată dacă:
<source>Paste</source>
<target>Lipește</target>
-<source>Local Synchronization Settings</source>
-<target>Setările Locale de Sincronizare</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Dosarul selectat %x nu poate fi folosit cu FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Selectează un dosar de pe un sistem de file local, din rețea sau de pe un dispozitiv MTP (dispozitiv media portabil).</target>
+
+<source>SFTP folder</source>
+<target>Dosar SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Selectează un Dosar SFTP</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Dosarul selectat %x nu poate fi folosit cu FreeFileSync. Selectează un dosar de pe un sistem de file local, din rețea sau de pe un dispozitiv MTP (dispozitiv media portabil).</target>
+<source>Select alternative folder type</source>
+<target>Selectează tipul de dosar alternativ</target>
<source>&New</source>
<target>Configurație &Nouă</target>
@@ -801,8 +792,8 @@ Comanda este declanșată dacă:
<source>&Actions</source>
<target>&Acțiuni</target>
-<source>&Options</source>
-<target>&Opțiuni</target>
+<source>&Preferences</source>
+<target>&Preferințe</target>
<source>&Language</source>
<target>&Limbă</target>
@@ -843,9 +834,6 @@ Comanda este declanșată dacă:
<source>Remove folder pair</source>
<target>Înlătură Perechea de Dosare</target>
-<source>Select SFTP folder</source>
-<target>Selectează un Dosar SFTP</target>
-
<source>Swap sides</source>
<target>Schimbă compartimentele stîng și drept între ele</target>
@@ -891,27 +879,15 @@ Comanda este declanșată dacă:
<source>Total bytes to copy</source>
<target>Numărul total de baiți copiați</target>
+<source>Folder pair:</source>
+<target>Perechea de Dosare:</target>
+
<source>Use local settings:</source>
<target>Folosește setările locale:</target>
<source>Select a variant:</source>
<target>Selectează o variantă:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Filele identice sînt descoperite prin compararea timpului modificării și a mărimii.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Filele identice sînt descoperite prin compararea conținutului filelor.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignoră decalajul temporal (în ore)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Consideră ca identice timpurile filelor avînd decalajul specificat</target>
-
-<source>Handle daylight saving time</source>
-<target>Gestionarea timpului de vară (DST)</target>
-
<source>Include &symbolic links:</source>
<target>Include legăturile &simbolice:</target>
@@ -924,6 +900,18 @@ Comanda este declanșată dacă:
<source>More information</source>
<target>Mai multe informații</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignoră decalajul temporal [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Lista decalajelor temporale de ignorat</target>
+
+<source>Example:</source>
+<target>Exemplu:</target>
+
+<source>Handle daylight saving time</source>
+<target>Gestionarea timpului de vară (DST)</target>
+
<source>Local settings:</source>
<target>Setări Locale:</target>
@@ -1013,14 +1001,17 @@ Comanda este declanșată dacă:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Aranjează perechea de dosare</target>
+
<source>Enter your SFTP login details:</source>
<target>Introdu detaliile tale de logare la serverul SFTP:</target>
<source>Server name or IP address:</source>
<target>Numele Serverului sau Adresa IP:</target>
-<source>Examples:</source>
-<target>Exemple:</target>
+<source>Port:</source>
+<target>Port:</target>
<source>User name:</source>
<target>Utilizator:</target>
@@ -1034,6 +1025,12 @@ Comanda este declanșată dacă:
<source>Directory on server:</source>
<target>Dosarul de pe server:</target>
+<source>Select a directory on the server:</source>
+<target>Selectează un dosar de pe server:</target>
+
+<source>Select Folder</source>
+<target>Selectează Dosarul</target>
+
<source>Start synchronization now?</source>
<target>Pornesc sincronizarea acum?</target>
@@ -1043,9 +1040,6 @@ Comanda este declanșată dacă:
<source>&Don't show this dialog again</source>
<target>Nu arăta acest &dialog din nou</target>
-<source>Arrange folder pair</source>
-<target>Aranjează perechea de dosare</target>
-
<source>Items found:</source>
<target>Elemente Găsite:</target>
@@ -1097,6 +1091,12 @@ Comanda este declanșată dacă:
<source>How can I schedule a batch job?</source>
<target>Cum pot planifica o sarcină set?</target>
+<source>&Keep relative paths</source>
+<target>&Păstrează căile relative</target>
+
+<source>&Overwrite existing files</source>
+<target>&Suprascrie filele existente</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Setările următoare sînt folosite pentru toate sarcinile de sincronizare.</target>
@@ -1187,14 +1187,17 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Delete Items</source>
<target>Șterge Elementele</target>
+<source>Copy items</source>
+<target>Copiază Elementele</target>
+
<source>Options</source>
<target>Opțiuni</target>
<source>Select Time Span</source>
<target>Selectează Intervalul de Timp</target>
-<source>&Preferences</source>
-<target>&Preferințe</target>
+<source>&Options</source>
+<target>&Opțiuni</target>
<source>Main Bar</source>
<target>Bara Principală</target>
@@ -1214,6 +1217,12 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Overview</source>
<target>Panoramă</target>
+<source>&Download</source>
+<target>&Descarcă</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Este disponibilă o versiune nouă a softului:</target>
+
<source>Confirm</source>
<target>Confirmă</target>
@@ -1278,8 +1287,11 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Exclude temporarily</source>
<target>Exclude Temporar</target>
-<source>Delete</source>
-<target>Șterge</target>
+<source>&Copy to...</source>
+<target>&Copiază în...</target>
+
+<source>&Delete</source>
+<target>Șter&ge</target>
<source>Include all</source>
<target>Include Tot</target>
@@ -1329,9 +1341,6 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Remove entry from list</source>
<target>Înlătură intrarea din listă</target>
-<source>Synchronization Settings</source>
-<target>Setările Sincronizării</target>
-
<source>Clear filter</source>
<target>Curăță Filtrul</target>
@@ -1419,27 +1428,27 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Shut down</source>
<target>Închide PC-ul [Shut down]</target>
+<source>Paused</source>
+<target>Sincronizare Pauzată</target>
+
+<source>Initializing...</source>
+<target>Inițializez...</target>
+
<source>Scanning...</source>
<target>Scanez...</target>
<source>Comparing content...</source>
<target>Compar conținutul...</target>
+<source>Completed</source>
+<target>Sincronizare Terminată</target>
+
<source>Info</source>
<target>Informații</target>
<source>Select all</source>
<target>Selectează Tot</target>
-<source>Paused</source>
-<target>Sincronizare Pauzată</target>
-
-<source>Initializing...</source>
-<target>Inițializez...</target>
-
-<source>Completed</source>
-<target>Sincronizare Terminată</target>
-
<source>&Continue</source>
<target>&Continuă</target>
@@ -1449,6 +1458,22 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Log</source>
<target>Jurnal</target>
+<source>Loading...</source>
+<target>Deschid...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Copiezi următorul element într-un alt dosar?</pluralform>
+<pluralform>Copiezi următoarele %x elemente într-un alt dosar?</pluralform>
+<pluralform>Copiezi următoarele %x de elemente într-un alt dosar?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Introdu un dosar țintă.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1472,9 +1497,6 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<pluralform>Sigur vrei să ștergi definitiv următoarele %x de elemente?</pluralform>
</target>
-<source>Preferences</source>
-<target>Preferințe</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Copiază permisiunile DACL, SACL, Proprietar, Grup</target>
@@ -1499,6 +1521,15 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>&Show</source>
<target>&Arată</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Filele identice sînt descoperite prin compararea timpului modificării și a mărimii lor.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Filele identice sînt descoperite prin compararea conținutului lor.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Filele identice sînt descoperite prin compararea mărimii lor.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identifică și propagă modificările din ambele părți. Ștergerile, renumirile și conflictele sînt detectate automat, folosind o bază de date.</target>
@@ -1511,6 +1542,15 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Configure your own synchronization rules.</source>
<target>Reguli de sincronizare definite de utilizator pentru fiecare situație.</target>
+<source>Synchronization Settings</source>
+<target>Setările Sincronizării</target>
+
+<source>Comparison</source>
+<target>Comparare</target>
+
+<source>Synchronization</source>
+<target>Sincronizare</target>
+
<source>Today</source>
<target>Azi</target>
@@ -1547,11 +1587,11 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Append a time stamp to each file name</source>
<target>Adaugă un marcaj temporal la numele fiecărei file</target>
-<source>Comparison</source>
-<target>Comparare</target>
+<source>Main config</source>
+<target>Configurația Principală</target>
-<source>Synchronization</source>
-<target>Sincronizare</target>
+<source>empty</source>
+<target>gol</target>
<source>Leave as unresolved conflict</source>
<target>Lasă ca conflict nerezolvat</target>
@@ -1571,6 +1611,27 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Percentage</source>
<target>Procent</target>
+<source>Internet access failed.</source>
+<target>Accesul la internet a eșuat.</target>
+
+<source>Check for Program Updates</source>
+<target>Caută Actualizări ale Programului</target>
+
+<source>Download now?</source>
+<target>Vrei s-o descarci acum ?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>Ai deja ultima versiune a softului.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Nu pot face conectarea la www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Nu pot afla numărul versiunii FreeFileSync disponibile acum pe internet. Vrei să-l cauți manual?</target>
+
+<source>&Check</source>
+<target>&Verifică</target>
+
<source>Unable to register to receive system messages.</source>
<target>Nu pot înregistra softul pentru a primi mesaje de la sistemul de operare.</target>
@@ -1598,6 +1659,9 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Cannot copy permissions from %x to %y.</source>
<target>Nu pot copia permisiunile de pe %x pe %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x nu este un nume regulamentar de dosar.</target>
+
<source>Cannot find system function %x.</source>
<target>Nu pot găsi funcția de sistem %x.</target>
@@ -1727,9 +1791,15 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>FreeFileSync Synchronization Database</source>
<target>Bază de Date pentru Sincronizare FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Configurație a Sincronizării în Timp Real</target>
+<source>RealTimeSync Configuration</source>
+<target>Configurație RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Editează cu FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Mulțumiri pentru donația și sprijinul tău!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Acest instalator FreeFileSync pentru donatori și-a atins limita de instalări permise. Descarci acum versiunea obișnuită de pe situl FreeFileSync?</target>
+
diff --git a/FreeFileSync/Build/Languages/russian.lng b/FreeFileSync/Build/Languages/russian.lng
index 04efa1d4..92d47eee 100644
--- a/FreeFileSync/Build/Languages/russian.lng
+++ b/FreeFileSync/Build/Languages/russian.lng
@@ -22,11 +22,17 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>
Настройка направления синхронизации по умолчанию:
-Старые файлы будут заменены более новыми файлами.
+Старые файлы будут перезаписаны более новыми файлами.
</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Проверка доступности "Корзины" для папки %x...</target>
+<source>Creating folder %x</source>
+<target>Создание папки %x</target>
+
+<source>Creating file %x</source>
+<target>Создание файла %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Создание символьной ссылки %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Перемещение файла %x в "Корзину"</target>
@@ -46,6 +52,9 @@
<source>Deleting symbolic link %x</source>
<target>Удаление символьной ссылки %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Проверка доступности "Корзины" для папки %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Для этого пути "Корзина" недоступна! Файлы будут удалены безвозвратно:</target>
@@ -61,6 +70,9 @@
<source>Cannot find file %x.</source>
<target>Невозможно найти файл %x.</target>
+<source>Error</source>
+<target>Ошибка</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Файл %x не содержит действительной конфигурации.</target>
@@ -103,8 +115,8 @@
<source>Cannot find the following folders:</source>
<target>Невозможно найти следующие папки:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Вы можете проигнорировать эту ошибку, приняв каждую папку за пустую. При этом папки будут созданы автоматически во время синхронизации.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Если вы игнорируете эту ошибку, то папки выше будут рассматриваться как пустые. Недостающие папки создаются автоматически, когда это необходимо.</target>
<source>A folder input field is empty.</source>
<target>Поле ввода папки пустое.</target>
@@ -249,9 +261,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>Невозможно найти устройство %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Невозможно определить свободное место на диске для %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Невозможно создать папку %x.</target>
@@ -270,12 +279,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Невозможно разрешить символьную ссылку %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Невозможно переместить %x в "Корзину".</target>
-
<source>Cannot open directory %x.</source>
<target>Невозможно открыть папку %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Невозможно определить свободное место на диске для %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Невозможно переместить %x в "Корзину".</target>
+
<source>Incorrect command line:</source>
<target>Неверная командная строка:</target>
@@ -350,9 +362,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>Обнаружение заброшенной блокировки...</target>
-<source>Creating file %x</source>
-<target>Создание файла %x</target>
-
<source>Saving file %x...</source>
<target>Сохранение файла %x...</target>
@@ -371,9 +380,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>Невозможно установить блокировку папки для %x.</target>
-<source>Scanning:</source>
-<target>Сканирую:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -384,6 +390,9 @@ Actual: %y bytes
<pluralform>%x потоков</pluralform>
</target>
+<source>Scanning:</source>
+<target>Сканирую:</target>
+
<source>/sec</source>
<target>/с</target>
@@ -494,8 +503,8 @@ The command is triggered if:
- появились новые папки (например, подключение переносного носителя)
</target>
-<source>&Start</source>
-<target>&Старт</target>
+<source>Start</source>
+<target>Старт</target>
<source>About</source>
<target>О программе</target>
@@ -509,15 +518,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>Автоматическая синхронизация</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Следующий путь не поддерживает мониторинг папок:</target>
+
<source>Directory monitoring active</source>
<target>Слежение за папками активировано</target>
<source>Waiting until all directories are available...</source>
<target>Ожидать, пока все папки станут доступны...</target>
-<source>Error</source>
-<target>Ошибка</target>
-
<source>&Restore</source>
<target>&Восстановить</target>
@@ -530,11 +539,14 @@ The command is triggered if:
<source>&Retry</source>
<target>&Повторить</target>
+<source>File time and size</source>
+<target>Дата и размер файла</target>
+
<source>File content</source>
<target>Содержимое файла</target>
-<source>File time and size</source>
-<target>Дата и размер файла</target>
+<source>File size</source>
+<target>Размер файла</target>
<source>Two way</source>
<target>В обе стороны</target>
@@ -563,12 +575,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>Удаление старых версий...</target>
-<source>Creating symbolic link %x</source>
-<target>Создание символьной ссылки %x</target>
-
-<source>Creating folder %x</source>
-<target>Создание папки %x</target>
-
<source>Updating file %x</source>
<target>Обновление файла %x</target>
@@ -687,30 +693,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>Серьезная ошибка</target>
-<source>Check for Program Updates</source>
-<target>Проверка обновления программы</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Доступна новая версия FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>Загрузить сейчас?</target>
-
-<source>&Download</source>
-<target>&Загрузить</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>У Вас самая последняя версия FreeFileSync.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Невозможно соединиться с www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Невозможно найти номер текущей версии FreeFileSync онлайн! Вы хотите проверить вручную?</target>
-
-<source>&Check</source>
-<target>&Проверить</target>
-
<source>Symlink</source>
<target>Символьная ссылка</target>
@@ -771,11 +753,20 @@ The command is triggered if:
<source>Paste</source>
<target>Вставить</target>
-<source>Local Synchronization Settings</source>
-<target>Локальные настройки синхронизации</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Выделенная папка %x не может быть использована с FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Пожалуйста, выберите папку в локальной файловой системе, сети или MTP устройстве.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Выбранная папка %x не может быть использована с FreeFileSync. Пожалуйста, выберите папку в локальной файловой системе, сетевую папку или MTP устройство.</target>
+<source>SFTP folder</source>
+<target>Папка SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Выберите папку SFTP</target>
+
+<source>Select alternative folder type</source>
+<target>Выберете альтернативный тип папки</target>
<source>&New</source>
<target>&Новая</target>
@@ -804,8 +795,8 @@ The command is triggered if:
<source>&Actions</source>
<target>&Действия</target>
-<source>&Options</source>
-<target>&Настройки</target>
+<source>&Preferences</source>
+<target>&Предпочтения</target>
<source>&Language</source>
<target>&Язык</target>
@@ -846,9 +837,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>Удалить пару папок</target>
-<source>Select SFTP folder</source>
-<target>Выберите папку SFTP</target>
-
<source>Swap sides</source>
<target>Поменять направление</target>
@@ -894,27 +882,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>Всего байт для копирования</target>
+<source>Folder pair:</source>
+<target>Пара папок:</target>
+
<source>Use local settings:</source>
<target>Использовать локальные настройки:</target>
<source>Select a variant:</source>
<target>Выберите вариант:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Определять одинаковые файлы путем сравнения времени изменения и размера.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Определять одинаковые файлы путем сравнения содержания файла.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Игнорировать временной сдвиг (в часах)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Считать время файлов с указанным смещением равным</target>
-
-<source>Handle daylight saving time</source>
-<target>Ручной переход на летнее время</target>
-
<source>Include &symbolic links:</source>
<target>Включая &символьные ссылки:</target>
@@ -927,6 +903,18 @@ The command is triggered if:
<source>More information</source>
<target>Больше информации</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Игнорировать временной сдвиг [чч:мм]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Список временных сдвигов файлов для игнорирования</target>
+
+<source>Example:</source>
+<target>Пример:</target>
+
+<source>Handle daylight saving time</source>
+<target>Ручной переход на летнее время</target>
+
<source>Local settings:</source>
<target>Локальные настройки:</target>
@@ -1016,14 +1004,17 @@ The command is triggered if:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Упорядочить пару папок</target>
+
<source>Enter your SFTP login details:</source>
<target>Введите свои регистрационные данные SFTP:</target>
<source>Server name or IP address:</source>
<target>Имя сервера или IP адрес:</target>
-<source>Examples:</source>
-<target>Пример:</target>
+<source>Port:</source>
+<target>Порт:</target>
<source>User name:</source>
<target>Имя пользователя:</target>
@@ -1035,7 +1026,13 @@ The command is triggered if:
<target>&Показать пароль</target>
<source>Directory on server:</source>
-<target>Каталог на сервере:</target>
+<target>Папка на сервере:</target>
+
+<source>Select a directory on the server:</source>
+<target>Выберете папку на сервере:</target>
+
+<source>Select Folder</source>
+<target>Выберете папку</target>
<source>Start synchronization now?</source>
<target>Начать синхронизацию сейчас?</target>
@@ -1046,9 +1043,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>Больше &не показывать это окно</target>
-<source>Arrange folder pair</source>
-<target>Упорядочить пару папок</target>
-
<source>Items found:</source>
<target>Элементов найдено:</target>
@@ -1104,6 +1098,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>Как запланировать пакетное задание?</target>
+<source>&Keep relative paths</source>
+<target>&Сохранить относительные пути</target>
+
+<source>&Overwrite existing files</source>
+<target>&Перезаписать существующие файлы</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Следующие настройки используются для всех заданий синхронизации.</target>
@@ -1194,14 +1194,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>Удаление элементов</target>
+<source>Copy items</source>
+<target>Копирование элементов</target>
+
<source>Options</source>
<target>Настройки</target>
<source>Select Time Span</source>
<target>Выбор промежутка времени</target>
-<source>&Preferences</source>
-<target>&Предпочтения</target>
+<source>&Options</source>
+<target>&Настройки</target>
<source>Main Bar</source>
<target>Главная панель</target>
@@ -1221,6 +1224,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>Главная</target>
+<source>&Download</source>
+<target>&Загрузить</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Доступна новая версия FreeFileSync:</target>
+
<source>Confirm</source>
<target>Подтвердить</target>
@@ -1285,8 +1294,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Временно исключить</target>
-<source>Delete</source>
-<target>Удалить</target>
+<source>&Copy to...</source>
+<target>&Копировать в...</target>
+
+<source>&Delete</source>
+<target>&Удалить...</target>
<source>Include all</source>
<target>Включить все</target>
@@ -1336,9 +1348,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>Удалить запись из листа</target>
-<source>Synchronization Settings</source>
-<target>Настройки синхронизации</target>
-
<source>Clear filter</source>
<target>Очистить фильтр</target>
@@ -1426,27 +1435,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>Выключить компьютер</target>
+<source>Paused</source>
+<target>Пауза</target>
+
+<source>Initializing...</source>
+<target>Инициализация...</target>
+
<source>Scanning...</source>
<target>Сканирование...</target>
<source>Comparing content...</source>
<target>Сравнение содержания...</target>
+<source>Completed</source>
+<target>Завершено</target>
+
<source>Info</source>
<target>Информация</target>
<source>Select all</source>
<target>Выделить все</target>
-<source>Paused</source>
-<target>Пауза</target>
-
-<source>Initializing...</source>
-<target>Инициализация...</target>
-
-<source>Completed</source>
-<target>Завершено</target>
-
<source>&Continue</source>
<target>&Продолжить</target>
@@ -1456,6 +1465,22 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Лог (журнал)</target>
+<source>Loading...</source>
+<target>Загрузка...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Скопировать следующий %x элемент в другую папку?</pluralform>
+<pluralform>Скопировать следующие %x элемента в другую папку?</pluralform>
+<pluralform>Скопировать следующие %x элементов в другую папку?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Пожалуйста, укажите папку назначения.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1479,9 +1504,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Вы точно хотите удалить следующие %x элементов?</pluralform>
</target>
-<source>Preferences</source>
-<target>Предпочтения</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Копировать DACL, SACL, владелец, группа</target>
@@ -1509,6 +1531,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&Показать</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Определять одинаковые файлы путем сравнения времени изменения и размера.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Определять одинаковые файлы путем сравнения содержания файла.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Определять одинаковые файлы путем сравнения размера файла.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Выявять и распространять изменения на обе стороны. Удаленные, перемещенные и конфликтующие файлы определяются автоматически с использованием базы данных.</target>
@@ -1521,6 +1552,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Настроить свои собственные правила синхронизации.</target>
+<source>Synchronization Settings</source>
+<target>Настройки синхронизации</target>
+
+<source>Comparison</source>
+<target>Сравнение</target>
+
+<source>Synchronization</source>
+<target>Синхронизация</target>
+
<source>Today</source>
<target>сегодня</target>
@@ -1557,11 +1597,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Добавить отметку времени для каждого имени файла</target>
-<source>Comparison</source>
-<target>Сравнение</target>
+<source>Main config</source>
+<target>Главная конфигурация</target>
-<source>Synchronization</source>
-<target>Синхронизация</target>
+<source>empty</source>
+<target>(папки не выбраны)</target>
<source>Leave as unresolved conflict</source>
<target>Оставить как нерешенный конфликт</target>
@@ -1581,6 +1621,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>Проценты</target>
+<source>Internet access failed.</source>
+<target>Отсутствует доступ в Интернет.</target>
+
+<source>Check for Program Updates</source>
+<target>Проверка обновления программы</target>
+
+<source>Download now?</source>
+<target>Загрузить сейчас?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>У Вас самая последняя версия FreeFileSync.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Невозможно соединиться с www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Невозможно найти номер текущей версии FreeFileSync онлайн! Вы хотите проверить вручную?</target>
+
+<source>&Check</source>
+<target>&Проверить</target>
+
<source>Unable to register to receive system messages.</source>
<target>Невозможно зарегистрироваться для получения системных сообщений.</target>
@@ -1608,6 +1669,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>Невозможно скопировать разрешения от %x к %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x не является обычным именем папки.</target>
+
<source>Cannot find system function %x.</source>
<target>Невозможно найти системную функцию %x.</target>
@@ -1737,9 +1801,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>База данных синхронизации FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Конфигурация RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Конфигурация RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Редактировать с помощью FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Спасибо за Ваше пожертвование и поддержку!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Для этого установщика FreeFileSync для доноров был превышен лимит установок. Скачать обычную версию с домашней страницы FreeFileSync сейчас?</target>
+
diff --git a/FreeFileSync/Build/Languages/serbian.lng b/FreeFileSync/Build/Languages/serbian.lng
index 492ca20c..bb3975ed 100644
--- a/FreeFileSync/Build/Languages/serbian.lng
+++ b/FreeFileSync/Build/Languages/serbian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Постављам подразумеване синхронизацијске смерове: Старе датотеке биће замењене новијим датотекама.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Проверавам доступност Корпе за смеће за фолдер %x...</target>
+<source>Creating folder %x</source>
+<target>Креирам фолдер %x</target>
+
+<source>Creating file %x</source>
+<target>Правим датотеку %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Креирам симболичну везу %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Премештам датотеку %x у Корпи за смеће</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Брисање симболичне везе %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Проверавам доступност Корпе за смеће за фолдер %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Корпа за смеће није доступна за следеће фолдере. Уместо тога датотеке биће обрисане трајно:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Не могу пронаћи датотеку %x.</target>
+<source>Error</source>
+<target>Грешка</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Датотека %x не садржи валидну конфигурацију.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Не могу пронаћи следеће фолдере:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Можете игнорисати ову грешку да би сматрали сваки фолдер празним. Фолдери ће бити креирани аутоматски током синхронизације.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Ако игноришете ову грешку фолдери ће се сматрати празним. Недостајући фолдери креираће се аутоматски по потреби.</target>
<source>A folder input field is empty.</source>
<target>Поље за одабир фолдера је празно.</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>Не могу пронаћи уређај %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Не могу одредити слободан простор на диску за %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Не могу креирати фолдер %x.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Не могу разрешити симболичну везу %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Није могуће преместити %x у Корпи за смеће.</target>
-
<source>Cannot open directory %x.</source>
<target>Не могу отворити фолдер %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Не могу одредити слободан простор на диску за %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Није могуће преместити %x у Корпи за смеће.</target>
+
<source>Incorrect command line:</source>
<target>Нетачна командна линија:</target>
@@ -347,9 +359,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>Детекција обустављеног закључавања...</target>
-<source>Creating file %x</source>
-<target>Правим датотеку %x</target>
-
<source>Saving file %x...</source>
<target>Уписујем датотеку %x...</target>
@@ -368,9 +377,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>Не могу закључати фолдер %x.</target>
-<source>Scanning:</source>
-<target>Претражујем:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -381,6 +387,9 @@ Actual: %y bytes
<pluralform>%x нити</pluralform>
</target>
+<source>Scanning:</source>
+<target>Претражујем:</target>
+
<source>/sec</source>
<target>/сек</target>
@@ -491,8 +500,8 @@ The command is triggered if:
- нови фолдери појаве (нпр. укључење USB стика)
</target>
-<source>&Start</source>
-<target>&Покрени</target>
+<source>Start</source>
+<target>Почетак</target>
<source>About</source>
<target>О програму</target>
@@ -506,15 +515,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>Аутоматска синхронизација</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Следећа путања не подржава надгледање фолдера:</target>
+
<source>Directory monitoring active</source>
<target>Активно надгледање фолдера</target>
<source>Waiting until all directories are available...</source>
<target>Чекање да сви фолдери буду доступни...</target>
-<source>Error</source>
-<target>Грешка</target>
-
<source>&Restore</source>
<target>&Врати</target>
@@ -527,11 +536,14 @@ The command is triggered if:
<source>&Retry</source>
<target>&Понови</target>
+<source>File time and size</source>
+<target>Време и величина датотеке</target>
+
<source>File content</source>
<target>Садржај датотеке</target>
-<source>File time and size</source>
-<target>Време и величина датотеке</target>
+<source>File size</source>
+<target>Величина датотеке</target>
<source>Two way</source>
<target>Двосмерно</target>
@@ -560,12 +572,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>Уклањам старије верзије...</target>
-<source>Creating symbolic link %x</source>
-<target>Креирам симболичну везу %x</target>
-
-<source>Creating folder %x</source>
-<target>Креирам фолдер %x</target>
-
<source>Updating file %x</source>
<target>Ажурирам датотеку %x</target>
@@ -684,30 +690,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>Озбиљна грешка</target>
-<source>Check for Program Updates</source>
-<target>Провери постојање надоградње програма</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Нова верзија FreeFileSync је доступна:</target>
-
-<source>Download now?</source>
-<target>Преузети сада?</target>
-
-<source>&Download</source>
-<target>&Преузми</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync је ажуриран.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Не може се успоставити веза са www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Не могу на мрежи пронаћи тренутни број верзије FreeFileSync-а. Да ли желите да проверите ручно?</target>
-
-<source>&Check</source>
-<target>&Провера</target>
-
<source>Symlink</source>
<target>Сим-веза</target>
@@ -768,11 +750,20 @@ The command is triggered if:
<source>Paste</source>
<target>Залепи</target>
-<source>Local Synchronization Settings</source>
-<target>Локална подешавања синхронизације</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Одабрани фолдер %x не може бити коришћен од стране FreeFileSync-а.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Молимо одаберите фолдер на локалном систему, мрежи или на MTP уређају.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Одабрани фолдер %x не може бити коришћен од стране FreeFileSync-а. Молимо одаберите фолдер на локалном систему, мрежи или на MTP уређају.</target>
+<source>SFTP folder</source>
+<target>SFTP фолдер</target>
+
+<source>Select SFTP folder</source>
+<target>Одаберите SFTP фолдер</target>
+
+<source>Select alternative folder type</source>
+<target>Одаберите алтернативни тип фолдера</target>
<source>&New</source>
<target>&Ново</target>
@@ -801,8 +792,8 @@ The command is triggered if:
<source>&Actions</source>
<target>&Акције</target>
-<source>&Options</source>
-<target>&Опције</target>
+<source>&Preferences</source>
+<target>&Преференце</target>
<source>&Language</source>
<target>&Језик</target>
@@ -843,9 +834,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>Уклони фолдер пар</target>
-<source>Select SFTP folder</source>
-<target>Одаберите SFTP фолдер</target>
-
<source>Swap sides</source>
<target>Замени стране</target>
@@ -891,27 +879,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>Укупно бајтова за копирање</target>
+<source>Folder pair:</source>
+<target>Фолдерски пар:</target>
+
<source>Use local settings:</source>
<target>Употреби локална подешавања:</target>
<source>Select a variant:</source>
<target>Одаберите варијанту:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Идентификуј једнаке датотеке упоређивањем времена промена и величина.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Идентификуј једнаке датотеке упоређивањем садржаја датотека.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Игнориши временски помак (у сатима)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Сматрај времена датотека са задатим помаком као једнака</target>
-
-<source>Handle daylight saving time</source>
-<target>Руковођење сезонским рачунањем времена</target>
-
<source>Include &symbolic links:</source>
<target>Укључи &симболичне везе:</target>
@@ -924,6 +900,18 @@ The command is triggered if:
<source>More information</source>
<target>Више информација</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Игнориши временски помак [чч:мм]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Листа помака времена датотека која се игнорише</target>
+
+<source>Example:</source>
+<target>Пример:</target>
+
+<source>Handle daylight saving time</source>
+<target>Руковођење сезонским рачунањем времена</target>
+
<source>Local settings:</source>
<target>Локална подешавања:</target>
@@ -1013,14 +1001,17 @@ The command is triggered if:
<source>OK</source>
<target>У реду</target>
+<source>Arrange folder pair</source>
+<target>Поређај фолдерски пар</target>
+
<source>Enter your SFTP login details:</source>
<target>Унесите ваше SFTP податке логовања:</target>
<source>Server name or IP address:</source>
<target>Име сервера или IP адресу:</target>
-<source>Examples:</source>
-<target>Примери:</target>
+<source>Port:</source>
+<target>Порт:</target>
<source>User name:</source>
<target>Корисничко име:</target>
@@ -1034,6 +1025,12 @@ The command is triggered if:
<source>Directory on server:</source>
<target>Фолдер на серверу:</target>
+<source>Select a directory on the server:</source>
+<target>Одаберите фолдер на серверу:</target>
+
+<source>Select Folder</source>
+<target>Одаберите фолдер</target>
+
<source>Start synchronization now?</source>
<target>Почни синхронизацију сада?</target>
@@ -1043,9 +1040,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>&Не приказуј овај диалог поновно</target>
-<source>Arrange folder pair</source>
-<target>Поређај фолдерски пар</target>
-
<source>Items found:</source>
<target>Пронађене ставке:</target>
@@ -1097,6 +1091,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>Како могу заказати беч задатак?</target>
+<source>&Keep relative paths</source>
+<target>&Задржи релативне путање</target>
+
+<source>&Overwrite existing files</source>
+<target>&Замени постојеће датотеке</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Следећа подешавања се користе за све синхронизацијске задатке.</target>
@@ -1187,14 +1187,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>Избриши ставке</target>
+<source>Copy items</source>
+<target>Копирај ставке</target>
+
<source>Options</source>
<target>Опције</target>
<source>Select Time Span</source>
<target>Изаберите временски распон</target>
-<source>&Preferences</source>
-<target>&Преференце</target>
+<source>&Options</source>
+<target>&Опције</target>
<source>Main Bar</source>
<target>Главна трака</target>
@@ -1214,6 +1217,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>Преглед</target>
+<source>&Download</source>
+<target>&Преузми</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Нова верзија FreeFileSync је доступна:</target>
+
<source>Confirm</source>
<target>Потврди</target>
@@ -1278,8 +1287,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Тренутно искључи</target>
-<source>Delete</source>
-<target>Избриши</target>
+<source>&Copy to...</source>
+<target>&Копирај у...</target>
+
+<source>&Delete</source>
+<target>&Обриши</target>
<source>Include all</source>
<target>Укључи све</target>
@@ -1329,9 +1341,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>Уклони унос из листе</target>
-<source>Synchronization Settings</source>
-<target>Подешавања синхронизације</target>
-
<source>Clear filter</source>
<target>Обриши филтер</target>
@@ -1419,27 +1428,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>Искључи рачунар</target>
+<source>Paused</source>
+<target>Паузирано</target>
+
+<source>Initializing...</source>
+<target>Покретање...</target>
+
<source>Scanning...</source>
<target>Прегледавање...</target>
<source>Comparing content...</source>
<target>Упоређујем садржај...</target>
+<source>Completed</source>
+<target>Завршено</target>
+
<source>Info</source>
<target>Инфо</target>
<source>Select all</source>
<target>Одабери све</target>
-<source>Paused</source>
-<target>Паузирано</target>
-
-<source>Initializing...</source>
-<target>Покретање...</target>
-
-<source>Completed</source>
-<target>Завршено</target>
-
<source>&Continue</source>
<target>&Настави</target>
@@ -1449,6 +1458,22 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Лог</target>
+<source>Loading...</source>
+<target>Учитавање...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Копирати следећу %x ставку у други фолдер?</pluralform>
+<pluralform>Копирати следеће %x ставке у други фолдер?</pluralform>
+<pluralform>Копирати следећих %x ставки у други фолдер?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Молим унесите одредишни фолдер.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1472,9 +1497,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Да ли стварно желите да обришете следећих %x ставки?</pluralform>
</target>
-<source>Preferences</source>
-<target>Преференце</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Копирај DACL, SACL, Власника, Групу</target>
@@ -1499,6 +1521,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&Прикажи</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Идентификуј једнаке датотеке упоређивањем времена промена и величина.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Идентификуј једнаке датотеке упоређивањем садржаја датотека.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Идентификуј једнаке датотеке упоређивајући њихове величине.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Пронађи и изврши промене на обе стране. Брисања, премештања и конфликти се откривају аутоматски употребом базе података.</target>
@@ -1511,6 +1542,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Конфигуришите ваша властита синхронизациона правила.</target>
+<source>Synchronization Settings</source>
+<target>Подешавања синхронизације</target>
+
+<source>Comparison</source>
+<target>Упоређење</target>
+
+<source>Synchronization</source>
+<target>Синхронизација</target>
+
<source>Today</source>
<target>Данас</target>
@@ -1547,11 +1587,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Додај временску ознаку за свако име датотеке</target>
-<source>Comparison</source>
-<target>Упоређење</target>
+<source>Main config</source>
+<target>Основна конфигурација</target>
-<source>Synchronization</source>
-<target>Синхронизација</target>
+<source>empty</source>
+<target>безимени</target>
<source>Leave as unresolved conflict</source>
<target>Остави као неразрешени конфликт</target>
@@ -1571,6 +1611,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>Проценат</target>
+<source>Internet access failed.</source>
+<target>Приступ интернету није успео.</target>
+
+<source>Check for Program Updates</source>
+<target>Провери постојање надоградње програма</target>
+
+<source>Download now?</source>
+<target>Преузети сада?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync је ажуриран.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Не може се успоставити веза са www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Не могу на мрежи пронаћи тренутни број верзије FreeFileSync-а. Да ли желите да проверите ручно?</target>
+
+<source>&Check</source>
+<target>&Провера</target>
+
<source>Unable to register to receive system messages.</source>
<target>Није могућа регистрација примања системских порука.</target>
@@ -1598,6 +1659,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>Не могу копирати овлашћења од %x у %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x није регуларно име фолдера.</target>
+
<source>Cannot find system function %x.</source>
<target>Не могу пронаћи системску функцију %x.</target>
@@ -1727,9 +1791,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>База података FreeFileSync синхронизације</target>
-<source>RealtimeSync Configuration</source>
-<target>Конфигурација RealtimeSync-а</target>
+<source>RealTimeSync Configuration</source>
+<target>Конфигурација RealTimeSync-а</target>
<source>Edit with FreeFileSync</source>
<target>Уреди са FreeFileSync-ом</target>
+<source>Thanks for your donation and support!</source>
+<target>Хвала за вашу донацију и подршку!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Ова FreeFileSync инсталација за донаторе достигла је своју границу инсталисања. Преузети регуларну верзију са веб странице FreeFileSync-а?</target>
+
diff --git a/FreeFileSync/Build/Languages/outdated/slovenian.lng b/FreeFileSync/Build/Languages/slovenian.lng
index 64c79e47..7fcc09e3 100644
--- a/FreeFileSync/Build/Languages/outdated/slovenian.lng
+++ b/FreeFileSync/Build/Languages/slovenian.lng
@@ -1,211 +1,17 @@
<header>
<language>Slovenščina</language>
- <translator>enter your name here</translator>
+ <translator>Karlo Konc</translator>
<locale>sl_SI</locale>
<image>flag_slovenia.png</image>
<plural_count>4</plural_count>
<plural_definition>n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3</plural_definition>
</header>
-<source>Edit with FreeFileSync</source>
-<target></target>
-
-<source>RealtimeSync Configuration</source>
-<target></target>
-
-<source>FreeFileSync Synchronization Database</source>
-<target></target>
-
-<source>FreeFileSync Batch File</source>
-<target></target>
-
-<source>FreeFileSync Configuration</source>
-<target></target>
-
-<source>Create Explorer context menu entries</source>
-<target></target>
-
-<source>Select installation type:</source>
-<target></target>
-
-<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
-<target></target>
-
-<source>The following XML elements could not be read:</source>
-<target></target>
-
-<source>Cannot copy attributes from %x to %y.</source>
-<target></target>
-
-<source>Cannot copy permissions from %x to %y.</source>
-<target></target>
-
-<source>Unable to register device notifications for %x.</source>
-<target></target>
-
-<source>Copy DACL, SACL, Owner, Group</source>
-<target></target>
-
-<source>Move down</source>
-<target></target>
-
-<source>Move up</source>
-<target></target>
-
-<source>Save as default</source>
-<target></target>
-
-<source>Show files that will be updated on the right side</source>
-<target></target>
-
-<source>Show files that will be updated on the left side</source>
-<target></target>
-
-<source>Remove entry from list</source>
-<target></target>
-
-<source>&Preferences</source>
-<target></target>
-
-<source>SSH File Transfer Protocol</source>
-<target></target>
-
-<source>Arrange folder pair</source>
-<target></target>
-
-<source>Directory on server:</source>
-<target></target>
-
-<source>&Show password</source>
-<target></target>
-
-<source>Password:</source>
-<target></target>
-
-<source>User name:</source>
-<target></target>
-
-<source>Examples:</source>
-<target></target>
-
-<source>Server name or IP address:</source>
-<target></target>
-
-<source>Enter your SFTP login details:</source>
-<target></target>
-
-<source>
-- Not supported by all file systems
-- Requires and creates database files
-- Detection not available for first sync
-</source>
-<target></target>
-
-<source>&Direct</source>
-<target></target>
-
-<source>&Follow</source>
-<target></target>
-
-<source>Include &symbolic links:</source>
-<target></target>
-
-<source>&Ignore time shift (in hours)</source>
-<target></target>
-
-<source>Number of files that will be updated</source>
-<target></target>
-
-<source>Select SFTP folder</source>
-<target></target>
-
-<source>&Actions</source>
-<target></target>
-
-<source>S&ynchronization settings</source>
-<target></target>
-
-<source>&Filter settings</source>
-<target></target>
-
-<source>C&omparison settings</source>
-<target></target>
-
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target></target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target></target>
-
-<source>Cleaning up old log files...</source>
-<target></target>
-
-<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
-<target></target>
-
-<source>Data verification error:</source>
-<target></target>
-
-<source>%x and %y have different content.</source>
-<target></target>
-
-<source>Updating symbolic link %x</source>
-<target></target>
-
-<source>Updating file %x</source>
-<target></target>
-
-<source>E&xit</source>
-<target></target>
-
-<source>Saving file %x...</source>
-<target></target>
-
-<source>Time out while searching for folder %x.</source>
-<target></target>
-
-<source>Failed to connect to SFTP server %x.</source>
-<target></target>
-
-<source>Cannot determine free disk space for %x.</source>
-<target></target>
-
-<source>Cannot find device %x.</source>
-<target></target>
-
-<source>Cannot find %x.</source>
-<target></target>
-
-<source>Cannot copy symbolic link %x to %y.</source>
-<target></target>
-
-<source>Operation not supported for different base folder types.</source>
-<target></target>
-
-<source>
-Unexpected size of data stream.
-Expected: %x bytes
-Actual: %y bytes
-</source>
-<target></target>
-
-<source>Update right item</source>
-<target></target>
-
-<source>Update left item</source>
-<target></target>
-
-<source>Open configuration for editing without executing it.</source>
-<target></target>
-
-<source>Cannot find file %x.</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Obe strani sta se spremenili od zadnje sinhronizacije.</target>
<source>Cannot determine sync-direction:</source>
-<target>Ne morem določiti sinhronizacijske smeri.</target>
+<target>Ne morem določiti sinhronizacijske smeri:</target>
<source>No change since last synchronization.</source>
<target>Ni sprememb od zadnje sinhronizacije.</target>
@@ -216,14 +22,20 @@ Actual: %y bytes
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Nastavljanje privzetih smeri sinhronizacije: Stare datoteke bodo prepisane z novimi datotekami.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Preverjam razpoložljivost koša za mapo %x...</target>
+<source>Creating folder %x</source>
+<target>Ustvarjam mapo %x</target>
+
+<source>Creating file %x</source>
+<target>Ustvarjam datoteko %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Ustvarjam simbolično povezavo %x</target>
<source>Moving file %x to the recycle bin</source>
-<target>Premikam datoteko %x koš</target>
+<target>Premikam datoteko %x v koš</target>
<source>Moving folder %x to the recycle bin</source>
-<target>Premikam imenik %x v koš</target>
+<target>Premikam mapo %x v koš</target>
<source>Moving symbolic link %x to the recycle bin</source>
<target>Premikam simbolično povezavo %x v koš</target>
@@ -235,31 +47,40 @@ Actual: %y bytes
<target>Brisanje mape %x</target>
<source>Deleting symbolic link %x</source>
-<target>Brisanje simboličnih povezav %x</target>
+<target>Brisanje simbolične povezave %x</target>
+
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Preverjam razpoložljivost koša za mapo %x...</target>
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
-<target>Za sledeče imenike koš ni na voljo. Datoteke bodo namesto tega dokončno izbrisane:</target>
+<target>Koš ni na voljo za sledeče mape. Datoteke bodo zaradi tega dokončno izbrisane:</target>
<source>An exception occurred</source>
-<target>Zgodila se je napaka</target>
+<target>Prišlo je do izjeme</target>
<source>A directory path is expected after %x.</source>
-<target>Za %x se pričakuje pot do imenika.</target>
+<target>Pot do imenika se pričakuje po %x.</target>
<source>Syntax error</source>
<target>Sintaktična napaka</target>
+<source>Cannot find file %x.</source>
+<target>Ne najdem datoteke %x.</target>
+
+<source>Error</source>
+<target>Napaka</target>
+
<source>File %x does not contain a valid configuration.</source>
-<target>Datoteka %x ne vsebuje veljavnih nastavitev</target>
+<target>Datoteka %x ne vsebuje veljavnih nastavitev.</target>
<source>Unequal number of left and right directories specified.</source>
<target>Vnešeno je neenako število levih in desnih imenikov.</target>
<source>The config file must not contain settings at directory pair level when directories are set via command line.</source>
-<target>Konfiguracijska datoteka ne sme vsebovati nastavitev na ravni imeniških parov, če so imeniki nastavljeni prek ukazne vrstice.</target>
+<target>Konfiguracijska datoteka ne sme vsebovati nastavitev na ravni imeniških parov, ko so imeniki nastavljeni prek ukazne vrstice.</target>
<source>Directories cannot be set for more than one configuration file.</source>
-<target>Imeniki ne morejo biti nastavljeni za eč kot eno konfiguracijsko datoteko.</target>
+<target>Imeniki ne morejo biti nastavljeni za več kot eno konfiguracijsko datoteko.</target>
<source>Command line</source>
<target>Ukazna vrstica</target>
@@ -268,7 +89,7 @@ Actual: %y bytes
<target>Sintaksa:</target>
<source>global config file:</source>
-<target>datoteka z globalnimi konfiguracijami</target>
+<target>datoteka z globalnimi konfiguracijami:</target>
<source>config files:</source>
<target>konfiguracijske datoteke:</target>
@@ -285,17 +106,20 @@ Actual: %y bytes
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Poljubno število alternativnih parov imenikov za največ eno nastavitveno datoteko.</target>
+<source>Open configuration for editing without executing it.</source>
+<target>Odpri konfiguracijo za urejanje brez njene izvršitve.</target>
+
<source>Cannot find the following folders:</source>
-<target>Ne morem najti naslednjih map:</target>
+<target>Ne najdem naslednjih map:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>To napako, ki smatra vsako mapo kot prazno, lahko ignorirate. Mape bodo potem samodejno ustvarjene med sinhronizacijo.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Mape bodo smatrane kot prazne, če prezrete to napako. Manjkajoče mape bodo ustvarjene samodejno, ko bo to potrebno.</target>
<source>A folder input field is empty.</source>
<target>Vnosno polje za mapo je prazno.</target>
<source>The corresponding folder will be considered as empty.</source>
-<target>Ustrezajoča mapa bo smatrana kot prazna.</target>
+<target>Ustrezna mapa bo smatrana kot prazna.</target>
<source>The following folder paths are dependent from each other:</source>
<target>Naslednje poti imenikov so med seboj odvisne:</target>
@@ -313,7 +137,7 @@ Actual: %y bytes
<target>Velikost:</target>
<source>Content comparison was skipped for excluded files %x.</source>
-<target>Za izločene datoteke %x je bila primerjava vsebine izpuščena</target>
+<target>Primerjava vsebine je bila izpuščena za izločene datoteke %x.</target>
<source>Items differ in attributes only</source>
<target>Elementi se razlikujejo samo v atributih</target>
@@ -334,7 +158,7 @@ Actual: %y bytes
<target>Preračunavam sinhronizacijske smeri...</target>
<source>Out of memory.</source>
-<target>Zmanjkalo pomnilnika.</target>
+<target>Ni dovolj pomnilnika.</target>
<source>Item exists on left side only</source>
<target>Element obstaja samo na levi strani</target>
@@ -355,7 +179,7 @@ Actual: %y bytes
<target>Obe strani sta enaki</target>
<source>Conflict/item cannot be categorized</source>
-<target>Spor/element ne more biti kategoriziran</target>
+<target>Spora/elementa ni mogoče kategorizirati</target>
<source>Copy new item to left</source>
<target>Kopiraj nov element na levo</target>
@@ -367,32 +191,55 @@ Actual: %y bytes
<target>Izbriši levi element</target>
<source>Delete right item</source>
-<target>Izbriše desni element</target>
+<target>Izbriši desni element</target>
<source>Move file on left</source>
-<target>Premakni datoteko na levo</target>
+<target>Premakni datoteko na levo stran</target>
<source>Move file on right</source>
-<target>Premakni datoteko na desno</target>
+<target>Premakni datoteko na desno stran</target>
+
+<source>Update left item</source>
+<target>Posodobi levi predmet</target>
+
+<source>Update right item</source>
+<target>Posodobi desni predmet</target>
<source>Do nothing</source>
<target>Ne naredi ničesar</target>
<source>Update attributes on left</source>
-<target>Posodobi atribute na levi</target>
+<target>Posodobi atribute na levi strani</target>
<source>Update attributes on right</source>
-<target>Posodobi atribute na desni</target>
+<target>Posodobi atribute na desni strani</target>
<source>Cannot read file %x.</source>
<target>Ne morem prebrati datoteke %x.</target>
+<source>
+Unexpected size of data stream.
+Expected: %x bytes
+Actual: %y bytes
+</source>
+<target>
+Nepričakovana velikost toka podatkov.
+Pričakovano: %x bajtov
+Dejansko: %y bajtov
+</target>
+
<source>Cannot write permissions of %x.</source>
<target>Ne morem zapisati dovoljenj od %x.</target>
+<source>Operation not supported for different base folder types.</source>
+<target>Operacija ni podprta za različne osnovne tipe map.</target>
+
<source>Cannot write file %x.</source>
<target>Ne morem zapisati datoteke %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Ne morem kopirati simbolične povezave %x v %y.</target>
+
<source>Cannot move file %x to %y.</source>
<target>Ne morem premakniti datoteko %x v %y.</target>
@@ -402,9 +249,15 @@ Actual: %y bytes
<source>Cannot read file attributes of %x.</source>
<target>Ne morem brati datotečnih atributov od %x.</target>
+<source>Cannot find %x.</source>
+<target>Ne najdem %x.</target>
+
<source>Cannot open file %x.</source>
<target>Ne morem odpreti datoteke %x.</target>
+<source>Cannot find device %x.</source>
+<target>Ne najdem naprave %x.</target>
+
<source>Cannot create directory %x.</source>
<target>Ne morem ustvariti imenika %x.</target>
@@ -423,18 +276,24 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Ne morem razrešiti simbolične povezave %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Ne morem premakniti %x v koš-</target>
-
<source>Cannot open directory %x.</source>
<target>Ne morem odpreti imenika %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Ne morem določiti prostega prostora na disku za %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Ne morem premakniti %x v koš.</target>
+
<source>Incorrect command line:</source>
<target>Napačna ukazna vrstica:</target>
<source>Error Code %x:</source>
<target>Koda napake %x:</target>
+<source>Failed to connect to SFTP server %x.</source>
+<target>Neuspešna povezava na SFTP server %x.</target>
+
<source>
<pluralform>1 byte</pluralform>
<pluralform>%x bytes</pluralform>
@@ -476,6 +335,9 @@ Actual: %y bytes
<source>Searching for folder %x...</source>
<target>Iskanje mape %x...</target>
+<source>Time out while searching for folder %x.</source>
+<target>Čas je potekel med iskanjem datoteke %x.</target>
+
<source>Cannot get process information.</source>
<target>Ne morem pridobiti informacij o procesu.</target>
@@ -499,8 +361,8 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>Zaznavanje opuščenega zaklepa...</target>
-<source>Creating file %x</source>
-<target>Ustvarjam datoteko %x</target>
+<source>Saving file %x...</source>
+<target>Shranjevanje datoteke %x...</target>
<source>Items processed:</source>
<target>Obdelanih elementov:</target>
@@ -517,9 +379,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>Ne morem nastaviti zaklepanja imenikov za %x.</target>
-<source>Scanning:</source>
-<target>Pregledujem:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -531,6 +390,9 @@ Actual: %y bytes
<pluralform>%x niti</pluralform>
</target>
+<source>Scanning:</source>
+<target>Pregledujem:</target>
+
<source>/sec</source>
<target>/sek</target>
@@ -550,7 +412,7 @@ Actual: %y bytes
<target>Ne morem dostopati do Volume Shadov Copy servisa.</target>
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
-<target>Prosimo uporabite 64-bitno različico FreeFileSync za ustvarjanje senčnih kopij na tem sistemu.</target>
+<target>Prosim uporabite 64-bitno različico FreeFileSync za ustvarjanje senčnih kopij na tem sistemu.</target>
<source>Cannot determine volume name for %x.</source>
<target>Ne morem določiti ime nosilca za %x.</target>
@@ -559,7 +421,7 @@ Actual: %y bytes
<target>Ime nosilca %x ni del poti datoteke %y.</target>
<source>Stop requested: Waiting for current operation to finish...</source>
-<target>Zahteva za ustavitev: Čakam da se trenutni proces zaključi...</target>
+<target>Zahteva za ustavitev: čakam da se trenutni proces zaključi...</target>
<source>Unable to create time stamp for versioning:</source>
<target>Časovnega žiga za verzioniranje ni bilo mogoče ustvariti:</target>
@@ -579,6 +441,9 @@ Actual: %y bytes
<source>Save &as...</source>
<target>Shr&ani kot...</target>
+<source>E&xit</source>
+<target>I&zhod</target>
+
<source>&File</source>
<target>&Datoteka</target>
@@ -595,25 +460,25 @@ Actual: %y bytes
<target>Uporaba:</target>
<source>1. Select folders to watch.</source>
-<target>1. Izberite imenike za opazovanje</target>
+<target>1. Izberite mape za opazovanje.</target>
<source>2. Enter a command line.</source>
-<target>2. Vnesite ukazno-vrstico.</target>
+<target>2. Vnesite ukazno vrstico.</target>
<source>3. Press 'Start'.</source>
<target>3. Pritisnite 'Začni'.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>Da začnete uvozite datoteko .ffs_batch</target>
+<target>Da začnete uvozite datoteko .ffs_batch.</target>
<source>Folders to watch:</source>
-<target>Imeniki za pregled:</target>
+<target>Mape za pregled:</target>
<source>Add folder</source>
-<target>Dodaj imenik</target>
+<target>Dodaj mapo</target>
<source>Remove folder</source>
-<target>Odstrani v imenik</target>
+<target>Odstrani mapo</target>
<source>Browse</source>
<target>Brskaj</target>
@@ -638,14 +503,14 @@ Ukaz se sproži če:
- pridejo nove mape (npr. ob vstavitvi USB ključka)
</target>
-<source>&Start</source>
-<target>&Zaženi</target>
+<source>Start</source>
+<target>Začni</target>
<source>About</source>
<target>O programu(1)</target>
<source>Build: %x</source>
-<target>Izgradnja: %x</target>
+<target>Verzija: %x</target>
<source>All files</source>
<target>Vse datoteke</target>
@@ -653,14 +518,14 @@ Ukaz se sproži če:
<source>Automated Synchronization</source>
<target>Avtomatska sinhnorizacija</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Naslednja pot ne podpira nadzorovanja imenika:</target>
+
<source>Directory monitoring active</source>
-<target>Nadzor imenikov je aktven</target>
+<target>Nadzor imenikov je aktiven</target>
<source>Waiting until all directories are available...</source>
-<target>Čakam da so vsi imeniki dostopni...</target>
-
-<source>Error</source>
-<target>Napaka</target>
+<target>Čakam, da so vsi imeniki dostopni...</target>
<source>&Restore</source>
<target>&Obnovi</target>
@@ -674,11 +539,14 @@ Ukaz se sproži če:
<source>&Retry</source>
<target>&Ponovi</target>
+<source>File time and size</source>
+<target>Čas in velikost datoteke</target>
+
<source>File content</source>
<target>Vsebina datoteke</target>
-<source>File time and size</source>
-<target>Čas in velikost datoteke</target>
+<source>File size</source>
+<target>Velikost datoteke</target>
<source>Two way</source>
<target>Obojesmerno</target>
@@ -707,11 +575,11 @@ Ukaz se sproži če:
<source>Removing old versions...</source>
<target>Odstranjujem stare različice...</target>
-<source>Creating symbolic link %x</source>
-<target>Ustvarjam simbolično povezavo %x</target>
+<source>Updating file %x</source>
+<target>Posodabljanje datoteke %x</target>
-<source>Creating folder %x</source>
-<target>Ustvarjam mapo %x</target>
+<source>Updating symbolic link %x</source>
+<target>Posodabljanje simbolične povezave %x</target>
<source>Verifying file %x</source>
<target>Preverjam datoteko %x</target>
@@ -719,6 +587,12 @@ Ukaz se sproži če:
<source>Updating attributes of %x</source>
<target>Posodabljam atribute od %x</target>
+<source>%x and %y have different content.</source>
+<target>%x in %y imata različno vsebino.</target>
+
+<source>Data verification error:</source>
+<target>Napaka pri preverjanju podatkov:</target>
+
<source>Creating a Volume Shadow Copy for %x...</source>
<target>Ustvarjam Volume Shadow Copy za %x...</target>
@@ -729,14 +603,17 @@ Ukaz se sproži če:
<target>Vnosno polje za ciljno mapo ne sme biti prazno.</target>
<source>Source folder %x not found.</source>
-<target>Izvorna mapa %x se ne najde.</target>
+<target>Izvorne mape %x ni moč najti.</target>
<source>Please enter a target folder for versioning.</source>
-<target>Prosimo vnesite ciljno mapo za verzioniranje.</target>
+<target>Prosim vnesite ciljno mapo za verzioniranje.</target>
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Naslednji elementi imajo nerešene konflikte in ne bodo sinhronizirani:</target>
+<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
+<target>Naslednje mape so zelo različne. Prepričajte se, da ste izbrali ustrezne mape za sinhronizacijo.</target>
+
<source>Not enough free disk space available in:</source>
<target>Na voljo ni dovolj prostega prostora na disku v:</target>
@@ -747,7 +624,7 @@ Ukaz se sproži če:
<target>Na voljo:</target>
<source>Multiple folder pairs write to a common subfolder. Please review your configuration.</source>
-<target>Več parov map zapisuje v skupno podmapo. Prosimo, preverite svojo konfiguracijo.</target>
+<target>Več parov map zapisuje v skupno podmapo. Prosim, preverite svojo konfiguracijo.</target>
<source>Synchronizing folder pair:</source>
<target>Sinhroniziram par map:</target>
@@ -759,26 +636,29 @@ Ukaz se sproži če:
<target>naziv opravila</target>
<source>Synchronization stopped</source>
-<target>Sinhnorizacija ustavljena</target>
+<target>Sinhnorizacija zaustavljena</target>
<source>Stopped</source>
<target>Ustavljen</target>
<source>Synchronization completed with errors</source>
-<target>Sinhronizacija se je končala z napakami</target>
+<target>Sinhronizacija dokončana z napakami</target>
<source>Synchronization completed with warnings</source>
-<target>Sinhronizacija se je končala z opozorili</target>
+<target>Sinhronizacija dokončana z opozorili</target>
<source>Warning</source>
<target>Pozor</target>
<source>Nothing to synchronize</source>
-<target>Nič za sinhronizirati</target>
+<target>Ni ničesar za sinhroniziranje</target>
<source>Synchronization completed successfully</source>
<target>Sinhronizacija se je uspešno končala</target>
+<source>Cleaning up old log files...</source>
+<target>Čistim stare datoteke beleženja...</target>
+
<source>You can switch to FreeFileSync's main window to resolve this issue.</source>
<target>Preklopite na FreeFileSync glavno okno za odpravo težave.</target>
@@ -814,27 +694,6 @@ Ukaz se sproži če:
<source>Serious Error</source>
<target>Resna napaka</target>
-<source>Check for Program Updates</source>
-<target>Prevri obstoj nadgradnje programa</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Nova različica FreeFileSync je na voljo:</target>
-
-<source>Download now?</source>
-<target>Prenesem sedaj?</target>
-
-<source>&Download</source>
-<target>&Prenesi</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync je posodobljen.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Na omrežju ne najdem obstoječe verzije FreeFileSync-a. Ali želite preveriti lastnoročno?</target>
-
-<source>&Check</source>
-<target>&Preveri</target>
-
<source>Symlink</source>
<target>Simbolična povezava</target>
@@ -895,8 +754,20 @@ Ukaz se sproži če:
<source>Paste</source>
<target>Prilepi</target>
-<source>Local Synchronization Settings</source>
-<target>Lokalne sinhnorizacijske nastavitve</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Izbrana mapa %x ne more biti uprabljena s FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Prosim izberite mapo na lokalnem sistemu datotek, mreži ali na MTP napravi.</target>
+
+<source>SFTP folder</source>
+<target>SFTP mapa</target>
+
+<source>Select SFTP folder</source>
+<target>Izberi SFTP mapo</target>
+
+<source>Select alternative folder type</source>
+<target>Izberite alternativni tip mape</target>
<source>&New</source>
<target>&Nova</target>
@@ -910,11 +781,23 @@ Ukaz se sproži če:
<source>Start &comparison</source>
<target>Začni &primerjavo</target>
+<source>C&omparison settings</source>
+<target>P&rimerjalne nastavitve</target>
+
+<source>&Filter settings</source>
+<target>Nastavitve &filtra</target>
+
+<source>S&ynchronization settings</source>
+<target>Nastavitve s&inhronizacije</target>
+
<source>Start &synchronization</source>
<target>Začni &sinhnorizacijo</target>
-<source>&Options</source>
-<target>&Možnosti</target>
+<source>&Actions</source>
+<target>&Dejanje</target>
+
+<source>&Preferences</source>
+<target>&Nastavitve</target>
<source>&Language</source>
<target>&Jezik</target>
@@ -935,7 +818,7 @@ Ukaz se sproži če:
<target>&Preveri, če obstaja nova verzija</target>
<source>&Check now</source>
-<target>P&reveri zdaj</target>
+<target>&Preveri zdaj</target>
<source>Check &automatically once a week</source>
<target>S&amodejno preveri enkrat tedensko</target>
@@ -965,7 +848,7 @@ Ukaz se sproži če:
<target>Išči:</target>
<source>Match case</source>
-<target>Ujemaj se s primerom</target>
+<target>Ujemanje s primerom</target>
<source>New</source>
<target>Nova</target>
@@ -991,33 +874,48 @@ Ukaz se sproži če:
<source>Number of files and folders that will be deleted</source>
<target>Število datotek in map, ki bodo izbrisane</target>
+<source>Number of files that will be updated</source>
+<target>Število datotek, ki bodo posodobljene</target>
+
<source>Number of files and folders that will be created</source>
<target>Število datotek in map, ki bodo ustvarjene</target>
<source>Total bytes to copy</source>
<target>Skupno bajtov za kopiranje</target>
+<source>Folder pair:</source>
+<target>Par map:</target>
+
<source>Use local settings:</source>
<target>Uporabi lokalne nastavitve:</target>
<source>Select a variant:</source>
<target>Izberi možnost:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Določi enake datoteke s primerjavo datuma spremembe in velikosti.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Določi enake datoteke s primerjavo vsebine.</target>
+<source>Include &symbolic links:</source>
+<target>Vključuje &simbolične povezave:</target>
-<source>Consider file times with specified offset as equal</source>
-<target>Čas datotek znotraj izbranga časovnega okvirja je upoštevan kot isti</target>
+<source>&Follow</source>
+<target>&Sledi</target>
-<source>Handle daylight saving time</source>
-<target>Upoštevaj poletni in zimski čas</target>
+<source>&Direct</source>
+<target>&Neposredno</target>
<source>More information</source>
<target>Več informacij</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Prezri časovni zamik [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Seznam časovnih zamikov datotek, ki bodo prezrte</target>
+
+<source>Example:</source>
+<target>Primer:</target>
+
+<source>Handle daylight saving time</source>
+<target>Upoštevaj poletni in zimski čas</target>
+
<source>Local settings:</source>
<target>Lokalne nastavitve:</target>
@@ -1031,7 +929,7 @@ Ukaz se sproži če:
<target>Pokaži primere</target>
<source>Time span:</source>
-<target>Časovno obdobje</target>
+<target>Časovno obdobje:</target>
<source>File size:</source>
<target>Velikost datoteke:</target>
@@ -1043,7 +941,7 @@ Ukaz se sproži če:
<target>Maksimum:</target>
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
-<target>Izberi filtrirna pravila za izključitev določenih datotek iz sinhnorizacije. Vpiši pot datotek relativno na imenik v obdelavi</target>
+<target>Izberi filtrirna pravila za izključitev določenih datotek iz sinhnorizacije. Vpiši pot datotek relativno na imenik v obdelavi.</target>
<source>C&lear</source>
<target>&Počisti</target>
@@ -1051,6 +949,17 @@ Ukaz se sproži če:
<source>Detect moved files</source>
<target>Zaznaj premaknjene datoteke</target>
+<source>
+- Not supported by all file systems
+- Requires and creates database files
+- Detection not available for first sync
+</source>
+<target>
+- Ni podprto z vsemi sistemi datotek
+- Zahteva in ustvari datoteke v podatkovni bazi
+- Zaznavanje ni na voljo pri prvem sinhroniziranju
+</target>
+
<source>Detect synchronization directions with the help of database files</source>
<target>Zaznaj smer sinhnorizacije s pomočjo datotek podatkovne baze</target>
@@ -1096,8 +1005,38 @@ Ukaz se sproži če:
<source>OK</source>
<target>V redu</target>
+<source>Arrange folder pair</source>
+<target>Uredi par map</target>
+
+<source>Enter your SFTP login details:</source>
+<target>Vnesite vaše SFTP podatke za prijavo:</target>
+
+<source>Server name or IP address:</source>
+<target>Ime serverja ali IP naslova:</target>
+
+<source>Port:</source>
+<target>Vrata:</target>
+
+<source>User name:</source>
+<target>Uporabniško ime:</target>
+
+<source>Password:</source>
+<target>Geslo:</target>
+
+<source>&Show password</source>
+<target>&Prikaži geslo</target>
+
+<source>Directory on server:</source>
+<target>Imenik na serverju:</target>
+
+<source>Select a directory on the server:</source>
+<target>Izberite imenik na strežniku:</target>
+
+<source>Select Folder</source>
+<target>Izberite mapo</target>
+
<source>Start synchronization now?</source>
-<target>Zaženem sinhnorizacijo takoj?</target>
+<target>Zaženem sinhronizacijo zdaj?</target>
<source>Variant:</source>
<target>Možnost:</target>
@@ -1133,16 +1072,16 @@ Ukaz se sproži če:
<target>Ustavi</target>
<source>Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x</source>
-<target>Ustvari skriptno datoteko za samodejno sinhnorizacijo. Za zagon dvojno kliknite to datoteko ali pa jo umestite v razporejevalnik opravil: %x</target>
+<target>Ustvari skriptno datoteko za nenadzorovano sinhnorizacijo. Za zagon dvojno kliknite to datoteko ali pa jo umestite v razporejevalnik opravil: %x</target>
<source>&Stop</source>
<target>&Ustavi</target>
<source>Stop synchronization at first error</source>
-<target>Ustavi sinhnorizacojo ob prvi napaki</target>
+<target>Ustavi sinhronizacijo ob prvi napaki</target>
<source>Run minimized</source>
-<target>Zaženi minimizirano</target>
+<target>Začeni minimizirano</target>
<source>Save log:</source>
<target>Shrani dnevnik:</target>
@@ -1156,6 +1095,12 @@ Ukaz se sproži če:
<source>How can I schedule a batch job?</source>
<target>Kako nastavim urnik za serijsko opravilo?</target>
+<source>&Keep relative paths</source>
+<target>&Ohrani relativne poti</target>
+
+<source>&Overwrite existing files</source>
+<target>&Prepiši obstoječe datoteke</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Naslednje nastavitve se uporabljajo pri vseh sinhronizacijskih opravilih.</target>
@@ -1168,7 +1113,7 @@ This guarantees a consistent state even in case of a serious error.
</source>
<target>
Kopiraj v začasno datoteko (*.ffs_tmp) preden prepišeš cilj.
-To zagotavlja konsistenco podatkov v primeru napake.
+To zagotavlja konsistenčnost podatkov v primeru napake.
</target>
<source>(recommended)</source>
@@ -1229,13 +1174,16 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Domača stran</target>
<source>Email</source>
-<target>Email</target>
+<target>Elektronska pošta</target>
<source>Published under the GNU General Public License</source>
<target>Objavljeno pod licenco GNU General Public</target>
<source>Many thanks for localization:</source>
-<target>Zahvale za lokalizacijo:</target>
+<target>Zahvala prevajalcem za lokalizacijo:</target>
+
+<source>SSH File Transfer Protocol</source>
+<target>Protokol prenosa SSH datoteke</target>
<source>Save as Batch Job</source>
<target>Shrani kot serijsko opravilo</target>
@@ -1243,12 +1191,18 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Delete Items</source>
<target>Izbriši elemente</target>
+<source>Copy items</source>
+<target>Kopiraj elemente</target>
+
<source>Options</source>
<target>Možnosti</target>
<source>Select Time Span</source>
<target>Izberi časovno obdobje</target>
+<source>&Options</source>
+<target>&Možnosti</target>
+
<source>Main Bar</source>
<target>Glavna vrstica</target>
@@ -1267,6 +1221,12 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Overview</source>
<target>Pregled</target>
+<source>&Download</source>
+<target>&Prenesi</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Nova različica FreeFileSync je na voljo:</target>
+
<source>Confirm</source>
<target>Potrdi</target>
@@ -1321,7 +1281,7 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Nastavi smer:</target>
<source>multiple selection</source>
-<target>mnogokratna izbira</target>
+<target>večkratni izbor</target>
<source>Include via filter:</source>
<target>Vključi preko filtra:</target>
@@ -1335,8 +1295,11 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Exclude temporarily</source>
<target>Začasno izključi</target>
-<source>Delete</source>
-<target>Izbriši</target>
+<source>&Copy to...</source>
+<target>&Kopiraj v...</target>
+
+<source>&Delete</source>
+<target>&Izbriši</target>
<source>Include all</source>
<target>Vključi vse</target>
@@ -1366,7 +1329,7 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Zadnja seja</target>
<source>Folder Comparison and Synchronization</source>
-<target>Primerjava in sinhronizacija imenika</target>
+<target>Primerjava in sinhronizacija mape</target>
<source>Configuration saved</source>
<target>Konfiguracija shranjena</target>
@@ -1383,26 +1346,26 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Do&n't save</source>
<target>Ne shra&ni</target>
-<source>Synchronization Settings</source>
-<target>Nastavitve sinhnorizacije</target>
+<source>Remove entry from list</source>
+<target>Odstrani vnos iz seznama</target>
<source>Clear filter</source>
<target>Počisti filter</target>
<source>Show files that exist on left side only</source>
-<target>Prikaži datoteke, ki obstajajo samo na levi</target>
+<target>Prikaži datoteke, ki obstajajo samo na levi strani</target>
<source>Show files that exist on right side only</source>
-<target>Prikaži datoteke, ki obstajajo samo na desni</target>
+<target>Prikaži datoteke, ki obstajajo samo na desni strani</target>
<source>Show files that are newer on left</source>
-<target>Prikaži datoteke, ki so novejše na levi</target>
+<target>Prikaži novejše datoteke, ki so na levi strani</target>
<source>Show files that are newer on right</source>
-<target>Prikaži datoteke, ki so novejše na desni</target>
+<target>Prikaži novejše datoteke, ki so na desni strani</target>
<source>Show files that are equal</source>
-<target>Prikaži datoteke, ki so enake</target>
+<target>Prikaši datoteke, ki so identične</target>
<source>Show files that are different</source>
<target>Prikaži datoteke, ki so različne</target>
@@ -1422,12 +1385,21 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Show files that will be deleted on the right side</source>
<target>Prikaži datoteke, ki bodo izbrisane na desni strani</target>
+<source>Show files that will be updated on the left side</source>
+<target>Pokaži datoteke, ki bodo posodobljene na levi strani</target>
+
+<source>Show files that will be updated on the right side</source>
+<target>Pokaži datoteke, ki bodo posodobljene na desni strani</target>
+
<source>Show files that won't be copied</source>
<target>Prikaži datoteke, ki ne bodo kopirane</target>
<source>Show filtered or temporarily excluded files</source>
<target>Pokaži filtrirane ali začasno izključene datoteke</target>
+<source>Save as default</source>
+<target>Shrani kot privzeto</target>
+
<source>Filter</source>
<target>Filter</target>
@@ -1437,6 +1409,12 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Cannot find %x</source>
<target>Ne najdem %x</target>
+<source>Move up</source>
+<target>Premakni gor</target>
+
+<source>Move down</source>
+<target>Premakni dol</target>
+
<source>Comma-separated values</source>
<target>Vrednosti ločene z vejico</target>
@@ -1450,35 +1428,35 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Zapri pogovorno okno z napredkom</target>
<source>Log off</source>
-<target>Odjavi</target>
+<target>Odjava</target>
<source>Standby</source>
-<target>V pripravljenost</target>
+<target>V pripravljenosti</target>
<source>Shut down</source>
<target>Ugasni</target>
+<source>Paused</source>
+<target>Začasna ustavitev</target>
+
+<source>Initializing...</source>
+<target>Inicializiram...</target>
+
<source>Scanning...</source>
<target>Pregledujem...</target>
<source>Comparing content...</source>
<target>Primerjam vsebino...</target>
+<source>Completed</source>
+<target>Zaključeno</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Izberi vse</target>
-<source>Paused</source>
-<target>Na premoru</target>
-
-<source>Initializing...</source>
-<target>Inicializiram...</target>
-
-<source>Completed</source>
-<target>Zaključeno</target>
-
<source>&Continue</source>
<target>&Nadaljuj</target>
@@ -1488,6 +1466,23 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Log</source>
<target>Dnevnik</target>
+<source>Loading...</source>
+<target>Nalagam...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Kopiraj sledeč %x element v drugo mapo?</pluralform>
+<pluralform>Kopiraj sledeča %x elementa v drugo mapo?</pluralform>
+<pluralform>Kopiraj sledeče %x elemente v drugo mapo?</pluralform>
+<pluralform>Kopiraj sledečih %x elementov v drugo mapo?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Prosim, navedite ciljno mapo.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1513,8 +1508,8 @@ To zagotavlja konsistenco podatkov v primeru napake.
<pluralform>Ali resnično želite izbrisati naslednjih %x elementov?</pluralform>
</target>
-<source>Preferences</source>
-<target>Nastavitve</target>
+<source>Copy DACL, SACL, Owner, Group</source>
+<target>Kopiraj DACL, SACL, lastnik, skupina</target>
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Integriraj zunanje aplikacije v kontekstni menu. Na voljo so naslednji makri:</target>
@@ -1523,7 +1518,7 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>- polno ime datoteke ali mape</target>
<source>- folder part only</source>
-<target>- samo del glede mape</target>
+<target>- samo del z mapo</target>
<source>- Other side's counterpart to %item_path%</source>
<target>- Na drugi strani nasprotno v %item_path%</target>
@@ -1532,11 +1527,20 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>- Na drugi strani nasprotno v %item_folder%</target>
<source>Show hidden dialogs and warning messages again?</source>
-<target>Znova prikaži skrite dialoge in obvestila</target>
+<target>Ponovno prikaži skrite dialoge in obvestila?</target>
<source>&Show</source>
<target>&Prikaži</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Določi enake datoteke s primerjavo datuma spremembe in velikosti.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Določi enake datoteke s primerjavo vsebine.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identificiraj enake datoteke s primerjavo velikoti teh datotek.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identificiraj in razširjaj spremembe na obeh straneh. Izbrisi, premiki in spori so samodejno zaznani z uporabo podatkovne baze.</target>
@@ -1549,6 +1553,15 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Configure your own synchronization rules.</source>
<target>Konfigurirajte vaša lastna sinhronizacijska pravila.</target>
+<source>Synchronization Settings</source>
+<target>Nastavitve sinhnorizacije</target>
+
+<source>Comparison</source>
+<target>Primerjava</target>
+
+<source>Synchronization</source>
+<target>Sinhnorizacija</target>
+
<source>Today</source>
<target>Danes</target>
@@ -1577,19 +1590,19 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Zamenjaj</target>
<source>Move files and replace if existing</source>
-<target>Premakne datoteke in jih zamenja, če obstajajo</target>
+<target>Premakne datoteke in jih zamenja, že obstajajo</target>
<source>Time stamp</source>
<target>Časovna oznaka</target>
<source>Append a time stamp to each file name</source>
-<target>Imenu vsake datoteke pripni časovni žig</target>
+<target>Imenu vsake datoteke pripni časovno oznako</target>
-<source>Comparison</source>
-<target>Primerjava</target>
+<source>Main config</source>
+<target>Glavna konfiguracija</target>
-<source>Synchronization</source>
-<target>Sinhnorizacija</target>
+<source>empty</source>
+<target>prazno</target>
<source>Leave as unresolved conflict</source>
<target>Pusti kot nerešeni spor</target>
@@ -1609,8 +1622,32 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Percentage</source>
<target>Odstotek</target>
+<source>Internet access failed.</source>
+<target>Neuspešna povezava na internet.</target>
+
+<source>Check for Program Updates</source>
+<target>Prevri obstoj nadgradnje programa</target>
+
+<source>Download now?</source>
+<target>Prenesem sedaj?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync je posodobljen.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Povezava na www.freefilesync.org ni mogoča.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Na omrežju ne najdem obstoječe verzije FreeFileSync-a. Ali želite preveriti lastnoročno?</target>
+
+<source>&Check</source>
+<target>&Preveri</target>
+
<source>Unable to register to receive system messages.</source>
-<target>Ne morem se registriratiza prejem sistemskih sporočil.</target>
+<target>Ne morem se registrirati za prejem sistemskih sporočil.</target>
+
+<source>Unable to register device notifications for %x.</source>
+<target>Omogoči registracijo obvestil naprave za %x.</target>
<source>Cannot monitor directory %x.</source>
<target>Ne morem nadzorovati imenika %x.</target>
@@ -1625,14 +1662,23 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Ne morem prebrati varnostnega konteksta od %x.</target>
<source>Cannot write security context of %x.</source>
-<target>Ne morem zapisati varnostni kontekst od %x</target>
+<target>Ne morem zapisati varnostnega konteksta od %x.</target>
<source>Cannot read permissions of %x.</source>
<target>Ne morem prebrati dovoljenja od %x.</target>
+<source>Cannot copy permissions from %x to %y.</source>
+<target>Ne morem kopirati uporabniških pravic iz %x v %y.</target>
+
+<source>%x is not a regular directory name.</source>
+<target>%x ni pravilno ime imenika.</target>
+
<source>Cannot find system function %x.</source>
<target>Ne morem najti sistemske funkcije %x.</target>
+<source>Cannot copy attributes from %x to %y.</source>
+<target>Ne morem kopirati atributov iz %x v %y.</target>
+
<source>Cannot copy file %x to %y.</source>
<target>Ne morem kopirati datoteke %x v %y.</target>
@@ -1690,11 +1736,20 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Checking recycle bin failed for folder %x.</source>
<target>Preverjanje koša za mapo %x ni uspelo.</target>
+<source>The following XML elements could not be read:</source>
+<target>Neaslednji XML elementi niso berljivi:</target>
+
+<source>Configuration file %x is incomplete. The missing elements will be set to their default values.</source>
+<target>Nastavitvena datoteka %x je nepopolna. Manjkajoči element bo nastavljen na privzete vrednosti.</target>
+
<source>Prepare installation</source>
<target>Pripravljam namestitev</target>
<source>Choose which components you want to install.</source>
-<target>Izberite komponente za inštalacijo</target>
+<target>Izberite komponente za namestitev.</target>
+
+<source>Select installation type:</source>
+<target>Izberi tip namestitve:</target>
<source>Local</source>
<target>Lokalna</target>
@@ -1703,13 +1758,16 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Prenosna</target>
<source>recommended</source>
-<target>priporočena</target>
+<target>priporočeno</target>
<source>Save settings to "%APPDATA%\FreeFileSync"</source>
<target>Shrani nastavitve v "%APPDATA%\FreeFileSync"</target>
<source>Register FreeFileSync file extensions</source>
-<target>Registracija FreeFileSync datotečnih razširitev</target>
+<target>Registracija FreeFileSync končnic datotek</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Ustvari vnose v Explorer-jev kontekstni meni</target>
<source>Save settings in installation directory</source>
<target>Shrani nastavitve v namestitveni imenik</target>
@@ -1718,7 +1776,7 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Ne zapisuj v register</target>
<source>Just copy the files</source>
-<target>Kopiraj samo datoteke</target>
+<target>Samo kopiraj datoteke</target>
<source>Choose a directory for installation:</source>
<target>Izberite imenik za namestitev:</target>
@@ -1730,11 +1788,32 @@ To zagotavlja konsistenco podatkov v primeru napake.
<target>Namizje</target>
<source>Start menu</source>
-<target>Start meni</target>
+<target>Začetni meni</target>
<source>Registering FreeFileSync file extensions</source>
-<target>Registriram FreeFileSync datotečne končnice</target>
+<target>Registracija FreeFileSync končnic datotek</target>
<source>Unregistering FreeFileSync file extensions</source>
-<target>Odregistriram FreeFileSync datotečne končnice</target>
+<target>Odstranjevanje registracije FreeFileSync končnic datotek</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Nastavitve FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync paketna datoteka</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync sinhronizacijska baza</target>
+
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync nastavitve</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Uredi z FreeFileSync</target>
+
+<source>Thanks for your donation and support!</source>
+<target>Hvala za vašo donacijo in podporo!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>FreeFileSync namestitev za donatorje je dosegla zgornjo mejo instalacij. Naj pričnem prenos redne verzije z domače strani FreeFileSync sedaj?</target>
diff --git a/FreeFileSync/Build/Languages/spanish.lng b/FreeFileSync/Build/Languages/spanish.lng
index 119b88e7..9a2df76e 100644
--- a/FreeFileSync/Build/Languages/spanish.lng
+++ b/FreeFileSync/Build/Languages/spanish.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Fijando direcciones de sincronización predeterminadas: los archivos nuevos sobrescribirán los archivos antiguos.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Comprobando disponibilidad de la papelera de reciclaje para la carpeta %x…</target>
+<source>Creating folder %x</source>
+<target>Creando carpeta %x</target>
+
+<source>Creating file %x</source>
+<target>Creando archivo %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Creando el vínculo simbólico %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Mover archivo %x a la papelera de reciclaje</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Borrando vínculo simbólico %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Comprobando disponibilidad de la papelera de reciclaje para la carpeta %x…</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>La papelera de reciclaje no está disponible para las carpetas siguientes. Los archivos se borrarán de forma permanente:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>No se encuentra el archivo %x.</target>
+<source>Error</source>
+<target>Error</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>El archivo %x no contiene una configuración válida.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>No se pudieron encontrar las siguiente carpetas:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Ignore este error si desea tratar cada carpeta como vacía. En tal caso, se crearán estas carpetas automáticamente durante la sincronización.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Cuando ignora este error, se considera que las carpetas están vacías. Dichas carpetas se crearán automáticamente si es necesario.</target>
<source>A folder input field is empty.</source>
<target>Un campo de entrada de la carpeta está vacío.</target>
@@ -246,9 +258,6 @@ Reales: %y bytes
<source>Cannot find device %x.</source>
<target>No se encuentra el dispositivo %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>No se puede determinar el espacio libre en disco para %x.</target>
-
<source>Cannot create directory %x.</source>
<target>No se puede crear el directorio %x.</target>
@@ -267,12 +276,15 @@ Reales: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>No se puede resolver el vínculo simbólico %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Incapaz de mover %x a la papelera de reciclaje.</target>
-
<source>Cannot open directory %x.</source>
<target>No se puede abrir el directorio %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>No se puede determinar el espacio libre en disco para %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Incapaz de mover %x a la papelera de reciclaje.</target>
+
<source>Incorrect command line:</source>
<target>Línea de comandos incorrecta:</target>
@@ -345,9 +357,6 @@ Reales: %y bytes
<source>Detecting abandoned lock...</source>
<target>Detección de bloqueo abandonado…</target>
-<source>Creating file %x</source>
-<target>Creando archivo %x</target>
-
<source>Saving file %x...</source>
<target>Guardando archivo %x…</target>
@@ -366,9 +375,6 @@ Reales: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>No se pudo bloquear el directorio %x.</target>
-<source>Scanning:</source>
-<target>Escanear:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Reales: %y bytes
<pluralform>%x hilos</pluralform>
</target>
+<source>Scanning:</source>
+<target>Escanear:</target>
+
<source>/sec</source>
<target>/seg</target>
@@ -488,8 +497,8 @@ El comando es disparado si:
- aparecen nuevas carpetas (en una memoria USB, por ejemplo)
</target>
-<source>&Start</source>
-<target>&Iniciar</target>
+<source>Start</source>
+<target>Iniciar</target>
<source>About</source>
<target>Acerca de</target>
@@ -503,15 +512,15 @@ El comando es disparado si:
<source>Automated Synchronization</source>
<target>Sincronización Automática</target>
+<source>The following path does not support directory monitoring:</source>
+<target>La siguiente ruta no permite la supervisión de directorios:</target>
+
<source>Directory monitoring active</source>
<target>Supervisión de directorios activada</target>
<source>Waiting until all directories are available...</source>
<target>Esperando que todos los directorios estén disponibles…</target>
-<source>Error</source>
-<target>Error</target>
-
<source>&Restore</source>
<target>&Restaurar</target>
@@ -524,11 +533,14 @@ El comando es disparado si:
<source>&Retry</source>
<target>&Reintentar</target>
+<source>File time and size</source>
+<target>Fecha y tamaño del archivo</target>
+
<source>File content</source>
<target>Contenido del archivo</target>
-<source>File time and size</source>
-<target>Fecha y tamaño del archivo</target>
+<source>File size</source>
+<target>Tamaño de archivo</target>
<source>Two way</source>
<target>Bidireccional</target>
@@ -557,12 +569,6 @@ El comando es disparado si:
<source>Removing old versions...</source>
<target>Eliminando versiones antiguas…</target>
-<source>Creating symbolic link %x</source>
-<target>Creando el vínculo simbólico %x</target>
-
-<source>Creating folder %x</source>
-<target>Creando carpeta %x</target>
-
<source>Updating file %x</source>
<target>Actualizando archivo %x</target>
@@ -680,30 +686,6 @@ El comando es disparado si:
<source>Serious Error</source>
<target>Error grave</target>
-<source>Check for Program Updates</source>
-<target>Buscar actualizaciones del programa</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Una nueva versión de FreeFileSync está disponible:</target>
-
-<source>Download now?</source>
-<target>¿Descargar ahora?</target>
-
-<source>&Download</source>
-<target>&Descargar</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync está actualizado.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>No se puede conectar al sitio www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>No se encuentra el número de versión actual de FreeFileSync en línea. ¿Desea comprobarla manualmente?</target>
-
-<source>&Check</source>
-<target>&Comprobar</target>
-
<source>Symlink</source>
<target>Enlace simbólico</target>
@@ -764,11 +746,20 @@ El comando es disparado si:
<source>Paste</source>
<target>Pegar</target>
-<source>Local Synchronization Settings</source>
-<target>Opciones de sincronización local</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>La carpeta %x seleccionada no puede usarse con FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Seleccione otra carpeta del systema de archivos local, en red o en un dispositivo MTP.</target>
+
+<source>SFTP folder</source>
+<target>Carpeta SFTP</target>
+
+<source>Select SFTP folder</source>
+<target>Seleccione una carpeta SFTP</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>No se puede utilizar la carpeta %x seleccionada con FreeFileSync. Seleccione una carpeta situada en un sistema de archivos local, en una red o en un dispositivo MTP.</target>
+<source>Select alternative folder type</source>
+<target>Seleccione otro tipo de carpeta</target>
<source>&New</source>
<target>&Nuevo</target>
@@ -797,8 +788,8 @@ El comando es disparado si:
<source>&Actions</source>
<target>&Acciones</target>
-<source>&Options</source>
-<target>&Opciones</target>
+<source>&Preferences</source>
+<target>&Preferencias</target>
<source>&Language</source>
<target>&Idioma</target>
@@ -839,9 +830,6 @@ El comando es disparado si:
<source>Remove folder pair</source>
<target>Eliminar un par de carpetas</target>
-<source>Select SFTP folder</source>
-<target>Seleccione una carpeta SFTP</target>
-
<source>Swap sides</source>
<target>Intercambiar lados</target>
@@ -887,27 +875,15 @@ El comando es disparado si:
<source>Total bytes to copy</source>
<target>Total de bytes a copiar</target>
+<source>Folder pair:</source>
+<target>Par de carpetas:</target>
+
<source>Use local settings:</source>
<target>Usar Opciones locales:</target>
<source>Select a variant:</source>
<target>Seleccione una variante:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Comparar archivos iguales por la hora de modificación y el tamaño.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Comparar archivos iguales por el contenido.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignorar desfases temporales (en horas)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Considerar que las fechas con el desfase indicado son idénticas</target>
-
-<source>Handle daylight saving time</source>
-<target>Tener en cuenta la hora de verano</target>
-
<source>Include &symbolic links:</source>
<target>Incluir vínculos &simbólicos:</target>
@@ -920,6 +896,18 @@ El comando es disparado si:
<source>More information</source>
<target>Más información</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignorar desfases temporales [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Listado de desfases temporales ignorados en archivos</target>
+
+<source>Example:</source>
+<target>Ejemplo:</target>
+
+<source>Handle daylight saving time</source>
+<target>Tener en cuenta la hora de verano</target>
+
<source>Local settings:</source>
<target>Opciones locales:</target>
@@ -998,7 +986,7 @@ El comando es disparado si:
<target>Ocultar todos los mensajes de error y aviso</target>
<source>&Pop-up</source>
-<target>E&mergentep</target>
+<target>En &ventana</target>
<source>Show pop-up on errors or warnings</source>
<target>Mostrar ventana emergente de errores o avisos</target>
@@ -1009,14 +997,17 @@ El comando es disparado si:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Reorganizar pares de carpetas</target>
+
<source>Enter your SFTP login details:</source>
<target>Escriba sus datos de conexión SFTP:</target>
<source>Server name or IP address:</source>
<target>Nombre o dirección IP del servidor:</target>
-<source>Examples:</source>
-<target>Ejemplos:</target>
+<source>Port:</source>
+<target>Puerto:</target>
<source>User name:</source>
<target>Usuario:</target>
@@ -1030,6 +1021,12 @@ El comando es disparado si:
<source>Directory on server:</source>
<target>Directorio del servidor:</target>
+<source>Select a directory on the server:</source>
+<target>Seleccione un directorio en el servidor:</target>
+
+<source>Select Folder</source>
+<target>Seleccionar carpeta</target>
+
<source>Start synchronization now?</source>
<target>¿Iniciar la sincronización ahora?</target>
@@ -1039,9 +1036,6 @@ El comando es disparado si:
<source>&Don't show this dialog again</source>
<target>&No volver a mostrar este diálogo</target>
-<source>Arrange folder pair</source>
-<target>Reorganizar pares de carpetas</target>
-
<source>Items found:</source>
<target>Elementos encontrados:</target>
@@ -1093,6 +1087,12 @@ El comando es disparado si:
<source>How can I schedule a batch job?</source>
<target>Cómo puedo programar una tarea por lotes?</target>
+<source>&Keep relative paths</source>
+<target>Conservar &rutas relativas</target>
+
+<source>&Overwrite existing files</source>
+<target>S&obrescribir archivos existentes</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Las opciones siguientes son comunes a todas las tareas de sincronización.</target>
@@ -1157,7 +1157,7 @@ Se garantiza un estado coherente incluso en caso de error grave.
<target>Si te resulta útil FreeFileSync:</target>
<source>Donate with PayPal</source>
-<target>Haz una donación por PayPal</target>
+<target>Contribuye con PayPal</target>
<source>Feedback and suggestions are welcome</source>
<target>Tus comentarios y sugerencias son bienvenidos :</target>
@@ -1183,14 +1183,17 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Delete Items</source>
<target>Eliminar elementos</target>
+<source>Copy items</source>
+<target>Copiar elementos</target>
+
<source>Options</source>
<target>Opciones</target>
<source>Select Time Span</source>
<target>Seleccionar duración</target>
-<source>&Preferences</source>
-<target>&Preferencias</target>
+<source>&Options</source>
+<target>&Opciones</target>
<source>Main Bar</source>
<target>Barra principal</target>
@@ -1210,6 +1213,12 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Overview</source>
<target>Vista general</target>
+<source>&Download</source>
+<target>&Descargar</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Una nueva versión de FreeFileSync está disponible:</target>
+
<source>Confirm</source>
<target>Confirmar</target>
@@ -1270,8 +1279,11 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Exclude temporarily</source>
<target>Excluir temporalmente</target>
-<source>Delete</source>
-<target>Eliminar</target>
+<source>&Copy to...</source>
+<target>&Copiar hacia…</target>
+
+<source>&Delete</source>
+<target>&Eliminar</target>
<source>Include all</source>
<target>Incluir todo</target>
@@ -1321,9 +1333,6 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Remove entry from list</source>
<target>Retirar la entrada de la lista</target>
-<source>Synchronization Settings</source>
-<target>Opciones de sincronización</target>
-
<source>Clear filter</source>
<target>Borrar filtro</target>
@@ -1411,27 +1420,27 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Shut down</source>
<target>Apagar</target>
+<source>Paused</source>
+<target>Pausado</target>
+
+<source>Initializing...</source>
+<target>Inicializando…</target>
+
<source>Scanning...</source>
<target>Escaneando…</target>
<source>Comparing content...</source>
<target>Comparando contenido…</target>
+<source>Completed</source>
+<target>Terminado</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Seleccionar todo</target>
-<source>Paused</source>
-<target>Pausado</target>
-
-<source>Initializing...</source>
-<target>Inicializando…</target>
-
-<source>Completed</source>
-<target>Terminado</target>
-
<source>&Continue</source>
<target>&Continuar</target>
@@ -1441,6 +1450,21 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Log</source>
<target>Registro</target>
+<source>Loading...</source>
+<target>Cargando…</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>¿Desea copiar este elemento hacia otra carpeta?</pluralform>
+<pluralform>¿Desea copiar estos %x elementos hacia otra carpeta?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Indique una carpeta de destino.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Se garantiza un estado coherente incluso en caso de error grave.
<pluralform>¿Realmente desea eliminar estos %x elementos?</pluralform>
</target>
-<source>Preferences</source>
-<target>Preferencias</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Copiar permisos DACL, SACL, Owner, Group</target>
@@ -1489,6 +1510,15 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>&Show</source>
<target>Mo&strar</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Identificar archivos iguales por la hora de modificación y por tamaño.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Identificar archivos iguales por su contenido.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identificar archivos iguales por su tamaño.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identificar y propagar cambios en ambos lados. Archivos eliminados, movidos y conflictos se detectan automáticamente usando una base de datos.</target>
@@ -1501,6 +1531,15 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Configure your own synchronization rules.</source>
<target>Configurar reglas de sincronización personalizadas.</target>
+<source>Synchronization Settings</source>
+<target>Opciones de sincronización</target>
+
+<source>Comparison</source>
+<target>Comparación</target>
+
+<source>Synchronization</source>
+<target>Sincronización</target>
+
<source>Today</source>
<target>Hoy</target>
@@ -1537,11 +1576,11 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Append a time stamp to each file name</source>
<target>Incluir marca horaria en cada nombre de archivo</target>
-<source>Comparison</source>
-<target>Comparación</target>
+<source>Main config</source>
+<target>Configuración principal</target>
-<source>Synchronization</source>
-<target>Sincronización</target>
+<source>empty</source>
+<target>vacío</target>
<source>Leave as unresolved conflict</source>
<target>Dejar como conflicto sin resolver</target>
@@ -1561,6 +1600,27 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Percentage</source>
<target>Porcentaje</target>
+<source>Internet access failed.</source>
+<target>Fallo de acceso a Internet.</target>
+
+<source>Check for Program Updates</source>
+<target>Buscar actualizaciones del programa</target>
+
+<source>Download now?</source>
+<target>¿Descargar ahora?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync está actualizado.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>No se puede conectar al sitio www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>No se encuentra el número de versión actual de FreeFileSync en línea. ¿Desea comprobarla manualmente?</target>
+
+<source>&Check</source>
+<target>&Comprobar</target>
+
<source>Unable to register to receive system messages.</source>
<target>No es posible registrar la recepción de mensajes sistema.</target>
@@ -1588,6 +1648,9 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Cannot copy permissions from %x to %y.</source>
<target>No se puedem copiar los permisos desde %x hacia %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x no es una nombre de directorio autorizado.</target>
+
<source>Cannot find system function %x.</source>
<target>No se puede encontrar la función del sistema %x.</target>
@@ -1714,9 +1777,15 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>FreeFileSync Synchronization Database</source>
<target>Base de datos de sincronización de FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Configuración de RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Configuration de RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Modificar con FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>¡Muchas gracias por su contribución y ayuda!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Este instalador de FreeFileSync para contribuidores alcanzó su límite de instalaciones. ¿Desea descargar la versión normal desde la página de FreeFileSync ahora?</target>
+
diff --git a/FreeFileSync/Build/Languages/swedish.lng b/FreeFileSync/Build/Languages/swedish.lng
index fb5e9cd9..e36b3748 100644
--- a/FreeFileSync/Build/Languages/swedish.lng
+++ b/FreeFileSync/Build/Languages/swedish.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Standardsynkronisering: Gamla filer kommer att skrivas över av nyare versioner.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Kontrollerar papperskorgens tillgänglighet för %x...</target>
+<source>Creating folder %x</source>
+<target>Skapar mappen %x</target>
+
+<source>Creating file %x</source>
+<target>Skapar fil %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Skapar den symboliska länken %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Flyttar %x till papperskorgen</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Tar bort den symboliska länken %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Kontrollerar papperskorgens tillgänglighet för %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Papperskorgen är inte tillgänglig för följande mappar. Filerna kommer istället att tas bort permanent:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Kan inte hitta filen %x.</target>
+<source>Error</source>
+<target>Fel</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Filen %x innehåller ingen giltig konfiguration.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Kan inte hitta följande mappar:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Du kan bortse från detta fel, och betrakta varje mapp som tom. Mapparna kommer då att skapas automatiskt, under synkroniseringen.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Om du ignorerar detta fel, kommer mapparna att betraktas som tomma. Saknade mappar skapas automatiskt, vid behov.</target>
<source>A folder input field is empty.</source>
<target>Ett inmatningsfält är tomt.</target>
@@ -246,9 +258,6 @@ Aktuell: %y byte
<source>Cannot find device %x.</source>
<target>Kan inte hitta enheten %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Kan inte avgöra ledigt utrymme på %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Kan inte skapa mappen %x.</target>
@@ -267,12 +276,15 @@ Aktuell: %y byte
<source>Cannot resolve symbolic link %x.</source>
<target>Den symboliska länken %x kan inte matchas.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Kan inte att flytta %x till papperskorgen.</target>
-
<source>Cannot open directory %x.</source>
<target>Kan inte öppna %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Kan inte avgöra ledigt utrymme på %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Kan inte att flytta %x till papperskorgen.</target>
+
<source>Incorrect command line:</source>
<target>Felaktig kommandorad:</target>
@@ -345,9 +357,6 @@ Aktuell: %y byte
<source>Detecting abandoned lock...</source>
<target>Söker övergivna lås...</target>
-<source>Creating file %x</source>
-<target>Skapar fil %x</target>
-
<source>Saving file %x...</source>
<target>Sparar %x...</target>
@@ -366,9 +375,6 @@ Aktuell: %y byte
<source>Cannot set directory lock for %x.</source>
<target>Kan inte låsa %x.</target>
-<source>Scanning:</source>
-<target>Skannar:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Aktuell: %y byte
<pluralform>%x trådar</pluralform>
</target>
+<source>Scanning:</source>
+<target>Skannar:</target>
+
<source>/sec</source>
<target>/s</target>
@@ -488,8 +497,8 @@ Kommandot triggas om:
- nya mappar upptäcks (ex. USB-minne ansluts)
</target>
-<source>&Start</source>
-<target>&Start</target>
+<source>Start</source>
+<target>Starta</target>
<source>About</source>
<target>Om</target>
@@ -503,15 +512,15 @@ Kommandot triggas om:
<source>Automated Synchronization</source>
<target>Automatiserad synkronisering</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Följande sökväg stöder inte mappövervakning:</target>
+
<source>Directory monitoring active</source>
<target>Mappövervakning aktiv</target>
<source>Waiting until all directories are available...</source>
<target>Väntar på att samtliga mappar skall bli tillgängliga...</target>
-<source>Error</source>
-<target>Fel</target>
-
<source>&Restore</source>
<target>&Återställ</target>
@@ -524,11 +533,14 @@ Kommandot triggas om:
<source>&Retry</source>
<target>&Försök igen</target>
+<source>File time and size</source>
+<target>Tidsstämpling och storlek</target>
+
<source>File content</source>
<target>Filinnehåll</target>
-<source>File time and size</source>
-<target>Tidsstämpling och storlek</target>
+<source>File size</source>
+<target>Filstorlek</target>
<source>Two way</source>
<target>Tvåvägs</target>
@@ -557,12 +569,6 @@ Kommandot triggas om:
<source>Removing old versions...</source>
<target>Tar bort gamla versioner...</target>
-<source>Creating symbolic link %x</source>
-<target>Skapar den symboliska länken %x</target>
-
-<source>Creating folder %x</source>
-<target>Skapar mappen %x</target>
-
<source>Updating file %x</source>
<target>Uppdaterar %x</target>
@@ -680,30 +686,6 @@ Kommandot triggas om:
<source>Serious Error</source>
<target>Allvarligt fel</target>
-<source>Check for Program Updates</source>
-<target>Sök efter programuppdateringar</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Det finns en ny version av FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>Ladda ner nu?</target>
-
-<source>&Download</source>
-<target>&Ladda ner</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync är uppdaterad.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Kan inte ansluta till www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Kan inte hitta aktuellt versionsnummer online. Vill du kontrollera manuellt?</target>
-
-<source>&Check</source>
-<target>&Kontrollera</target>
-
<source>Symlink</source>
<target>Symboliska länkar</target>
@@ -764,11 +746,20 @@ Kommandot triggas om:
<source>Paste</source>
<target>Klistra in</target>
-<source>Local Synchronization Settings</source>
-<target>Lokala synkroniseringsinställningar</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Den valda mappen %x kan inte användas med FreeFileSync.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Den valda mappen %x, kan inte användas med FreeFileSync.Välj en mapp på ett lokalt filsystem, nätverk eller en MTP-enhet.</target>
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Välj en mapp på i ett lokalt filsystem, nätverk eller en MTP-enhet.</target>
+
+<source>SFTP folder</source>
+<target>SFTP-mapp</target>
+
+<source>Select SFTP folder</source>
+<target>Välj SFTP-mapp</target>
+
+<source>Select alternative folder type</source>
+<target>Välj alternativ mapptyp</target>
<source>&New</source>
<target>&Nytt</target>
@@ -797,8 +788,8 @@ Kommandot triggas om:
<source>&Actions</source>
<target>&Åtgärder</target>
-<source>&Options</source>
-<target>&Alternativ</target>
+<source>&Preferences</source>
+<target>&Inställningar</target>
<source>&Language</source>
<target>&Språk</target>
@@ -839,9 +830,6 @@ Kommandot triggas om:
<source>Remove folder pair</source>
<target>Ta bort katalogpar</target>
-<source>Select SFTP folder</source>
-<target>Välj SFTP-mapp</target>
-
<source>Swap sides</source>
<target>Byt sida</target>
@@ -887,27 +875,15 @@ Kommandot triggas om:
<source>Total bytes to copy</source>
<target>Byte att kopiera</target>
+<source>Folder pair:</source>
+<target>Katalogpar:</target>
+
<source>Use local settings:</source>
<target>Använd lokala inställningar:</target>
<source>Select a variant:</source>
<target>Välj ett alternativ:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Identifiera likadana filer genom att jämföra tidsstämpling och filstorlek.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Identifiera likadana filer genom att jämföra filinnehåll.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ignorera tidsförskjutning (i timmar)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Betrakta filtider med specificerad förskjutning som lika</target>
-
-<source>Handle daylight saving time</source>
-<target>Hantera sommartid</target>
-
<source>Include &symbolic links:</source>
<target>Inkludera &symboliska länkar:</target>
@@ -920,6 +896,18 @@ Kommandot triggas om:
<source>More information</source>
<target>Mer information</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ignorera tidsändring [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Lista över filtidsförskjutningar att ignorera</target>
+
+<source>Example:</source>
+<target>Exempel:</target>
+
+<source>Handle daylight saving time</source>
+<target>Hantera sommartid</target>
+
<source>Local settings:</source>
<target>Lokala inställningar:</target>
@@ -1009,14 +997,17 @@ Kommandot triggas om:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Arrangera katalogpar</target>
+
<source>Enter your SFTP login details:</source>
<target>Ange dina SFTP-inloggningsuppgifter:</target>
<source>Server name or IP address:</source>
<target>Servernamn eller IP-adress:</target>
-<source>Examples:</source>
-<target>Exempel:</target>
+<source>Port:</source>
+<target>Port:</target>
<source>User name:</source>
<target>Användarnamn:</target>
@@ -1030,6 +1021,12 @@ Kommandot triggas om:
<source>Directory on server:</source>
<target>Målmapp på servern:</target>
+<source>Select a directory on the server:</source>
+<target>Välj en mapp på servern:</target>
+
+<source>Select Folder</source>
+<target>Välj mapp</target>
+
<source>Start synchronization now?</source>
<target>Vill du starta synkroniseringen nu?</target>
@@ -1039,9 +1036,6 @@ Kommandot triggas om:
<source>&Don't show this dialog again</source>
<target>&Visa inte den här dialogen igen</target>
-<source>Arrange folder pair</source>
-<target>Arrangera katalogpar</target>
-
<source>Items found:</source>
<target>Funna poster:</target>
@@ -1093,6 +1087,12 @@ Kommandot triggas om:
<source>How can I schedule a batch job?</source>
<target>Hur schemalägger jag en batch-fil?</target>
+<source>&Keep relative paths</source>
+<target>&Bevara relativa sökvägar</target>
+
+<source>&Overwrite existing files</source>
+<target>&Skriv över befintliga filer</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Följande inställningar används för all synkronisering.</target>
@@ -1183,14 +1183,17 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Delete Items</source>
<target>Ta bort objekt</target>
+<source>Copy items</source>
+<target>Kopiera objekt</target>
+
<source>Options</source>
<target>Alternativ</target>
<source>Select Time Span</source>
<target>Välj tidsrymd</target>
-<source>&Preferences</source>
-<target>&Inställningar</target>
+<source>&Options</source>
+<target>&Alternativ</target>
<source>Main Bar</source>
<target>Primärt verktygsfält</target>
@@ -1210,6 +1213,12 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Overview</source>
<target>Översikt</target>
+<source>&Download</source>
+<target>&Ladda ner</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Det finns en ny version av FreeFileSync:</target>
+
<source>Confirm</source>
<target>Bekräfta</target>
@@ -1270,8 +1279,11 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Exclude temporarily</source>
<target>Undanta tillfälligt</target>
-<source>Delete</source>
-<target>Ta bort</target>
+<source>&Copy to...</source>
+<target>&Kopiera till...</target>
+
+<source>&Delete</source>
+<target>&Ta bort</target>
<source>Include all</source>
<target>Inkludera alla</target>
@@ -1321,9 +1333,6 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Remove entry from list</source>
<target>Ta bort post från listan</target>
-<source>Synchronization Settings</source>
-<target>Synkroniseringsinställningar</target>
-
<source>Clear filter</source>
<target>Rensa filter</target>
@@ -1411,27 +1420,27 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Shut down</source>
<target>Stäng av datorn</target>
+<source>Paused</source>
+<target>Pausad</target>
+
+<source>Initializing...</source>
+<target>Initierar...</target>
+
<source>Scanning...</source>
<target>Skannar...</target>
<source>Comparing content...</source>
<target>Jämför innehåll...</target>
+<source>Completed</source>
+<target>Slutförd</target>
+
<source>Info</source>
<target>Info</target>
<source>Select all</source>
<target>Markera alla</target>
-<source>Paused</source>
-<target>Pausad</target>
-
-<source>Initializing...</source>
-<target>Initierar...</target>
-
-<source>Completed</source>
-<target>Slutförd</target>
-
<source>&Continue</source>
<target>&Fortsätt</target>
@@ -1441,6 +1450,21 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Log</source>
<target>Logg</target>
+<source>Loading...</source>
+<target>Läser in...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Vill du kopiera följande objekt till en annan mapp?</pluralform>
+<pluralform>Vill du kopiera följande %x objekt till en annan mapp?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Ange en målmapp.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1462,9 +1486,6 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<pluralform>Vill du verkligen ta bort följande %x objekt?</pluralform>
</target>
-<source>Preferences</source>
-<target>Inställningar</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Kopiera DACL, SACL, Ägare, Grupp</target>
@@ -1489,6 +1510,15 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>&Show</source>
<target>&Visa</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Identifiera likadana filer genom att jämföra tidsstämpling och filstorlek.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Identifiera likadana filer genom att jämföra filinnehåll.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Identifiera likadana filer genom att jämföra filstorlek.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Identifierar och sprider förändringar på båda sidor. Borttagningar, förflyttningar och konflikter detekteras automatiskt med hjälp av en databas.</target>
@@ -1501,6 +1531,15 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Configure your own synchronization rules.</source>
<target>Konfigurera dina egna synkroniseringsregler.</target>
+<source>Synchronization Settings</source>
+<target>Synkroniseringsinställningar</target>
+
+<source>Comparison</source>
+<target>Jämförelse</target>
+
+<source>Synchronization</source>
+<target>Synkronisering</target>
+
<source>Today</source>
<target>Idag</target>
@@ -1537,11 +1576,11 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Append a time stamp to each file name</source>
<target>Lägg till en tidsstämpel till varje filnamn</target>
-<source>Comparison</source>
-<target>Jämförelse</target>
+<source>Main config</source>
+<target>Huvudkonfiguration</target>
-<source>Synchronization</source>
-<target>Synkronisering</target>
+<source>empty</source>
+<target>tom</target>
<source>Leave as unresolved conflict</source>
<target>Ignorera konflikt</target>
@@ -1561,6 +1600,27 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Percentage</source>
<target>Procent</target>
+<source>Internet access failed.</source>
+<target>Internetåtkomst misslyckades.</target>
+
+<source>Check for Program Updates</source>
+<target>Sök efter programuppdateringar</target>
+
+<source>Download now?</source>
+<target>Ladda ner nu?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync är uppdaterad.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Kan inte ansluta till www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Kan inte hitta aktuellt versionsnummer online. Vill du kontrollera manuellt?</target>
+
+<source>&Check</source>
+<target>&Kontrollera</target>
+
<source>Unable to register to receive system messages.</source>
<target>Det gick inte att registrera mottagning av systemmeddelanden.</target>
@@ -1588,6 +1648,9 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Cannot copy permissions from %x to %y.</source>
<target>Kan inte kopiera rättigheter från %x till %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x är inte ett vanligt mappnamn.</target>
+
<source>Cannot find system function %x.</source>
<target>Kan inte hitta systemfunktion %x.</target>
@@ -1714,9 +1777,15 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync Synkroniseringsdatabas</target>
-<source>RealtimeSync Configuration</source>
-<target>RealtimeSync Konfiguration</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync Konfiguration</target>
<source>Edit with FreeFileSync</source>
<target>Redigera med FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Tack för donationen och ditt stöd!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Denna FreeFileSync-installerare för donatorer, har nått sin installationsgräns. Vill du ladda ner den vanliga versionen från FreeFileSyncs hemsida nu?</target>
+
diff --git a/FreeFileSync/Build/Languages/turkish.lng b/FreeFileSync/Build/Languages/turkish.lng
index 4fa90ea2..6a043751 100644
--- a/FreeFileSync/Build/Languages/turkish.lng
+++ b/FreeFileSync/Build/Languages/turkish.lng
@@ -8,13 +8,13 @@
</header>
<source>Both sides have changed since last synchronization.</source>
-<target>Son eşitlemeden bu yana iki tarafın da içeriği değişmiş.</target>
+<target>Son eşitlemeden bu yana iki tarafında içeriği değişmiş.</target>
<source>Cannot determine sync-direction:</source>
<target>Eşitleme yönü belirlenemedi:</target>
<source>No change since last synchronization.</source>
-<target>Son eşilemeden bu yana bir değişiklik olmamış.</target>
+<target>Son eşitlemeden bu yana bir değişiklik olmamış.</target>
<source>The database entry is not in sync considering current settings.</source>
<target>Geçerli kayıtlar ile veritabanı kaydı aynı değil.</target>
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Varsayılan eşitleme yönleri ayarlanıyor: Yeni dosyalar eski dosyaların üzerine yazılacak.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>%x klasörü için Geri Dönüşüm Kutusu kullanılabilir mi diye bakılıyor...</target>
+<source>Creating folder %x</source>
+<target>%x klasörü oluşturuluyor</target>
+
+<source>Creating file %x</source>
+<target>%x dosyası oluşturuluyor</target>
+
+<source>Creating symbolic link %x</source>
+<target>%x sembolik bağlantısı oluşturuluyor</target>
<source>Moving file %x to the recycle bin</source>
<target>%x dosyası Geri Dönüşüm Kutusuna atılıyor</target>
@@ -43,8 +49,11 @@
<source>Deleting symbolic link %x</source>
<target>%x sembolik bağlantısı siliniyor</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>%x klasörü için Geri Dönüşüm Kutusu kullanılabilir mi diye bakılıyor...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
-<target>Şu klasörler için Geri Dönüşüm Kutusu kullanılamaz. Dosyalar kalıcı olarak silinecek:</target>
+<target>Şu klasörler için Geri Dönüşüm Kutusu kullanılamıyor. Dosyalar kalıcı olarak silinecek:</target>
<source>An exception occurred</source>
<target>Olağan dışı bir durumla karşılaşıldı</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>%x dosyası bulunamadı.</target>
+<source>Error</source>
+<target>Hata</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>%x dosyası geçerli ayar bilgilerini içermiyor.</target>
@@ -65,13 +77,13 @@
<target>Sağdan ve soldan seçilen klasör sayısı aynı değil.</target>
<source>The config file must not contain settings at directory pair level when directories are set via command line.</source>
-<target>Klasörler komut satırından seçildiğinde, ayar dosyasında klasör çifti düzeyinde ayar bulunmamalıdır.</target>
+<target>Klasörler komut satırından seçildiği zaman, ayar dosyasında klasör çifti düzeyinde ayarlar bulunmamalıdır.</target>
<source>Directories cannot be set for more than one configuration file.</source>
-<target>Klasörler bir ayar dosyasından fazlasında kullanılamaz.</target>
+<target>Klasörler birden fazla ayar dosyasında kullanılamaz.</target>
<source>Command line</source>
-<target>Komut satırı</target>
+<target>Komut Satırı</target>
<source>Syntax:</source>
<target>Yazım:</target>
@@ -92,16 +104,16 @@
<target>FreeFileSync .ffs_gui ya da .ffs_batch ayar dosyalarının sayısı.</target>
<source>Any number of alternative directory pairs for at most one config file.</source>
-<target>En fazla bir ayar dosyası için herhangi sayıda alternatif klasör çifti.</target>
+<target>En fazla bir ayar dosyası için herhangi bir sayıda alternatif klasör çifti.</target>
<source>Open configuration for editing without executing it.</source>
-<target>Ayarları yürütmeden düzenleme için açın.</target>
+<target>Ayarları yürütmeden düzenlemek için açın.</target>
<source>Cannot find the following folders:</source>
<target>Aşağıdaki klasörler bulunamadı:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Bu hatayı yok sayarak karşıdaki klasörleri boş kabul edebilirsiniz. Bu klasörler eşitleme sırasında kendiliğinden oluşturulur.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Bu hatayı yoksayarsanız klasörler boş kabul edilecek. Eksik klasörler gerektiğinde kendiliğinden oluşturulur.</target>
<source>A folder input field is empty.</source>
<target>Bir klasör giriş alanı boş.</target>
@@ -125,10 +137,10 @@
<target>Boyut:</target>
<source>Content comparison was skipped for excluded files %x.</source>
-<target>%x katılmayan dosya için içerik karşılaştırması atlandı.</target>
+<target>Katılmayan %x dosya için içerik karşılaştırması atlandı.</target>
<source>Items differ in attributes only</source>
-<target>Yalnız öznitelikleri farklı ögeler</target>
+<target>Yalnız öznitelikleri farklı olan ögeler</target>
<source>Resolving symbolic link %x</source>
<target>%x sembolik bağlantısı çözümleniyor</target>
@@ -164,7 +176,7 @@
<target>İçeriği farklı ögeler</target>
<source>Both sides are equal</source>
-<target>Öge iki taraftada aynı</target>
+<target>İki taraf eşit</target>
<source>Conflict/item cannot be categorized</source>
<target>Uyuşmayan/sınıflanamayan ögeler</target>
@@ -197,7 +209,7 @@
<target>Hiçbir işlem yapılmasın</target>
<source>Update attributes on left</source>
-<target>Soldaki öznitelikleri güncellensin</target>
+<target>Soldaki öznitelikler güncellensin</target>
<source>Update attributes on right</source>
<target>Sağdaki öznitelikler güncellensin</target>
@@ -246,9 +258,6 @@ Gerçekleşen: %y bayt
<source>Cannot find device %x.</source>
<target>%x aygıtı bulunamadı.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>%x için boş disk alanı belirlenemedi.</target>
-
<source>Cannot create directory %x.</source>
<target>%x klasörü oluşturulamadı.</target>
@@ -267,12 +276,15 @@ Gerçekleşen: %y bayt
<source>Cannot resolve symbolic link %x.</source>
<target>%x sembolik bağlantısı çözümlenemedi.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>%x çöp kutusuna atılamadı.</target>
-
<source>Cannot open directory %x.</source>
<target>%x klasörü açılamadı.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>%x için boş disk alanı belirlenemedi.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>%x çöp kutusuna atılamadı.</target>
+
<source>Incorrect command line:</source>
<target>Satırdaki komut geçersiz:</target>
@@ -322,7 +334,7 @@ Gerçekleşen: %y bayt
<target>%x klasörü aranıyor...</target>
<source>Time out while searching for folder %x.</source>
-<target>%x klasörünü araştırma işlemi zaman aşımına uğradı.</target>
+<target>%x klasöründeki arama işlemi zaman aşımına uğradı.</target>
<source>Cannot get process information.</source>
<target>İşlem bilgisi alınamadı.</target>
@@ -345,9 +357,6 @@ Gerçekleşen: %y bayt
<source>Detecting abandoned lock...</source>
<target>Kaldırılmış kilit algılanıyor...</target>
-<source>Creating file %x</source>
-<target>%x dosyası oluşturuluyor</target>
-
<source>Saving file %x...</source>
<target>%x dosyası kaydediliyor...</target>
@@ -366,9 +375,6 @@ Gerçekleşen: %y bayt
<source>Cannot set directory lock for %x.</source>
<target>%x için klasör kilidi uygulanamadı.</target>
-<source>Scanning:</source>
-<target>Taranıyor:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -378,6 +384,9 @@ Gerçekleşen: %y bayt
<pluralform>%x iş parçacığı</pluralform>
</target>
+<source>Scanning:</source>
+<target>Taranıyor:</target>
+
<source>/sec</source>
<target>/saniye</target>
@@ -385,13 +394,13 @@ Gerçekleşen: %y bayt
<target>%x öge/saniye</target>
<source>Show in Explorer</source>
-<target>Tarayıcıda Görüntüleyin</target>
+<target>Tarayıcıda Görüntüle</target>
<source>Open with default application</source>
-<target>Varsayılan uygulama ile açın</target>
+<target>Varsayılan Uygulama ile Aç</target>
<source>Browse directory</source>
-<target>Klasöre gözatın</target>
+<target>Klasöre Gözat</target>
<source>Cannot access the Volume Shadow Copy Service.</source>
<target>Birim Gölge Hizmetine erişilemiyor.</target>
@@ -406,7 +415,7 @@ Gerçekleşen: %y bayt
<target>%x birim adı %y dosya yolunun bir parçası değil.</target>
<source>Stop requested: Waiting for current operation to finish...</source>
-<target>Durdurulması istendi: Yürürlükteki işlemin bitmesi bekleniyor...</target>
+<target>Durdurma istendi: Yürürlükteki işlemin bitmesi bekleniyor...</target>
<source>Unable to create time stamp for versioning:</source>
<target>Sürümlendirme için zaman damgası oluşturulamadı:</target>
@@ -424,16 +433,16 @@ Gerçekleşen: %y bayt
<target>&Aç...</target>
<source>Save &as...</source>
-<target>F&arklı kaydet...</target>
+<target>F&arklı Kaydet...</target>
<source>E&xit</source>
-<target>Çı&kış</target>
+<target>Çı&k</target>
<source>&File</source>
<target>&Dosya</target>
<source>&View help</source>
-<target>&Yardım konuları</target>
+<target>&Yardım Konuları</target>
<source>&About</source>
<target>H&akkında</target>
@@ -448,34 +457,34 @@ Gerçekleşen: %y bayt
<target>1. İzlenecek klasörleri seçin.</target>
<source>2. Enter a command line.</source>
-<target>2. Bir komut satırı yazın.</target>
+<target>2. Bir satır komutu yazın.</target>
<source>3. Press 'Start'.</source>
-<target>3. 'Başlat'a Tıklayın.</target>
+<target>3. 'Başlat' düğmesine tıklayın.</target>
<source>To get started just import a .ffs_batch file.</source>
<target>.ffs_batch dosyasını yükleyerek başlayabilirsiniz.</target>
<source>Folders to watch:</source>
-<target>İzlenecek klasörler:</target>
+<target>İzlenecek Klasörler:</target>
<source>Add folder</source>
-<target>Klasör ekleyin</target>
+<target>Klasör Ekle</target>
<source>Remove folder</source>
-<target>Klasörü silin</target>
+<target>Klasörü Sil</target>
<source>Browse</source>
-<target>Gözatın</target>
+<target>Gözat</target>
<source>Idle time (in seconds):</source>
-<target>Boşta bekleme süresi (saniye):</target>
+<target>Boşta Bekleme Süresi (saniye):</target>
<source>Idle time between last detected change and execution of command</source>
<target>Son algılanan değişiklik ile komutun yürütülmesi arasında beklenecek süre</target>
<source>Command line:</source>
-<target>Komut satırı:</target>
+<target>Satır Komutu:</target>
<source>
The command is triggered if:
@@ -488,8 +497,8 @@ Komut şu durumlarda yürütülür:
- yeni klasörler algılandığında (örneğin bir USB bellek takıldığında)
</target>
-<source>&Start</source>
-<target>&Başlatın</target>
+<source>Start</source>
+<target>Başlat</target>
<source>About</source>
<target>Hakkında</target>
@@ -498,40 +507,43 @@ Komut şu durumlarda yürütülür:
<target>Yapım: %x</target>
<source>All files</source>
-<target>Tüm dosyalar</target>
+<target>Tüm Dosyalar</target>
<source>Automated Synchronization</source>
-<target>Kendiliğinden Eşitleme</target>
+<target>Otomatik Eşitleme</target>
+
+<source>The following path does not support directory monitoring:</source>
+<target>Şu yol için klasör izlemesi yapılamıyor:</target>
<source>Directory monitoring active</source>
-<target>Klasör izleme kullanılıyor</target>
+<target>Klasör izlemesi yapılıyor</target>
<source>Waiting until all directories are available...</source>
<target>Tüm klasörlerin uygun olması bekleniyor...</target>
-<source>Error</source>
-<target>Hata</target>
-
<source>&Restore</source>
<target>Gö&rüntülensin</target>
<source>&Show error</source>
-<target>Hataya &bakın</target>
+<target>Hataya &Bakın</target>
<source>&Quit</source>
-<target>Çı&kın</target>
+<target>Çı&k</target>
<source>&Retry</source>
-<target>&Yeniden deneyin</target>
+<target>&Yeniden Dene</target>
+
+<source>File time and size</source>
+<target>Tarih ve Saate Göre</target>
<source>File content</source>
-<target>İçeriğe göre</target>
+<target>İçeriğe Göre</target>
-<source>File time and size</source>
-<target>Tarih ve saate göre</target>
+<source>File size</source>
+<target>Boyuta Göre</target>
<source>Two way</source>
-<target>Çift yönlü</target>
+<target>Çift Yönlü</target>
<source>Mirror</source>
<target>Yansıtma</target>
@@ -557,12 +569,6 @@ Komut şu durumlarda yürütülür:
<source>Removing old versions...</source>
<target>Eski sürümler siliniyor...</target>
-<source>Creating symbolic link %x</source>
-<target>%x sembolik bağlantısı oluşturuluyor</target>
-
-<source>Creating folder %x</source>
-<target>%x klasörü oluşturuluyor</target>
-
<source>Updating file %x</source>
<target>%x dosyası güncelleniyor</target>
@@ -597,7 +603,7 @@ Komut şu durumlarda yürütülür:
<target>Sürüm izlemesinde kullanılacak bir hedef klasör yazın.</target>
<source>The following items have unresolved conflicts and will not be synchronized:</source>
-<target>Uyuşmazlığı çözülmemiş şu ögeler eşitlenmeyecek:</target>
+<target>Uyuşmazlığı çözümlenmemiş şu ögeler eşitlenmeyecek:</target>
<source>The following folders are significantly different. Make sure you have selected the correct folders for synchronization.</source>
<target>Şu klasörler arasında oldukça büyük farklar var. Eşitleme için doğru klasörleri seçtiğinize emin olun.</target>
@@ -618,7 +624,7 @@ Komut şu durumlarda yürütülür:
<target>Eşitlenen klasör çifti:</target>
<source>Generating database...</source>
-<target>Veri tabanı oluşturuluyor...</target>
+<target>Veritabanı oluşturuluyor...</target>
<source>job name</source>
<target>iş adı</target>
@@ -657,7 +663,7 @@ Komut şu durumlarda yürütülür:
<target>&Yoksay</target>
<source>&Switch</source>
-<target>&Değiştirin</target>
+<target>&Değiştir</target>
<source>Switching to FreeFileSync's main window</source>
<target>FreeFileSync ana penceresine geçiliyor</target>
@@ -680,30 +686,6 @@ Komut şu durumlarda yürütülür:
<source>Serious Error</source>
<target>Ciddi Hata</target>
-<source>Check for Program Updates</source>
-<target>Güncellemeleri Denetleyin</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Yeni bir FreeFileSync sürümü yayınlanmış:</target>
-
-<source>Download now?</source>
-<target>İndirmek ister misiniz?</target>
-
-<source>&Download</source>
-<target>İn&dirin</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>FreeFileSync güncel.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>www.freefilesync.org sitesine bağlanılamadı.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Geçerli FreeFileSync sürüm numarası çevrimiçi olarak bulunamadı. El ile denetlemek ister misiniz?</target>
-
-<source>&Check</source>
-<target>&Denetleyin</target>
-
<source>Symlink</source>
<target>Smblkbağlantı</target>
@@ -711,16 +693,16 @@ Komut şu durumlarda yürütülür:
<target>Klasör</target>
<source>Full path</source>
-<target>Tam yol</target>
+<target>Tam Yol</target>
<source>Name</source>
<target>Ad</target>
<source>Relative folder</source>
-<target>Bağıl klasör</target>
+<target>Bağıl Klasör</target>
<source>Base folder</source>
-<target>Başlangıç klasörü</target>
+<target>Başlangıç Klasörü</target>
<source>Size</source>
<target>Boyut</target>
@@ -732,7 +714,7 @@ Komut şu durumlarda yürütülür:
<target>Uzantı</target>
<source>Category</source>
-<target>Öge tipi</target>
+<target>Öge Tipi</target>
<source>Action</source>
<target>İşlem</target>
@@ -744,7 +726,7 @@ Komut şu durumlarda yürütülür:
<target>Yerel eşitleme ayarları</target>
<source>Local filter</source>
-<target>Yerel süzgeç</target>
+<target>Yerel Süzgeç</target>
<source>Active</source>
<target>Etkin</target>
@@ -753,22 +735,31 @@ Komut şu durumlarda yürütülür:
<target>Yok</target>
<source>Remove local settings</source>
-<target>Yerel ayarları silin</target>
+<target>Yerel Ayarları Sil</target>
<source>Clear local filter</source>
-<target>Yerel süzgeci temizleyin</target>
+<target>Yerel Süzgeci Temizle</target>
<source>Copy</source>
-<target>Kopyalayın</target>
+<target>Kopyala</target>
<source>Paste</source>
-<target>Yapıştırın</target>
+<target>Yapıştır</target>
+
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Seçilmiş %x klasörü FreeFileSync ile birlikte kullanılamaz.</target>
-<source>Local Synchronization Settings</source>
-<target>Yerel Eşitleme Ayarları</target>
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Lütfen yerel dosya sistemi, ağ ya da MTP aygıtı üzerinde bulunan bir klasör seçin.</target>
+
+<source>SFTP folder</source>
+<target>SFTP klasörü</target>
+
+<source>Select SFTP folder</source>
+<target>SFTP klasörünü seçin</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Seçilmiş %x klasörü FreeFileSync tarafından kullanılamıyor. Lütfen yerel dosya sistemin, ağ ya da MTP aygıtı üzerinde bulunan bir klasör seçin.</target>
+<source>Select alternative folder type</source>
+<target>Alternatif klasör tipini seçin</target>
<source>&New</source>
<target>&Yeni</target>
@@ -777,27 +768,27 @@ Komut şu durumlarda yürütülür:
<target>&Kaydet</target>
<source>Save as &batch job...</source>
-<target>&Toplu iş olarak kaydet...</target>
+<target>&Toplu İş Olarak Kaydet...</target>
<source>Start &comparison</source>
-<target>&Karşılaştırmayı başlat</target>
+<target>&Karşılaştırmayı Başlat</target>
<source>C&omparison settings</source>
-<target>K&arşılaştırma ayarları</target>
+<target>K&arşılaştırma Ayarları</target>
<source>&Filter settings</source>
-<target>&Süzme ayarları</target>
+<target>&Süzme Ayarları</target>
<source>S&ynchronization settings</source>
-<target>Eşi&tleme ayarları</target>
+<target>Eşi&tleme Ayarları</target>
<source>Start &synchronization</source>
-<target>&Eşitlemeyi başlat</target>
+<target>&Eşitlemeyi Başlat</target>
<source>&Actions</source>
<target>İş&lemler</target>
-<source>&Options</source>
+<source>&Preferences</source>
<target>&Ayarlar</target>
<source>&Language</source>
@@ -807,22 +798,22 @@ Komut şu durumlarda yürütülür:
<target>A&rama...</target>
<source>&Reset layout</source>
-<target>Görünümü &sıfırla</target>
+<target>Görünümü &Sıfırla</target>
<source>&Export file list...</source>
-<target>&Dosya listesini ver...</target>
+<target>&Dosya Listesini Ver...</target>
<source>&Tools</source>
<target>&Araçlar</target>
<source>&Check for new version</source>
-<target>&Güncelleme denetimi</target>
+<target>&Güncelleme Denetimi</target>
<source>&Check now</source>
-<target>Şimdi &Denetleyin</target>
+<target>Şimdi &Denetle</target>
<source>Check &automatically once a week</source>
-<target>&Haftada bir kendiliğinden denetlensin</target>
+<target>&Haftada Bir Denetle</target>
<source>Cancel</source>
<target>İptal</target>
@@ -834,19 +825,16 @@ Komut şu durumlarda yürütülür:
<target>Eşitle</target>
<source>Add folder pair</source>
-<target>Klasör çifti ekleyin</target>
+<target>Klasör Çifti Ekle</target>
<source>Remove folder pair</source>
-<target>Klasör çiftini silin</target>
-
-<source>Select SFTP folder</source>
-<target>SFTP klasörünü seçin</target>
+<target>Klasör Çiftini Sil</target>
<source>Swap sides</source>
-<target>Sağ ve sol tarafları değiştirin</target>
+<target>Sağ ve Sol Tarafları Değiştir</target>
<source>Close search bar</source>
-<target>Arama çubuğunu kapatın</target>
+<target>Arama Çubuğunu Kapat</target>
<source>Find:</source>
<target>Aranacak ifade:</target>
@@ -864,13 +852,13 @@ Komut şu durumlarda yürütülür:
<target>Kaydet</target>
<source>Save as...</source>
-<target>Farklı kaydet...</target>
+<target>Farklı Kaydet...</target>
<source>View type:</source>
-<target>Görünüm tipi:</target>
+<target>Görünüm Kipi:</target>
<source>Select view:</source>
-<target>Görüntülenecek ögeler:</target>
+<target>Eşit Dosya Görünümü:</target>
<source>Statistics:</source>
<target>İstatistikler:</target>
@@ -887,29 +875,17 @@ Komut şu durumlarda yürütülür:
<source>Total bytes to copy</source>
<target>Toplam kopyalanacak bayt</target>
+<source>Folder pair:</source>
+<target>Klasör Çifti:</target>
+
<source>Use local settings:</source>
-<target>Yerel ayarlar kullanılsın:</target>
+<target>Yerel Ayarlar Kullanılsın:</target>
<source>Select a variant:</source>
-<target>İşlem tipini seçin:</target>
-
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Dosyaların aynı olup olmadığı, son değişiklik zamanı ve boyuta göre belirlenir.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Dosyaların aynı olup olmadığı, içeriklerine göre belirlenir.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>Zaman farkı &yoksayılsın (saat)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Belirtilen zaman farkı içindeki dosyalar eşit olarak algılansın</target>
-
-<source>Handle daylight saving time</source>
-<target>Yaz saati bilgilerine bakın</target>
+<target>İşlem Tipini Seçin:</target>
<source>Include &symbolic links:</source>
-<target>&Sembolik bağlantılar katılsın:</target>
+<target>&Sembolik Bağlantılar Katılsın:</target>
<source>&Follow</source>
<target>İ&zlensin</target>
@@ -918,37 +894,49 @@ Komut şu durumlarda yürütülür:
<target>&Yönlendirilsin</target>
<source>More information</source>
-<target>Ayrıntılı bilgilere bakın</target>
+<target>Ayrıntılı Bilgiler</target>
+
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Yoksayılacak Zaman Kayması [ss:dd]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Zaman kayması yoksayılacak dosyaların listesi</target>
+
+<source>Example:</source>
+<target>Örnek:</target>
+
+<source>Handle daylight saving time</source>
+<target>Yaz Saati Hakkında Bilgiler</target>
<source>Local settings:</source>
<target>Yerel ayarlar:</target>
<source>Include:</source>
-<target>Katılacak:</target>
+<target>Katılacak Ögeler:</target>
<source>Exclude:</source>
-<target>Katılmayacak:</target>
+<target>Katılmayacak Ögeler:</target>
<source>Show examples</source>
-<target>Örneklere bakın</target>
+<target>Örneklere Bakın</target>
<source>Time span:</source>
-<target>Zaman aralığı:</target>
+<target>Zaman Aralığı:</target>
<source>File size:</source>
-<target>Dosya boyutu:</target>
+<target>Dosya Boyutu:</target>
<source>Minimum:</source>
-<target>En küçük:</target>
+<target>En Küçük:</target>
<source>Maximum:</source>
-<target>En büyük:</target>
+<target>En Büyük:</target>
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Eşitlenmeyecek dosyaların süzülme kurallarını belirleyin. Dosya yollarını bulundukları klasör çiftine göre yazın.</target>
<source>C&lear</source>
-<target>&Temizleyin</target>
+<target>&Temizle</target>
<source>Detect moved files</source>
<target>Taşınmış dosyalar algılansın</target>
@@ -968,31 +956,31 @@ Komut şu durumlarda yürütülür:
<target>Eşitleme yönleri veritabanı dosyalarının yardımı ile algılanır</target>
<source>Delete files:</source>
-<target>Dosya silme işlemi:</target>
+<target>Dosya Silme İşlemi:</target>
<source>&Permanent</source>
-<target>&Kalıcı olarak silinsin</target>
+<target>&Kalıcı Olarak Silinsin</target>
<source>Delete or overwrite files permanently</source>
<target>Dosyalar kalıcı olarak silinir ya da üzerine yazılır</target>
<source>&Recycle bin</source>
-<target>Ge&ri Dönüşüm Kutusuna atılsın</target>
+<target>Ge&ri Dönüşüm Kutusuna Atılsın</target>
<source>Back up deleted and overwritten files in the recycle bin</source>
<target>Silinen ya da üzerine yazılan dosyalar geri dönüşüm kutusuna gönderilir</target>
<source>&Versioning</source>
-<target>Eski &sürüm olarak saklansın</target>
+<target>Eski &Sürüm Olarak Saklansın</target>
<source>Move files to a user-defined folder</source>
<target>Dosyalar kullanıcı tarafından belirtilen bir klasöre taşınır</target>
<source>Naming convention:</source>
-<target>Adlandırma kuralı:</target>
+<target>Adlandırma Kuralı:</target>
<source>Handle errors:</source>
-<target>Hata olursa:</target>
+<target>Hata Durumunda:</target>
<source>Hide all error and warning messages</source>
<target>Hiçbir hata ve uyarı iletisi görüntülenmez</target>
@@ -1004,47 +992,50 @@ Komut şu durumlarda yürütülür:
<target>Hata ya da uyarılar açılır pencerede görüntülenir</target>
<source>On completion:</source>
-<target>Tamamlandığında:</target>
+<target>İşlem Tamamlandığında:</target>
<source>OK</source>
<target>Tamam</target>
+<source>Arrange folder pair</source>
+<target>Klasör çiftini belirleyin</target>
+
<source>Enter your SFTP login details:</source>
<target>SFTP oturum açma bilgilerinizi yazın:</target>
<source>Server name or IP address:</source>
-<target>Sunucu adı / IP adresi:</target>
+<target>Sunucu Adı / IP Adresi:</target>
<source>Port:</source>
<target>Kapı:</target>
-<source>Examples:</source>
-<target>Örnekler:</target>
-
<source>User name:</source>
-<target>Kullanıcı adı:</target>
+<target>Kullanıcı Adı:</target>
<source>Password:</source>
<target>Parola:</target>
<source>&Show password</source>
-<target>Parola &görüntülensin</target>
+<target>Parola &Görüntülensin</target>
<source>Directory on server:</source>
-<target>Sunucudaki klasör:</target>
+<target>Sunucudaki Klasör:</target>
+
+<source>Select a directory on the server:</source>
+<target>Sunucu üzerinde bir klasör seçin:</target>
+
+<source>Select Folder</source>
+<target>Klasör Seçin</target>
<source>Start synchronization now?</source>
<target>Eşitleme başlatılsın mı?</target>
<source>Variant:</source>
-<target>İşlem tipi:</target>
+<target>İşlem Tipi:</target>
<source>&Don't show this dialog again</source>
<target>Bu pencere bir daha &görüntülenmesin</target>
-<source>Arrange folder pair</source>
-<target>Klasör çiftini belirleyin</target>
-
<source>Items found:</source>
<target>Bulunan öge:</target>
@@ -1058,34 +1049,34 @@ Komut şu durumlarda yürütülür:
<target>Eşitleniyor...</target>
<source>Minimize to notification area</source>
-<target>Bildirim alanına küçültün</target>
+<target>Bildirim alanına küçült</target>
<source>Bytes copied:</source>
<target>Kopyalanan bayt:</target>
<source>Close</source>
-<target>Kapatın</target>
+<target>Kapat</target>
<source>&Pause</source>
-<target>&Duraklatılsın</target>
+<target>&Duraklat</target>
<source>Stop</source>
-<target>Durdurulsun</target>
+<target>Durdur</target>
<source>Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x</source>
-<target>Hiç bir soru sorulmadan eşitleme 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</target>
+<target>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</target>
<source>&Stop</source>
<target>&Durdur</target>
<source>Stop synchronization at first error</source>
-<target>Oluşacak ilk hatada eşitleme durdurulur</target>
+<target>Oluşacak ilk hatada eşitleme durdurulsun</target>
<source>Run minimized</source>
-<target>Küçülterek çalıştır</target>
+<target>Küçülterek Çalıştır</target>
<source>Save log:</source>
-<target>Günlük kaydet:</target>
+<target>İşlem Günlüğünü Kaydet:</target>
<source>Limit:</source>
<target>Sınır:</target>
@@ -1094,13 +1085,19 @@ Komut şu durumlarda yürütülür:
<target>Tutulacak en fazla günlük dosyası sayısı</target>
<source>How can I schedule a batch job?</source>
-<target>Bir toplu işlem nasıl zamanlanır?</target>
+<target>Toplu İşlem Zamanlaması Hakkında Bilgiler</target>
+
+<source>&Keep relative paths</source>
+<target>Bağıl yollar &korunsun</target>
+
+<source>&Overwrite existing files</source>
+<target>&Varolan dosyaların üzerine yazılsın</target>
<source>The following settings are used for all synchronization jobs.</source>
<target>Aşağıdaki ayarlar tüm eşitleme işlemleri için geçerlidir.</target>
<source>Fail-safe file copy</source>
-<target>Dosyalar hatasız kopyalansın</target>
+<target>Dosyalar Hatasız Kopyalansın</target>
<source>
Copy to a temporary file (*.ffs_tmp) before overwriting target.
@@ -1115,7 +1112,7 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>(önerilir)</target>
<source>Copy locked files</source>
-<target>Kilitli dosyalar da kopyalansın</target>
+<target>Kilitli Dosyalar da Kopyalansın</target>
<source>Copy shared or locked files using the Volume Shadow Copy Service.</source>
<target>Paylaşılan ya da kilitlenmiş dosyalar Birim Gölge Hizmetini kullanılarak kopyalanır.</target>
@@ -1124,22 +1121,22 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>(yönetici hakları gereklidir)</target>
<source>Copy file access permissions</source>
-<target>Dosya erişim izinleri de kopyalansın</target>
+<target>Dosya Erişim İzinleri de Kopyalansın</target>
<source>Transfer file and folder permissions.</source>
<target>Dosya ve klasör izinleri de aktarılır.</target>
<source>Automatic retry on error:</source>
-<target>Hata oluşursa yeniden denensin:</target>
+<target>Hata Durumunda Yeniden Deneme:</target>
<source>Retry count:</source>
-<target>Deneme sayısı:</target>
+<target>Deneme Sayısı:</target>
<source>Delay (in seconds):</source>
<target>Bekleme (saniye):</target>
<source>Customize context menu:</source>
-<target>Sağ tık menüsünü özelleştirin:</target>
+<target>Sağ Tık Menüsü Uyarlamaları:</target>
<source>Description</source>
<target>Açıklama</target>
@@ -1166,7 +1163,7 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Öneri ve geri bildirimlerinizi bekleriz</target>
<source>Homepage</source>
-<target>Web sitesi</target>
+<target>Web Sitesi</target>
<source>Email</source>
<target>E-posta</target>
@@ -1184,7 +1181,10 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Toplu İş Olarak Kaydet</target>
<source>Delete Items</source>
-<target>Ögeleri Silin</target>
+<target>Ögeleri Sil</target>
+
+<source>Copy items</source>
+<target>Ögeleri Kopyala</target>
<source>Options</source>
<target>Ayarlar</target>
@@ -1192,7 +1192,7 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Select Time Span</source>
<target>Zaman Aralığı</target>
-<source>&Preferences</source>
+<source>&Options</source>
<target>&Ayarlar</target>
<source>Main Bar</source>
@@ -1213,6 +1213,12 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Overview</source>
<target>Genel</target>
+<source>&Download</source>
+<target>İn&dirin</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Yeni bir FreeFileSync sürümü yayınlanmış:</target>
+
<source>Confirm</source>
<target>Onaylayın</target>
@@ -1226,7 +1232,7 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
</target>
<source>&Execute</source>
-<target>Çalış&tırın</target>
+<target>Çalış&tır</target>
<source>
<pluralform>1 directory</pluralform>
@@ -1256,34 +1262,37 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
</target>
<source>Set direction:</source>
-<target>Yönü seçin:</target>
+<target>Yönü Seç:</target>
<source>multiple selection</source>
<target>çoklu seçim</target>
<source>Include via filter:</source>
-<target>Şu süzgeçle katılsın:</target>
+<target>Katılacak Ögelere Ekle:</target>
<source>Exclude via filter:</source>
-<target>Şu süzgeçle katılmasın:</target>
+<target>Katılmayacak Ögelere Ekle:</target>
<source>Include temporarily</source>
-<target>Geçici olarak katılsın</target>
+<target>Geçici Olarak Kat</target>
<source>Exclude temporarily</source>
-<target>Geçici olarak katılmasın</target>
+<target>Geçici Olarak Katma</target>
-<source>Delete</source>
-<target>Silin</target>
+<source>&Copy to...</source>
+<target>&Farklı Konuma Kopyala...</target>
+
+<source>&Delete</source>
+<target>&Sil</target>
<source>Include all</source>
-<target>Tümü katılsın</target>
+<target>Tümünü Seç</target>
<source>Exclude all</source>
-<target>Hiçbiri katılmasın</target>
+<target>Tümünü Bırak</target>
<source>Show icons:</source>
-<target>Simgeler görüntülensin:</target>
+<target>Simgeler Görüntülensin:</target>
<source>Small</source>
<target>Küçük</target>
@@ -1322,13 +1331,10 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Kaydedilmesi&n</target>
<source>Remove entry from list</source>
-<target>Kaydı listeden silin</target>
-
-<source>Synchronization Settings</source>
-<target>Eşitleme ayarları</target>
+<target>Kaydı Listeden Sil</target>
<source>Clear filter</source>
-<target>Süzgeci temizle</target>
+<target>Süzgeci Temizle</target>
<source>Show files that exist on left side only</source>
<target>Yalnız sol tarafta bulunan dosyaları görüntüler ya da gizler</target>
@@ -1343,7 +1349,7 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Sağda daha yeni olan dosyaları görüntüler ya da gizler</target>
<source>Show files that are equal</source>
-<target>Aynı olan dosyaları görüntüler ya da gizler</target>
+<target>Eşit dosyaları görüntüler ya da gizler</target>
<source>Show files that are different</source>
<target>Farklı olan dosyaları görüntüler ya da gizler</target>
@@ -1376,22 +1382,22 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Süzülmüş ya da geçici olarak katılmayan dosyaları görüntüler ya da gizler</target>
<source>Save as default</source>
-<target>Varsayılan olarak kaydedin</target>
+<target>Varsayılan Olarak Kaydet</target>
<source>Filter</source>
<target>Süzme</target>
<source>All files are in sync</source>
-<target>Tüm dosyalar eşitlendi</target>
+<target>Tüm dosyalar eşit</target>
<source>Cannot find %x</source>
<target>%x bulunamadı</target>
<source>Move up</source>
-<target>Yukarı taşıyın</target>
+<target>Yukarı taşı</target>
<source>Move down</source>
-<target>Aşağı taşıyın</target>
+<target>Aşağı taşı</target>
<source>Comma-separated values</source>
<target>Virgül ile ayrılmış değerler</target>
@@ -1403,16 +1409,22 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Yazılım güncellemesine bakılıyor...</target>
<source>Close progress dialog</source>
-<target>İşlem penceresi kapatılsın</target>
+<target>İşlem Penceresi Kapatılsın</target>
<source>Log off</source>
-<target>Oturum kapatılsın</target>
+<target>Oturum Kapatılsın</target>
<source>Standby</source>
-<target>Uykuya dalınsın</target>
+<target>Uykuya Dalınsın</target>
<source>Shut down</source>
-<target>Bilgisayar kapatılsın</target>
+<target>Bilgisayar Kapatılsın</target>
+
+<source>Paused</source>
+<target>Duraklatıldı</target>
+
+<source>Initializing...</source>
+<target>Başlatılıyor...</target>
<source>Scanning...</source>
<target>Taranıyor...</target>
@@ -1420,20 +1432,14 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Comparing content...</source>
<target>İçerik karşılaştırılıyor...</target>
+<source>Completed</source>
+<target>Tamamlandı</target>
+
<source>Info</source>
<target>Bilgi</target>
<source>Select all</source>
-<target>Tümünü seçin</target>
-
-<source>Paused</source>
-<target>Duraklatıldı</target>
-
-<source>Initializing...</source>
-<target>Başlatılıyor...</target>
-
-<source>Completed</source>
-<target>Tamamlandı</target>
+<target>Tümünü Seç</target>
<source>&Continue</source>
<target>&Devam</target>
@@ -1444,6 +1450,21 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Log</source>
<target>Günlük</target>
+<source>Loading...</source>
+<target>Yükleniyor...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Öge başka bir klasöre kopyalansın mı?</pluralform>
+<pluralform>%x öge başka bir klasöre kopyalansın mı?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Lütfen bir hedef klasör yazın.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1465,14 +1486,11 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<pluralform>Aşağıdaki %x ögeyi silmek istediğinize emin misiniz?</pluralform>
</target>
-<source>Preferences</source>
-<target>Ayarlar</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
-<target>DACL, SACL, Sahip, Grup kopyalansın</target>
+<target>DACL, SACL, Sahip, Grup Kopyalansın</target>
<source>Integrate external applications into context menu. The following macros are available:</source>
-<target>Sağ tık menüsüne dış uygulamalar eklenebilir. Şu etiketler kullanılabilir:</target>
+<target>Sağ tık menüsüne dış uygulamalar eklenebilir. Şu kodlar kullanılabilir:</target>
<source>- full file or folder name</source>
<target>- tam dosya ya da klasör adı</target>
@@ -1492,8 +1510,17 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>&Show</source>
<target>&Görüntülensin</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Dosyaların eşit olup olmadığı, son değişiklik zamanı ve boyuta göre belirlenir.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Dosyaların eşit olup olmadığı, içeriklerine göre belirlenir.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Dosyaların eşit olup olmadığı boyutlarına göre belirlenir.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
-<target>İki taraftaki değişiklikler belirlenir ve kopyalanır. Silinme, taşınma ve çakışmalar, veritabanı kullanılarak kendiliğinden algılanır.</target>
+<target>İki taraftaki değişiklikler de belirlenir ve kopyalanır. Silinme, taşınma ve çakışmalar, veritabanı kullanılarak otomatik olarak algılanır.</target>
<source>Create a mirror backup of the left folder by adapting the right folder to match.</source>
<target>Sağ klasör, sola uyacak şekilde değiştirilerek, sol klasörün yansı yedeği oluşturulur.</target>
@@ -1504,6 +1531,15 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Configure your own synchronization rules.</source>
<target>Eşitleme kuralları kullanıcının isteğine göre belirlenir.</target>
+<source>Synchronization Settings</source>
+<target>Eşitleme ayarları</target>
+
+<source>Comparison</source>
+<target>Karşılaştırma</target>
+
+<source>Synchronization</source>
+<target>Eşitleme</target>
+
<source>Today</source>
<target>Bugün</target>
@@ -1529,25 +1565,25 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>MB</target>
<source>Replace</source>
-<target>Ad değiştirilsin</target>
+<target>Ad Değiştirme</target>
<source>Move files and replace if existing</source>
<target>Dosyalar taşınır ve varsa üzerine yazılır</target>
<source>Time stamp</source>
-<target>Zaman damgası</target>
+<target>Zaman Damgalama</target>
<source>Append a time stamp to each file name</source>
<target>Dosya adlarına zaman damgası eklensin</target>
-<source>Comparison</source>
-<target>Karşılaştırma</target>
+<source>Main config</source>
+<target>Temel ayarlar</target>
-<source>Synchronization</source>
-<target>Eşitleme</target>
+<source>empty</source>
+<target>boş</target>
<source>Leave as unresolved conflict</source>
-<target>Uyuşmazlık çözülmeden bırakılsın</target>
+<target>Uyuşmazlık çözümlenmeden bırakılsın</target>
<source>File</source>
<target>Dosya</target>
@@ -1559,11 +1595,32 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>Dosyalar</target>
<source>Items</source>
-<target>Öge</target>
+<target>Ögeler</target>
<source>Percentage</source>
<target>Yüzde</target>
+<source>Internet access failed.</source>
+<target>İnternet erişimi sağlanamadı.</target>
+
+<source>Check for Program Updates</source>
+<target>Güncelleme Denetimi</target>
+
+<source>Download now?</source>
+<target>İndirmek ister misiniz?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>FreeFileSync güncel.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>www.freefilesync.org sitesine bağlanılamadı.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Geçerli FreeFileSync sürüm numarası çevrimiçi olarak bulunamadı. El ile denetlemek ister misiniz?</target>
+
+<source>&Check</source>
+<target>&Denetle</target>
+
<source>Unable to register to receive system messages.</source>
<target>Sistem iletilerini alabilmek için gerekli kayıt eklenemedi.</target>
@@ -1591,6 +1648,9 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Cannot copy permissions from %x to %y.</source>
<target>İzinler %x üzerinden %y üzerine kopyalanamadı.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x geçerli bir klasör adı değil.</target>
+
<source>Cannot find system function %x.</source>
<target>%x sistem işlevi bulunamadı.</target>
@@ -1673,28 +1733,28 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<target>önerilen</target>
<source>Save settings to "%APPDATA%\FreeFileSync"</source>
-<target>Ayarlar "%APPDATA%\FreeFileSync" kalsörüne kaydedilsin</target>
+<target>Ayarlar "%APPDATA%\FreeFileSync" Klasörüne Kaydedilsin</target>
<source>Register FreeFileSync file extensions</source>
-<target>FreeFileSync dosya uzantıları ilişkilendirilsin</target>
+<target>FreeFileSync Dosya Uzantıları İlişkilendirilsin</target>
<source>Create Explorer context menu entries</source>
-<target>Windows Gezgini sağ tık menü kayıtları eklensin</target>
+<target>Windows Gezgini Sağ Tık Menü Kayıtları Eklensin</target>
<source>Save settings in installation directory</source>
-<target>Ayarlar yükleme klasörüne kaydedilsin</target>
+<target>Ayarlar Yükleme Klasörüne Kaydedilsin</target>
<source>Do not write to Registry</source>
-<target>Kayıt Defterine yazılmasın</target>
+<target>Kayıt Defterine Yazılmasın</target>
<source>Just copy the files</source>
-<target>Yalnız dosyalar kopyalansın</target>
+<target>Yalnız Dosyalar Kopyalansın</target>
<source>Choose a directory for installation:</source>
-<target>Yüklenecek klasörü seçin:</target>
+<target>Yüklenecek Klasörü Seçin:</target>
<source>Create shortcuts:</source>
-<target>Kısayollar oluşturulsun:</target>
+<target>Kısayollar Oluşturulsun:</target>
<source>Desktop</source>
<target>Masaüstü</target>
@@ -1717,9 +1777,15 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>FreeFileSync Synchronization Database</source>
<target>FreeFileSync Eşitleme Veritabanı</target>
-<source>RealtimeSync Configuration</source>
-<target>Gerçek Zamanlı Eşitleme Ayarları</target>
+<source>RealTimeSync Configuration</source>
+<target>RealTimeSync Ayarları</target>
<source>Edit with FreeFileSync</source>
-<target>FreeFileSync ile düzenlensin</target>
+<target>FreeFileSync ile Düzenlensin</target>
+
+<source>Thanks for your donation and support!</source>
+<target>Bağış ve destekleriniz için teşekkürler!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Bağışçılara özel bu FreeFileSync kopyası için yükleme sınırına ulaşıldı. FreeFileSync sayfasından normal sürümü indirmek ister misiniz?</target>
diff --git a/FreeFileSync/Build/Languages/ukrainian.lng b/FreeFileSync/Build/Languages/ukrainian.lng
index d26a3c98..286e3f7c 100644
--- a/FreeFileSync/Build/Languages/ukrainian.lng
+++ b/FreeFileSync/Build/Languages/ukrainian.lng
@@ -22,8 +22,14 @@
<source>Setting default synchronization directions: Old files will be overwritten with newer files.</source>
<target>Налаштування напрямку синхронізації за замовчуванням: Старі файли будуть замінені новішими файлами.</target>
-<source>Checking recycle bin availability for folder %x...</source>
-<target>Перевірка доступності Корзини для папки %x...</target>
+<source>Creating folder %x</source>
+<target>Створення папки %x</target>
+
+<source>Creating file %x</source>
+<target>Створення файлу %x</target>
+
+<source>Creating symbolic link %x</source>
+<target>Створення символьного посилання %x</target>
<source>Moving file %x to the recycle bin</source>
<target>Переміщення файлу %x до Корзини</target>
@@ -43,6 +49,9 @@
<source>Deleting symbolic link %x</source>
<target>Вилучення символьного посилання %x</target>
+<source>Checking recycle bin availability for folder %x...</source>
+<target>Перевірка доступності Корзини для папки %x...</target>
+
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Корзина не доступна для таких папок. Файли замість цього будуть видалені назавжди:</target>
@@ -58,6 +67,9 @@
<source>Cannot find file %x.</source>
<target>Неможливо знайти файл %x.</target>
+<source>Error</source>
+<target>Помилка</target>
+
<source>File %x does not contain a valid configuration.</source>
<target>Файл %x не містить правильної конфігурації.</target>
@@ -100,8 +112,8 @@
<source>Cannot find the following folders:</source>
<target>Не вдається знайти такі папки:</target>
-<source>You can ignore this error to consider each folder as empty. The folders then will be created automatically during synchronization.</source>
-<target>Ви можете ігнорувати цю помилку, вважаючи кожну папку порожньою. Папки будуть автоматично створені під час синхронізації.</target>
+<source>If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.</source>
+<target>Якщо ви проігноруєте цю помилку папки будуть вважатися порожніми. Відсутні папки створюються автоматично, коли це необхідно.</target>
<source>A folder input field is empty.</source>
<target>Порожнє поле папки.</target>
@@ -140,7 +152,7 @@
<target>Створення списку файлів...</target>
<source>Starting comparison</source>
-<target>Початок порівняння</target>
+<target>Запустити порівняння</target>
<source>Calculating sync directions...</source>
<target>Встановлення напрямку синхронізації...</target>
@@ -246,9 +258,6 @@ Actual: %y bytes
<source>Cannot find device %x.</source>
<target>Не вдається знайти пристрій %x.</target>
-<source>Cannot determine free disk space for %x.</source>
-<target>Не вдається визначити об'єм вільного місця для %x.</target>
-
<source>Cannot create directory %x.</source>
<target>Не вдається створити папку %x.</target>
@@ -267,12 +276,15 @@ Actual: %y bytes
<source>Cannot resolve symbolic link %x.</source>
<target>Не вдається вирішити символьне посилання %x.</target>
-<source>Unable to move %x to the recycle bin.</source>
-<target>Не вдається перемістити %x до Корзини.</target>
-
<source>Cannot open directory %x.</source>
<target>Не вдається відкрити папку %x.</target>
+<source>Cannot determine free disk space for %x.</source>
+<target>Не вдається визначити об'єм вільного місця для %x.</target>
+
+<source>Unable to move %x to the recycle bin.</source>
+<target>Не вдається перемістити %x до Корзини.</target>
+
<source>Incorrect command line:</source>
<target>Неправильний командний рядок:</target>
@@ -347,9 +359,6 @@ Actual: %y bytes
<source>Detecting abandoned lock...</source>
<target>Виявлено покинуте блокування...</target>
-<source>Creating file %x</source>
-<target>Створення файлу %x</target>
-
<source>Saving file %x...</source>
<target>Збереження файлу %x...</target>
@@ -368,9 +377,6 @@ Actual: %y bytes
<source>Cannot set directory lock for %x.</source>
<target>Не вдається встановити блокування папки %x.</target>
-<source>Scanning:</source>
-<target>Сканування:</target>
-
<source>
<pluralform>1 thread</pluralform>
<pluralform>%x threads</pluralform>
@@ -381,6 +387,9 @@ Actual: %y bytes
<pluralform>%x потоків виконання</pluralform>
</target>
+<source>Scanning:</source>
+<target>Сканування:</target>
+
<source>/sec</source>
<target>/сек</target>
@@ -454,10 +463,10 @@ Actual: %y bytes
<target>2. Введіть рядок команди.</target>
<source>3. Press 'Start'.</source>
-<target>3. Натисніть 'Старт'.</target>
+<target>3. Натисніть 'Запуск'.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>Щоб розпочати імпортуйте .ffs_batch файл.</target>
+<target>Щоб запустити імпортуйте .ffs_batch файл.</target>
<source>Folders to watch:</source>
<target>Папки для спостереження:</target>
@@ -491,8 +500,8 @@ The command is triggered if:
- з'явилися нові папки (наприклад, підключений USB флеш-носій)
</target>
-<source>&Start</source>
-<target>&Старт</target>
+<source>Start</source>
+<target>Запуск</target>
<source>About</source>
<target>Про</target>
@@ -506,15 +515,15 @@ The command is triggered if:
<source>Automated Synchronization</source>
<target>Автоматична Синхронізація</target>
+<source>The following path does not support directory monitoring:</source>
+<target>Наступний шлях не підтримує моніторинг папок:</target>
+
<source>Directory monitoring active</source>
<target>Моніторинг папок активний</target>
<source>Waiting until all directories are available...</source>
<target>Очікування доступності всіх папок...</target>
-<source>Error</source>
-<target>Помилка</target>
-
<source>&Restore</source>
<target>Від&новити</target>
@@ -527,11 +536,14 @@ The command is triggered if:
<source>&Retry</source>
<target>&Повторити</target>
+<source>File time and size</source>
+<target>Дата та розмір файлу</target>
+
<source>File content</source>
<target>Вміст файлу</target>
-<source>File time and size</source>
-<target>Дата та розмір файлу</target>
+<source>File size</source>
+<target>Розмір файлу</target>
<source>Two way</source>
<target>Обидва напрямки</target>
@@ -560,12 +572,6 @@ The command is triggered if:
<source>Removing old versions...</source>
<target>Видалення старих версій...</target>
-<source>Creating symbolic link %x</source>
-<target>Створення символьного посилання %x</target>
-
-<source>Creating folder %x</source>
-<target>Створення папки %x</target>
-
<source>Updating file %x</source>
<target>Оновлення файлу %x</target>
@@ -684,30 +690,6 @@ The command is triggered if:
<source>Serious Error</source>
<target>Серйозна помилка</target>
-<source>Check for Program Updates</source>
-<target>Перевірка Оновлень Програми</target>
-
-<source>A new version of FreeFileSync is available:</source>
-<target>Доступна нова версія FreeFileSync:</target>
-
-<source>Download now?</source>
-<target>Завантажити зараз?</target>
-
-<source>&Download</source>
-<target>&Завантажити</target>
-
-<source>FreeFileSync is up to date.</source>
-<target>У Вас найновіша версія FreeFileSync.</target>
-
-<source>Unable to connect to www.freefilesync.org.</source>
-<target>Не вдалось підключитись до www.freefilesync.org.</target>
-
-<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
-<target>Не вдається знайти номер поточної версії FreeFileSync он-лайн. Бажаєте перевірити вручну?</target>
-
-<source>&Check</source>
-<target>&Перевірити</target>
-
<source>Symlink</source>
<target>Символьне посилання</target>
@@ -768,11 +750,20 @@ The command is triggered if:
<source>Paste</source>
<target>Вставити</target>
-<source>Local Synchronization Settings</source>
-<target>Налаштування Локальної Синхронізації</target>
+<source>The selected folder %x cannot be used with FreeFileSync.</source>
+<target>Вибрана папка %x не може бути використана з FreeFileSync.</target>
+
+<source>Please select a folder on a local file system, network or an MTP device.</source>
+<target>Будь ласка, виберіть папку на локальній файловій системі, в мережі чи на MTP пристрої.</target>
-<source>The selected folder %x cannot be used with FreeFileSync. Please select a folder on a local file system, network or an MTP device.</source>
-<target>Вибрана папка %x не може бути використана з FreeFileSync. Будь ласка, виберіть папку з локальної файлової системи, мережі чи MTP пристрою.</target>
+<source>SFTP folder</source>
+<target>SFTP папка</target>
+
+<source>Select SFTP folder</source>
+<target>Вибрати SFTP папку</target>
+
+<source>Select alternative folder type</source>
+<target>Виберіть альтернативний тип папки</target>
<source>&New</source>
<target>&Створити</target>
@@ -801,8 +792,8 @@ The command is triggered if:
<source>&Actions</source>
<target>Ді&ї</target>
-<source>&Options</source>
-<target>&Опції</target>
+<source>&Preferences</source>
+<target>&Уподобання</target>
<source>&Language</source>
<target>&Мова</target>
@@ -843,9 +834,6 @@ The command is triggered if:
<source>Remove folder pair</source>
<target>Вилучити пару папок</target>
-<source>Select SFTP folder</source>
-<target>Вибрати SFTP папку</target>
-
<source>Swap sides</source>
<target>Поміняти місцями</target>
@@ -891,27 +879,15 @@ The command is triggered if:
<source>Total bytes to copy</source>
<target>Всього скопіювати байтів</target>
+<source>Folder pair:</source>
+<target>Пара папок:</target>
+
<source>Use local settings:</source>
<target>Використати локальні налаштування:</target>
<source>Select a variant:</source>
<target>Виберіть варіант:</target>
-<source>Identify equal files by comparing modification time and size.</source>
-<target>Визначити однакові файли порівнюючи час модифікації та розмір.</target>
-
-<source>Identify equal files by comparing the file content.</source>
-<target>Визначати однакові файли порівнюючи їх вміст.</target>
-
-<source>&Ignore time shift (in hours)</source>
-<target>&Ігнорувати зсув часу (в годинах)</target>
-
-<source>Consider file times with specified offset as equal</source>
-<target>Враховувати час файлів зі вказаним зсувом рівним</target>
-
-<source>Handle daylight saving time</source>
-<target>Перехід на літній час вручну</target>
-
<source>Include &symbolic links:</source>
<target>Включити &символьні посилання:</target>
@@ -924,6 +900,18 @@ The command is triggered if:
<source>More information</source>
<target>Додаткова інформація</target>
+<source>&Ignore time shift [hh:mm]</source>
+<target>&Ігнорувати зсув у часі [hh:mm]</target>
+
+<source>List of file time offsets to ignore</source>
+<target>Список ігнорованих файлових зсувів у часі</target>
+
+<source>Example:</source>
+<target>Приклад:</target>
+
+<source>Handle daylight saving time</source>
+<target>Перехід на літній час вручну</target>
+
<source>Local settings:</source>
<target>Локальні налаштування:</target>
@@ -1013,14 +1001,17 @@ The command is triggered if:
<source>OK</source>
<target>OK</target>
+<source>Arrange folder pair</source>
+<target>Упорядкувати пару папок</target>
+
<source>Enter your SFTP login details:</source>
<target>Введіть дані для входу SFTP:</target>
<source>Server name or IP address:</source>
<target>Ім'я серверу чи IP адреса:</target>
-<source>Examples:</source>
-<target>Приклади:</target>
+<source>Port:</source>
+<target>Порт:</target>
<source>User name:</source>
<target>Ім'я користувача:</target>
@@ -1034,8 +1025,14 @@ The command is triggered if:
<source>Directory on server:</source>
<target>Папка на сервері:</target>
+<source>Select a directory on the server:</source>
+<target>Вибрати папку на сервері:</target>
+
+<source>Select Folder</source>
+<target>Вибрати Папку</target>
+
<source>Start synchronization now?</source>
-<target>Розпочати синхронізацію?</target>
+<target>Запустити синхронізацію зараз?</target>
<source>Variant:</source>
<target>Варіант:</target>
@@ -1043,9 +1040,6 @@ The command is triggered if:
<source>&Don't show this dialog again</source>
<target>Більше &не показувати цей діалог</target>
-<source>Arrange folder pair</source>
-<target>Упорядкувати пару папок</target>
-
<source>Items found:</source>
<target>Елементів знайдено:</target>
@@ -1074,7 +1068,7 @@ The command is triggered if:
<target>Зупинити</target>
<source>Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x</source>
-<target>Створити пакетний файл для автоматичної синхронізації. Щоб розпочати двічі клацніть цей файл або заплануйте в планувальнику завдань: %x</target>
+<target>Створити пакетний файл для автоматичної синхронізації. Щоб запустити двічі клацніть цей файл або заплануйте в планувальнику завдань: %x</target>
<source>&Stop</source>
<target>&Зупинити</target>
@@ -1097,6 +1091,12 @@ The command is triggered if:
<source>How can I schedule a batch job?</source>
<target>Як можна запланувати пакетне завдання?</target>
+<source>&Keep relative paths</source>
+<target>&Зберегти відносні шляхи</target>
+
+<source>&Overwrite existing files</source>
+<target>&Перезаписати існуючі файли</target>
+
<source>The following settings are used for all synchronization jobs.</source>
<target>Наступні налаштування використовуються для всіх завдань синхронізації.</target>
@@ -1187,14 +1187,17 @@ This guarantees a consistent state even in case of a serious error.
<source>Delete Items</source>
<target>Вилучити Елементи</target>
+<source>Copy items</source>
+<target>Копіювати елементи</target>
+
<source>Options</source>
<target>Опції</target>
<source>Select Time Span</source>
<target>Виберіть Інтервал Часу</target>
-<source>&Preferences</source>
-<target>&Уподобання</target>
+<source>&Options</source>
+<target>&Опції</target>
<source>Main Bar</source>
<target>Головна панель</target>
@@ -1214,6 +1217,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Overview</source>
<target>Огляд</target>
+<source>&Download</source>
+<target>&Завантажити</target>
+
+<source>A new version of FreeFileSync is available:</source>
+<target>Доступна нова версія FreeFileSync:</target>
+
<source>Confirm</source>
<target>Підтвердити</target>
@@ -1278,8 +1287,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Exclude temporarily</source>
<target>Виключити тимчасово</target>
-<source>Delete</source>
-<target>Видалити</target>
+<source>&Copy to...</source>
+<target>&Копіювати до...</target>
+
+<source>&Delete</source>
+<target>Ви&далити</target>
<source>Include all</source>
<target>Включити всі</target>
@@ -1329,9 +1341,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Remove entry from list</source>
<target>Видалити запис зі списку</target>
-<source>Synchronization Settings</source>
-<target>Налаштування Синхронізації</target>
-
<source>Clear filter</source>
<target>Очистити фільтр</target>
@@ -1419,27 +1428,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Shut down</source>
<target>Вимкнути комп'ютер</target>
+<source>Paused</source>
+<target>Призупинено</target>
+
+<source>Initializing...</source>
+<target>Ініціалізація...</target>
+
<source>Scanning...</source>
<target>Сканування...</target>
<source>Comparing content...</source>
<target>Порівнювання вмісту...</target>
+<source>Completed</source>
+<target>Завершено</target>
+
<source>Info</source>
<target>Інформація</target>
<source>Select all</source>
<target>Виділити все</target>
-<source>Paused</source>
-<target>Призупинено</target>
-
-<source>Initializing...</source>
-<target>Ініціалізація...</target>
-
-<source>Completed</source>
-<target>Завершено</target>
-
<source>&Continue</source>
<target>&Продовжити</target>
@@ -1449,6 +1458,22 @@ This guarantees a consistent state even in case of a serious error.
<source>Log</source>
<target>Лог</target>
+<source>Loading...</source>
+<target>Завантаження...</target>
+
+<source>
+<pluralform>Copy the following item to another folder?</pluralform>
+<pluralform>Copy the following %x items to another folder?</pluralform>
+</source>
+<target>
+<pluralform>Копіювати цей %x єлемент у іншу папку?</pluralform>
+<pluralform>Копіювати ці %x елементи у іншу папку?</pluralform>
+<pluralform>Копіювати ці %x елементів у іншу папку?</pluralform>
+</target>
+
+<source>Please enter a target folder.</source>
+<target>Будь ласка, введіть цільову папку.</target>
+
<source>
<pluralform>Do you really want to move the following item to the recycle bin?</pluralform>
<pluralform>Do you really want to move the following %x items to the recycle bin?</pluralform>
@@ -1472,9 +1497,6 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Ви дійсно хочете вилучити ці %x елементів?</pluralform>
</target>
-<source>Preferences</source>
-<target>Уподобання</target>
-
<source>Copy DACL, SACL, Owner, Group</source>
<target>Скопіювати DACL, SACL, власника, групу</target>
@@ -1499,6 +1521,15 @@ This guarantees a consistent state even in case of a serious error.
<source>&Show</source>
<target>&Показати</target>
+<source>Identify equal files by comparing modification time and size.</source>
+<target>Визначити однакові файли порівнюючи час модифікації та розмір.</target>
+
+<source>Identify equal files by comparing the file content.</source>
+<target>Визначати однакові файли порівнюючи їх вміст.</target>
+
+<source>Identify equal files by comparing their file size.</source>
+<target>Визначати однакові файли порівнюючи їх розмір.</target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>Виявити та поширити зміни на обидві сторони. Видалення, перейменування та конфлікти визначаються автоматично використовуючи базу даних.</target>
@@ -1511,6 +1542,15 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Налаштувати власні правила синхронізації.</target>
+<source>Synchronization Settings</source>
+<target>Налаштування Синхронізації</target>
+
+<source>Comparison</source>
+<target>Порівняння</target>
+
+<source>Synchronization</source>
+<target>Синхронізація</target>
+
<source>Today</source>
<target>Сьогодні</target>
@@ -1547,11 +1587,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Append a time stamp to each file name</source>
<target>Приєднати відмітку часу до кожної назви файлу</target>
-<source>Comparison</source>
-<target>Порівняння</target>
+<source>Main config</source>
+<target>Головна конфігурація</target>
-<source>Synchronization</source>
-<target>Синхронізація</target>
+<source>empty</source>
+<target>пусто</target>
<source>Leave as unresolved conflict</source>
<target>Залишити як невирішений конфлікт</target>
@@ -1571,6 +1611,27 @@ This guarantees a consistent state even in case of a serious error.
<source>Percentage</source>
<target>Проценти</target>
+<source>Internet access failed.</source>
+<target>Немає доступу до Internet.</target>
+
+<source>Check for Program Updates</source>
+<target>Перевірка Оновлень Програми</target>
+
+<source>Download now?</source>
+<target>Завантажити зараз?</target>
+
+<source>FreeFileSync is up to date.</source>
+<target>У Вас найновіша версія FreeFileSync.</target>
+
+<source>Unable to connect to www.freefilesync.org.</source>
+<target>Не вдалось підключитись до www.freefilesync.org.</target>
+
+<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
+<target>Не вдається знайти номер поточної версії FreeFileSync он-лайн. Бажаєте перевірити вручну?</target>
+
+<source>&Check</source>
+<target>&Перевірити</target>
+
<source>Unable to register to receive system messages.</source>
<target>Не вдається зареєструватися для отримання системних повідомлень.</target>
@@ -1598,6 +1659,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot copy permissions from %x to %y.</source>
<target>Не вдається скопіювати права доступу з %x до %y.</target>
+<source>%x is not a regular directory name.</source>
+<target>%x не є звичайним іменем папки.</target>
+
<source>Cannot find system function %x.</source>
<target>Не вдається знайти системну функцію %x.</target>
@@ -1727,9 +1791,15 @@ This guarantees a consistent state even in case of a serious error.
<source>FreeFileSync Synchronization Database</source>
<target>База даних синхронізації FreeFileSync</target>
-<source>RealtimeSync Configuration</source>
-<target>Конфігурація RealtimeSync</target>
+<source>RealTimeSync Configuration</source>
+<target>Конфігурація RealTimeSync</target>
<source>Edit with FreeFileSync</source>
<target>Редагувати за допомогою FreeFileSync</target>
+<source>Thanks for your donation and support!</source>
+<target>Спасибі за пожертвування та підтримку!</target>
+
+<source>This FreeFileSync installer for donors has reached its installation limit. Download the regular version from the FreeFileSync homepage now?</source>
+<target>Цей FreeFileSync інсталятор для донорів досяг свого ліміту встановлень. Завантажити звичайну версію з домашньої сторінки FreeFileSync зараз?</target>
+
diff --git a/FreeFileSync/Build/Resources.zip b/FreeFileSync/Build/Resources.zip
index 91bb159f..c1f815e4 100644
--- a/FreeFileSync/Build/Resources.zip
+++ b/FreeFileSync/Build/Resources.zip
Binary files differ
diff --git a/FreeFileSync/Build/ding.wav b/FreeFileSync/Build/ding.wav
new file mode 100644
index 00000000..cd592656
--- /dev/null
+++ b/FreeFileSync/Build/ding.wav
Binary files differ
diff --git a/FreeFileSync/Build/Sync_Complete.wav b/FreeFileSync/Build/gong.wav
index 96dd2a15..96dd2a15 100644
--- a/FreeFileSync/Build/Sync_Complete.wav
+++ b/FreeFileSync/Build/gong.wav
Binary files differ
diff --git a/FreeFileSync/Build/harp.wav b/FreeFileSync/Build/harp.wav
new file mode 100644
index 00000000..3fe95e5d
--- /dev/null
+++ b/FreeFileSync/Build/harp.wav
Binary files differ
diff --git a/FreeFileSync/Source/RealtimeSync/Makefile b/FreeFileSync/Source/RealtimeSync/Makefile
index 04b8856c..5e97f3b7 100644
--- a/FreeFileSync/Source/RealtimeSync/Makefile
+++ b/FreeFileSync/Source/RealtimeSync/Makefile
@@ -1,4 +1,4 @@
-APPNAME = RealtimeSync
+APPNAME = RealTimeSync
prefix = /usr
BINDIR = $(DESTDIR)$(prefix)/bin
@@ -41,13 +41,13 @@ OBJECT_LIST=$(CPP_LIST:%.cpp=../../Obj/RTS_GCC_Make_Release/ffs/src/rts/%.o)
all: launchpad
-launchpad: RealtimeSync
+launchpad: RealTimeSync
../../Obj/RTS_GCC_Make_Release/ffs/src/rts/%.o : %.cpp
mkdir -p $(dir $@)
g++ $(CXXFLAGS) -c $< -o $@
-RealtimeSync: $(OBJECT_LIST)
+RealTimeSync: $(OBJECT_LIST)
g++ -o ../../Build/$(APPNAME) $(OBJECT_LIST) $(LINKFLAGS)
clean:
diff --git a/FreeFileSync/Source/RealtimeSync/app_icon.h b/FreeFileSync/Source/RealtimeSync/app_icon.h
index da9f8245..fee50984 100644
--- a/FreeFileSync/Source/RealtimeSync/app_icon.h
+++ b/FreeFileSync/Source/RealtimeSync/app_icon.h
@@ -16,8 +16,8 @@ inline
wxIcon getRtsIcon()
{
//wxWidgets' bitmap to icon conversion on OS X can only deal with very specific sizes => check on all platforms!
- assert(getResourceImage(L"RealtimeSync").GetWidth () == getResourceImage(L"RealtimeSync").GetHeight() &&
- getResourceImage(L"RealtimeSync").GetWidth() % 128 == 0);
+ assert(getResourceImage(L"RealTimeSync").GetWidth () == getResourceImage(L"RealTimeSync").GetHeight() &&
+ getResourceImage(L"RealTimeSync").GetWidth() % 128 == 0);
#ifdef ZEN_WIN
//for compatibility it seems we need to stick with a "real" icon
return wxIcon(L"A_RTS_ICON");
@@ -25,12 +25,12 @@ wxIcon getRtsIcon()
#elif defined ZEN_LINUX
//attention: make sure to not implicitly call "instance()" again => deadlock on Linux
wxIcon icon;
- icon.CopyFromBitmap(getResourceImage(L"RealtimeSync")); //use big logo bitmap for better quality
+ icon.CopyFromBitmap(getResourceImage(L"RealTimeSync")); //use big logo bitmap for better quality
return icon;
#elif defined ZEN_MAC
wxIcon icon;
- icon.CopyFromBitmap(getResourceImage(L"RealtimeSync").ConvertToImage().Scale(128, 128, wxIMAGE_QUALITY_HIGH)); //"von hinten durch die Brust ins Auge"
+ icon.CopyFromBitmap(getResourceImage(L"RealTimeSync").ConvertToImage().Scale(128, 128, wxIMAGE_QUALITY_HIGH)); //"von hinten durch die Brust ins Auge"
return icon;
#endif
}
diff --git a/FreeFileSync/Source/RealtimeSync/application.cpp b/FreeFileSync/Source/RealtimeSync/application.cpp
index ebcc050c..502e54a9 100644
--- a/FreeFileSync/Source/RealtimeSync/application.cpp
+++ b/FreeFileSync/Source/RealtimeSync/application.cpp
@@ -57,8 +57,8 @@ bool Application::OnInit()
//SEM_FAILCRITICALERRORS at startup. This is to prevent error mode dialogs from hanging the application."
::SetErrorMode(SEM_FAILCRITICALERRORS);
- setAppUserModeId(L"RealtimeSync", L"Zenju.RealtimeSync"); //noexcept
- //consider: RealtimeSync.exe, RealtimeSync_Win32.exe, RealtimeSync_x64.exe
+ setAppUserModeId(L"RealTimeSync", L"Zenju.RealTimeSync"); //noexcept
+ //consider: RealTimeSync.exe, RealTimeSync_Win32.exe, RealTimeSync_x64.exe
wxToolTip::SetMaxWidth(-1); //disable tooltip wrapping -> Windows only
@@ -69,7 +69,7 @@ bool Application::OnInit()
//Windows User Experience Interaction Guidelines: tool tips should have 5s timeout, info tips no timeout => compromise:
wxToolTip::SetAutoPop(7000); //http://msdn.microsoft.com/en-us/library/windows/desktop/aa511495.aspx
- SetAppName(L"RealtimeSync");
+ SetAppName(L"RealTimeSync");
initResourceImages(getResourceDir() + Zstr("Resources.zip"));
@@ -149,7 +149,7 @@ int Application::OnRun()
catch (const std::bad_alloc& e) //the only kind of exception we don't want crash dumps for
{
logFatalError(e.what()); //it's not always possible to display a message box, e.g. corrupted stack, however low-level file output works!
- wxSafeShowMessage(L"RealtimeSync - " + _("An exception occurred"), e.what());
+ wxSafeShowMessage(L"RealTimeSync - " + _("An exception occurred"), e.what());
return FFS_RC_EXCEPTION;
}
//catch (...) -> let it crash and create mini dump!!!
diff --git a/FreeFileSync/Source/RealtimeSync/main_dlg.cpp b/FreeFileSync/Source/RealtimeSync/main_dlg.cpp
index 4ad5c5be..c49db1cf 100644
--- a/FreeFileSync/Source/RealtimeSync/main_dlg.cpp
+++ b/FreeFileSync/Source/RealtimeSync/main_dlg.cpp
@@ -34,6 +34,21 @@
using namespace zen;
+namespace
+{
+#ifdef ZEN_WIN_VISTA_AND_LATER
+bool acceptDialogFileDrop(const std::vector<Zstring>& shellItemPaths)
+{
+ return std::any_of(shellItemPaths.begin(), shellItemPaths.end(), [](const Zstring& shellItemPath)
+ {
+ return pathEndsWith(shellItemPath, Zstr(".ffs_real")) ||
+ pathEndsWith(shellItemPath, Zstr(".ffs_batch"));
+ });
+}
+#endif
+}
+
+
class DirectoryPanel : public FolderGenerated
{
public:
@@ -126,8 +141,12 @@ MainDialog::MainDialog(wxDialog* dlg, const Zstring& cfgFileName)
}
//drag and drop .ffs_real and .ffs_batch on main dialog
- setupFileDrop(*m_panelMain);
- m_panelMain->Connect(EVENT_DROP_FILE, FileDropEventHandler(MainDialog::onFilesDropped), nullptr, this);
+#ifdef ZEN_WIN_VISTA_AND_LATER
+ setupShellItemDrop(*this, acceptDialogFileDrop);
+#else
+ setupFileDrop(*this);
+#endif
+ Connect(EVENT_DROP_FILE, FileDropEventHandler(MainDialog::onFilesDropped), nullptr, this);
}
@@ -184,7 +203,7 @@ void MainDialog::OnMenuAbout(wxCommandEvent& event)
showNotificationDialog(this, DialogInfoType::INFO, PopupDialogCfg().
setTitle(_("About")).
- setMainInstructions(L"RealtimeSync" L"\n\n" + replaceCpy(_("Build: %x"), L"%x", build)));
+ setMainInstructions(L"RealTimeSync" L"\n\n" + replaceCpy(_("Build: %x"), L"%x", build)));
}
@@ -243,7 +262,7 @@ void MainDialog::OnConfigSave(wxCommandEvent& event)
//OS X really needs dir/file separated like this:
utfCvrtTo<wxString>(beforeLast(defaultFileName, FILE_NAME_SEPARATOR, IF_MISSING_RETURN_NONE)), //default dir
utfCvrtTo<wxString>(afterLast (defaultFileName, FILE_NAME_SEPARATOR, IF_MISSING_RETURN_ALL)), //default file
- wxString(L"RealtimeSync (*.ffs_real)|*.ffs_real") + L"|" +_("All files") + L" (*.*)|*",
+ wxString(L"RealTimeSync (*.ffs_real)|*.ffs_real") + L"|" +_("All files") + L" (*.*)|*",
wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
if (filePicker.ShowModal() != wxID_OK)
return;
@@ -292,7 +311,7 @@ void MainDialog::setLastUsedConfig(const Zstring& filepath)
//set title
if (filepath == lastConfigFileName())
{
- SetTitle(L"RealtimeSync - " + _("Automated Synchronization"));
+ SetTitle(L"RealTimeSync - " + _("Automated Synchronization"));
currentConfigFileName.clear();
}
else
@@ -309,7 +328,7 @@ void MainDialog::OnConfigLoad(wxCommandEvent& event)
wxString(),
utfCvrtTo<wxString>(beforeLast(currentConfigFileName, FILE_NAME_SEPARATOR, IF_MISSING_RETURN_NONE)), //default dir
wxString(),
- wxString(L"RealtimeSync (*.ffs_real; *.ffs_batch)|*.ffs_real;*.ffs_batch") + L"|" +_("All files") + L" (*.*)|*",
+ wxString(L"RealTimeSync (*.ffs_real; *.ffs_batch)|*.ffs_real;*.ffs_batch") + L"|" +_("All files") + L" (*.*)|*",
wxFD_OPEN);
if (filePicker.ShowModal() == wxID_OK)
loadConfig(utfCvrtTo<Zstring>(filePicker.GetPath()));
diff --git a/FreeFileSync/Source/RealtimeSync/tray_menu.cpp b/FreeFileSync/Source/RealtimeSync/tray_menu.cpp
index bbbc26db..47a7da2a 100644
--- a/FreeFileSync/Source/RealtimeSync/tray_menu.cpp
+++ b/FreeFileSync/Source/RealtimeSync/tray_menu.cpp
@@ -111,7 +111,7 @@ private:
{
wxIcon realtimeIcon;
realtimeIcon.CopyFromBitmap(bmp);
- wxString tooltip = L"RealtimeSync\n" + statusTxt;
+ wxString tooltip = L"RealTimeSync\n" + statusTxt;
if (!jobName_.empty())
tooltip += L"\n\"" + jobName_ + L"\"";
SetIcon(realtimeIcon, tooltip);
diff --git a/FreeFileSync/Source/RealtimeSync/xml_proc.cpp b/FreeFileSync/Source/RealtimeSync/xml_proc.cpp
index 59b0336c..193cc778 100644
--- a/FreeFileSync/Source/RealtimeSync/xml_proc.cpp
+++ b/FreeFileSync/Source/RealtimeSync/xml_proc.cpp
@@ -116,7 +116,7 @@ void xmlAccess::readRealOrBatchConfig(const Zstring& filepath, xmlAccess::XmlRea
if (getXmlType(filepath) != XML_TYPE_BATCH) //throw FileError
return readConfig(filepath, config, warningMsg); //throw FileError
- //convert batch config to RealtimeSync config
+ //convert batch config to RealTimeSync config
XmlBatchConfig batchCfg;
readConfig(filepath, batchCfg, warningMsg); //throw FileError
//<- redirect batch config warnings
diff --git a/FreeFileSync/Source/algorithm.cpp b/FreeFileSync/Source/algorithm.cpp
index e49d6ead..79689ceb 100644
--- a/FreeFileSync/Source/algorithm.cpp
+++ b/FreeFileSync/Source/algorithm.cpp
@@ -222,13 +222,16 @@ bool stillInSync(const InSyncFile& dbFile, CompareVariant compareVar, int fileTi
case CMP_BY_TIME_SIZE:
if (dbFile.cmpVar == CMP_BY_CONTENT) return true; //special rule: this is certainly "good enough" for CMP_BY_TIME_SIZE!
- return //case-sensitive short name match is a database invariant!
- sameFileTime(dbFile.left.lastWriteTimeRaw, dbFile.right.lastWriteTimeRaw, fileTimeTolerance, ignoreTimeShiftMinutes);
+ //case-sensitive short name match is a database invariant!
+ return sameFileTime(dbFile.left.lastWriteTimeRaw, dbFile.right.lastWriteTimeRaw, fileTimeTolerance, ignoreTimeShiftMinutes);
case CMP_BY_CONTENT:
//case-sensitive short name match is a database invariant!
return dbFile.cmpVar == CMP_BY_CONTENT;
- //in contrast to comparison, we don't care about modification time here!
+ //in contrast to comparison, we don't care about modification time here!
+
+ case CMP_BY_SIZE: //file size/case-sensitive short name always matches on both sides for an "in-sync" database entry
+ return true;
}
assert(false);
return false;
@@ -268,15 +271,16 @@ bool stillInSync(const InSyncSymlink& dbLink, CompareVariant compareVar, int fil
switch (compareVar)
{
case CMP_BY_TIME_SIZE:
- if (dbLink.cmpVar == CMP_BY_CONTENT) return true; //special rule: this is already "good enough" for CMP_BY_TIME_SIZE!
+ if (dbLink.cmpVar == CMP_BY_CONTENT || dbLink.cmpVar == CMP_BY_SIZE)
+ return true; //special rule: this is already "good enough" for CMP_BY_TIME_SIZE!
- return //case-sensitive short name match is a database invariant!
- sameFileTime(dbLink.left.lastWriteTimeRaw, dbLink.right.lastWriteTimeRaw, fileTimeTolerance, ignoreTimeShiftMinutes);
+ //case-sensitive short name match is a database invariant!
+ return sameFileTime(dbLink.left.lastWriteTimeRaw, dbLink.right.lastWriteTimeRaw, fileTimeTolerance, ignoreTimeShiftMinutes);
case CMP_BY_CONTENT:
+ case CMP_BY_SIZE: //== categorized by content! see comparison.cpp, ComparisonBuffer::compareBySize()
//case-sensitive short name match is a database invariant!
- return dbLink.cmpVar == CMP_BY_CONTENT;
- //in contrast to comparison, we don't care about modification time here!
+ return dbLink.cmpVar == CMP_BY_CONTENT || dbLink.cmpVar == CMP_BY_SIZE;
}
assert(false);
return false;
@@ -396,7 +400,7 @@ private:
{
return file.getFileSize<side>() == dbFile.fileSize &&
sameFileTime(file.getLastWriteTime<side>(), getDescriptor<side>(dbFile).lastWriteTimeRaw, 2, {});
- //- respect 2 second FAT/FAT32 precision!
+ //- respect 2 second FAT/FAT32 precision! not user-configurable!
//- "ignoreTimeShiftMinutes" may lead to false positive move detections => let's be conservative and not allow it
// (time shift is only ever required during FAT DST switches)
@@ -540,7 +544,7 @@ private:
if (changeOnLeft != changeOnRight)
{
- //if database entry not in sync according to current settings! -> do not set direction based on async status!
+ //if database entry not in sync according to current settings! -> set direction based on sync status only!
if (dbEntry && !stillInSync(dbEntry->second, cmpVar, fileTimeTolerance, ignoreTimeShiftMinutes))
file.setSyncDirConflict(txtDbNotInSync);
else
@@ -576,7 +580,7 @@ private:
if (changeOnLeft != changeOnRight)
{
- //if database entry not in sync according to current settings! -> do not set direction based on async status!
+ //if database entry not in sync according to current settings! -> set direction based on sync status only!
if (dbEntry && !stillInSync(dbEntry->second, cmpVar, fileTimeTolerance, ignoreTimeShiftMinutes))
symlink.setSyncDirConflict(txtDbNotInSync);
else
@@ -619,7 +623,7 @@ private:
if (changeOnLeft != changeOnRight)
{
- //if database entry not in sync according to current settings! -> do not set direction based on async status!
+ //if database entry not in sync according to current settings! -> set direction based on sync status only!
if (dbEntry && !stillInSync(dbEntry->second))
folder.setSyncDirConflict(txtDbNotInSync);
else
diff --git a/FreeFileSync/Source/application.cpp b/FreeFileSync/Source/application.cpp
index b3e2690b..fb0c0a12 100644
--- a/FreeFileSync/Source/application.cpp
+++ b/FreeFileSync/Source/application.cpp
@@ -614,6 +614,7 @@ void runBatchMode(const Zstring& globalConfigFile, const XmlBatchConfig& batchCf
//class handling status updates and error messages
BatchStatusHandler statusHandler(!batchCfg.runMinimized, //throw BatchAbortProcess
extractJobName(referenceFile),
+ globalCfg.soundFileSyncComplete,
timeStamp,
batchCfg.logFolderPathPhrase,
batchCfg.logfilesCountLimit,
@@ -646,6 +647,7 @@ void runBatchMode(const Zstring& globalConfigFile, const XmlBatchConfig& batchCf
FolderComparison cmpResult = compare(globalCfg.optDialogs,
allowPwPrompt, //allowUserInteraction
globalCfg.runWithBackgroundPriority,
+ globalCfg.folderAccessTimeout,
globalCfg.createLockFile,
dirLocks,
cmpConfig,
@@ -663,6 +665,7 @@ void runBatchMode(const Zstring& globalConfigFile, const XmlBatchConfig& batchCf
globalCfg.copyFilePermissions,
globalCfg.failsafeFileCopy,
globalCfg.runWithBackgroundPriority,
+ globalCfg.folderAccessTimeout,
syncProcessCfg,
cmpResult,
statusHandler);
diff --git a/FreeFileSync/Source/comparison.cpp b/FreeFileSync/Source/comparison.cpp
index 266604b3..f699c5cb 100644
--- a/FreeFileSync/Source/comparison.cpp
+++ b/FreeFileSync/Source/comparison.cpp
@@ -64,6 +64,7 @@ struct ResolvedBaseFolders
ResolvedBaseFolders initializeBaseFolders(const std::vector<FolderPairCfg>& cfgList,
+ int folderAccessTimeout,
bool allowUserInteraction,
ProcessCallback& callback)
{
@@ -86,7 +87,7 @@ ResolvedBaseFolders initializeBaseFolders(const std::vector<FolderPairCfg>& cfgL
output.resolvedPairs.emplace_back(folderPathLeft, folderPathRight);
}
- const FolderStatus status = getFolderStatusNonBlocking(uniqueBaseFolders, allowUserInteraction, callback); //re-check *all* directories on each try!
+ const FolderStatus status = getFolderStatusNonBlocking(uniqueBaseFolders, folderAccessTimeout, allowUserInteraction, callback); //re-check *all* directories on each try!
output.existingBaseFolders = status.existing;
if (!status.missing.empty() || !status.failedChecks.empty())
@@ -100,7 +101,7 @@ ResolvedBaseFolders initializeBaseFolders(const std::vector<FolderPairCfg>& cfgL
errorMsg += L"\n" + AFS::getDisplayPath(fc.first);
errorMsg += L"\n\n";
- errorMsg += _("If you ignore this error the folders are considered empty. Missing folders are created automatically when needed.");
+ errorMsg += _("If you ignore this error the folders will be considered empty. Missing folders are created automatically when needed.");
if (!status.failedChecks.empty())
{
@@ -167,6 +168,7 @@ public:
//create comparison result table and fill category except for files existing on both sides: undefinedFiles and undefinedSymlinks are appended!
std::shared_ptr<BaseFolderPair> compareByTimeSize(const ResolvedFolderPair& fp, const FolderPairCfg& fpConfig) const;
+ std::shared_ptr<BaseFolderPair> compareBySize (const ResolvedFolderPair& fp, const FolderPairCfg& fpConfig) const;
std::list<std::shared_ptr<BaseFolderPair>> compareByContent(const std::vector<std::pair<ResolvedFolderPair, FolderPairCfg>>& workLoad) const;
private:
@@ -332,7 +334,7 @@ std::shared_ptr<BaseFolderPair> ComparisonBuffer::compareByTimeSize(const Resolv
//Caveat:
//1. FILE_EQUAL may only be set if short names match in case: InSyncFolder's mapping tables use short name as a key! see db_file.cpp
//2. FILE_EQUAL is expected to mean identical file sizes! See InSyncFile
- //3. harmonize with "bool stillInSync()" in algorithm.cpp, FilePair::syncTo() in file_hierarchy.cpp
+ //3. harmonize with "bool stillInSync()" in algorithm.cpp, FilePair::setSyncedTo() in file_hierarchy.h
if (file->getFileSize<LEFT_SIDE>() == file->getFileSize<RIGHT_SIDE>())
{
if (file->getItemName<LEFT_SIDE>() == file->getItemName<RIGHT_SIDE>())
@@ -394,14 +396,14 @@ void categorizeSymlinkByContent(SymlinkPair& symlink, ProcessCallback& callback)
{
//Caveat:
//1. SYMLINK_EQUAL may only be set if short names match in case: InSyncFolder's mapping tables use short name as a key! see db_file.cpp
- //2. harmonize with "bool stillInSync()" in algorithm.cpp, FilePair::syncTo() in file_hierarchy.cpp
+ //2. harmonize with "bool stillInSync()" in algorithm.cpp, FilePair::setSyncedTo() in file_hierarchy.h
//symlinks have same "content"
if (symlink.getItemName<LEFT_SIDE>() != symlink.getItemName<RIGHT_SIDE>())
symlink.setCategoryDiffMetadata(getDescrDiffMetaShortnameCase(symlink));
- else if (!sameFileTime(symlink.getLastWriteTime<LEFT_SIDE>(),
- symlink.getLastWriteTime<RIGHT_SIDE>(), symlink.base().getFileTimeTolerance(), symlink.base().getIgnoredTimeShift()))
- symlink.setCategoryDiffMetadata(getDescrDiffMetaDate(symlink));
+ //else if (!sameFileTime(symlink.getLastWriteTime<LEFT_SIDE>(),
+ // symlink.getLastWriteTime<RIGHT_SIDE>(), symlink.base().getFileTimeTolerance(), symlink.base().getIgnoredTimeShift()))
+ // symlink.setCategoryDiffMetadata(getDescrDiffMetaDate(symlink));
else
symlink.setCategory<FILE_EQUAL>();
}
@@ -411,6 +413,39 @@ void categorizeSymlinkByContent(SymlinkPair& symlink, ProcessCallback& callback)
}
+std::shared_ptr<BaseFolderPair> ComparisonBuffer::compareBySize(const ResolvedFolderPair& fp, const FolderPairCfg& fpConfig) const
+{
+ //do basis scan and retrieve files existing on both sides as "compareCandidates"
+ std::vector<FilePair*> uncategorizedFiles;
+ std::vector<SymlinkPair*> uncategorizedLinks;
+ std::shared_ptr<BaseFolderPair> output = performComparison(fp, fpConfig, uncategorizedFiles, uncategorizedLinks);
+
+ //finish symlink categorization
+ for (SymlinkPair* symlink : uncategorizedLinks)
+ categorizeSymlinkByContent(*symlink, callback_); //"compare by size" has the semantics of a quick content-comparison!
+ //harmonize with algorithm.cpp, stillInSync()!
+
+ //categorize files that exist on both sides
+ for (FilePair* file : uncategorizedFiles)
+ {
+ //Caveat:
+ //1. FILE_EQUAL may only be set if short names match in case: InSyncFolder's mapping tables use short name as a key! see db_file.cpp
+ //2. FILE_EQUAL is expected to mean identical file sizes! See InSyncFile
+ //3. harmonize with "bool stillInSync()" in algorithm.cpp, FilePair::setSyncedTo() in file_hierarchy.h
+ if (file->getFileSize<LEFT_SIDE>() == file->getFileSize<RIGHT_SIDE>())
+ {
+ if (file->getItemName<LEFT_SIDE>() == file->getItemName<RIGHT_SIDE>())
+ file->setCategory<FILE_EQUAL>();
+ else
+ file->setCategoryDiffMetadata(getDescrDiffMetaShortnameCase(*file));
+ }
+ else
+ file->setCategory<FILE_DIFFERENT_CONTENT>();
+ }
+ return output;
+}
+
+
std::list<std::shared_ptr<BaseFolderPair>> ComparisonBuffer::compareByContent(const std::vector<std::pair<ResolvedFolderPair, FolderPairCfg>>& workLoad) const
{
std::list<std::shared_ptr<BaseFolderPair>> output;
@@ -495,12 +530,14 @@ std::list<std::shared_ptr<BaseFolderPair>> ComparisonBuffer::compareByContent(co
//Caveat:
//1. FILE_EQUAL may only be set if short names match in case: InSyncFolder's mapping tables use short name as a key! see db_file.cpp
//2. FILE_EQUAL is expected to mean identical file sizes! See InSyncFile
- //3. harmonize with "bool stillInSync()" in algorithm.cpp, FilePair::syncTo() in file_hierarchy.cpp
+ //3. harmonize with "bool stillInSync()" in algorithm.cpp, FilePair::setSyncedTo() in file_hierarchy.h
if (file->getItemName<LEFT_SIDE>() != file->getItemName<RIGHT_SIDE>())
file->setCategoryDiffMetadata(getDescrDiffMetaShortnameCase(*file));
+#if 0 //don't synchronize modtime only see SynchronizeFolderPair::synchronizeFileInt(), SO_COPY_METADATA_TO_*
else if (!sameFileTime(file->getLastWriteTime<LEFT_SIDE>(),
file->getLastWriteTime<RIGHT_SIDE>(), file->base().getFileTimeTolerance(), file->base().getIgnoredTimeShift()))
file->setCategoryDiffMetadata(getDescrDiffMetaDate(*file));
+#endif
else
file->setCategory<FILE_EQUAL>();
}
@@ -795,6 +832,7 @@ std::shared_ptr<BaseFolderPair> ComparisonBuffer::performComparison(const Resolv
FolderComparison zen::compare(xmlAccess::OptionalDialogs& warnings,
bool allowUserInteraction,
bool runWithBackgroundPriority,
+ int folderAccessTimeout,
bool createDirLocks,
std::unique_ptr<LockHolder>& dirLocks,
const std::vector<FolderPairCfg>& cfgList,
@@ -832,7 +870,7 @@ FolderComparison zen::compare(xmlAccess::OptionalDialogs& warnings,
//-------------------some basic checks:------------------------------------------
- const ResolvedBaseFolders& resInfo = initializeBaseFolders(cfgList, allowUserInteraction, callback);
+ const ResolvedBaseFolders& resInfo = initializeBaseFolders(cfgList, folderAccessTimeout, allowUserInteraction, callback);
//directory existence only checked *once* to avoid race conditions!
if (resInfo.resolvedPairs.size() != cfgList.size())
@@ -890,6 +928,7 @@ FolderComparison zen::compare(xmlAccess::OptionalDialogs& warnings,
switch (w.second.compareVar)
{
case CMP_BY_TIME_SIZE:
+ case CMP_BY_SIZE:
break;
case CMP_BY_CONTENT:
workLoadByContent.push_back(w);
@@ -904,6 +943,9 @@ FolderComparison zen::compare(xmlAccess::OptionalDialogs& warnings,
case CMP_BY_TIME_SIZE:
output.push_back(cmpBuff.compareByTimeSize(w.first, w.second));
break;
+ case CMP_BY_SIZE:
+ output.push_back(cmpBuff.compareBySize(w.first, w.second));
+ break;
case CMP_BY_CONTENT:
assert(!outputByContent.empty());
if (!outputByContent.empty())
@@ -914,7 +956,6 @@ FolderComparison zen::compare(xmlAccess::OptionalDialogs& warnings,
break;
}
}
-
assert(output.size() == cfgList.size());
//--------- set initial sync-direction --------------------------------------------------
diff --git a/FreeFileSync/Source/comparison.h b/FreeFileSync/Source/comparison.h
index 537c64a4..41617d4f 100644
--- a/FreeFileSync/Source/comparison.h
+++ b/FreeFileSync/Source/comparison.h
@@ -54,6 +54,7 @@ std::vector<FolderPairCfg> extractCompareCfg(const MainConfiguration& mainCfg, i
FolderComparison compare(xmlAccess::OptionalDialogs& warnings,
bool allowUserInteraction,
bool runWithBackgroundPriority,
+ int folderAccessTimeout,
bool createDirLocks,
std::unique_ptr<LockHolder>& dirLocks, //out
const std::vector<FolderPairCfg>& cfgList,
diff --git a/FreeFileSync/Source/lib/dir_exist_async.h b/FreeFileSync/Source/lib/dir_exist_async.h
index 0f344a3d..33b31afc 100644
--- a/FreeFileSync/Source/lib/dir_exist_async.h
+++ b/FreeFileSync/Source/lib/dir_exist_async.h
@@ -16,8 +16,6 @@
namespace zen
{
-const int FOLDER_EXISTENCE_CHECK_TIMEOUT = 20; //unit: [s]; consider CD-ROM insert or hard disk spin up time from sleep
-
namespace
{
//directory existence checking may hang for non-existent network drives => run asynchronously and update UI!
@@ -31,7 +29,7 @@ struct FolderStatus
std::map<AbstractPath, FileError, AFS::LessAbstractPath> failedChecks;
};
-FolderStatus getFolderStatusNonBlocking(const std::set<AbstractPath, AFS::LessAbstractPath>& folderPaths, bool allowUserInteraction, ProcessCallback& procCallback)
+FolderStatus getFolderStatusNonBlocking(const std::set<AbstractPath, AFS::LessAbstractPath>& folderPaths, int folderAccessTimeout, bool allowUserInteraction, ProcessCallback& procCallback)
{
using namespace zen;
@@ -51,7 +49,7 @@ FolderStatus getFolderStatusNonBlocking(const std::set<AbstractPath, AFS::LessAb
}));
//don't wait (almost) endlessly like Win32 would on non-existing network shares:
- std::chrono::steady_clock::time_point endTime = std::chrono::steady_clock::now() + std::chrono::seconds(FOLDER_EXISTENCE_CHECK_TIMEOUT);
+ std::chrono::steady_clock::time_point endTime = std::chrono::steady_clock::now() + std::chrono::seconds(folderAccessTimeout);
for (auto& fi : futureInfo)
{
diff --git a/FreeFileSync/Source/lib/ffs_paths.cpp b/FreeFileSync/Source/lib/ffs_paths.cpp
index 61f21b7a..a8b27d4b 100644
--- a/FreeFileSync/Source/lib/ffs_paths.cpp
+++ b/FreeFileSync/Source/lib/ffs_paths.cpp
@@ -67,7 +67,7 @@ bool zen::manualProgramUpdateRequired()
Zstring zen::getResourceDir()
{
- //make independent from wxWidgets global variable "appname"; support being called by RealtimeSync
+ //make independent from wxWidgets global variable "appname"; support being called by RealTimeSync
auto appName = wxTheApp->GetAppName();
wxTheApp->SetAppName(L"FreeFileSync");
ZEN_ON_SCOPE_EXIT(wxTheApp->SetAppName(appName));
@@ -87,7 +87,7 @@ Zstring zen::getResourceDir()
Zstring zen::getConfigDir()
{
- //make independent from wxWidgets global variable "appname"; support being called by RealtimeSync
+ //make independent from wxWidgets global variable "appname"; support being called by RealTimeSync
auto appName = wxTheApp->GetAppName();
wxTheApp->SetAppName(L"FreeFileSync");
ZEN_ON_SCOPE_EXIT(wxTheApp->SetAppName(appName));
@@ -113,7 +113,7 @@ Zstring zen::getConfigDir()
}
-//this function is called by RealtimeSync!!!
+//this function is called by RealTimeSync!!!
Zstring zen::getFreeFileSyncLauncherPath()
{
#ifdef ZEN_WIN
diff --git a/FreeFileSync/Source/lib/localization.cpp b/FreeFileSync/Source/lib/localization.cpp
index 553453b1..fa8035da 100644
--- a/FreeFileSync/Source/lib/localization.cpp
+++ b/FreeFileSync/Source/lib/localization.cpp
@@ -418,6 +418,8 @@ const std::vector<TranslationInfo>& zen::getExistingTranslations()
void zen::releaseWxLocale()
{
wxWidgetsLocale::getInstance().release();
+ zen::setTranslator(nullptr); //good place for clean up rather than some time during static destruction: there might be dependencies
+ //e.g. crash handler on some thread may show a message box!
}
@@ -438,7 +440,7 @@ void zen::setLanguage(wxLanguage lng) //throw FileError
//load language file into buffer
if (languageFile.empty()) //if languageFile is empty, texts will be english by default
- zen::setTranslator();
+ zen::setTranslator(nullptr);
else
try
{
diff --git a/FreeFileSync/Source/lib/parse_lng.h b/FreeFileSync/Source/lib/parse_lng.h
index 78c45263..05a769b5 100644
--- a/FreeFileSync/Source/lib/parse_lng.h
+++ b/FreeFileSync/Source/lib/parse_lng.h
@@ -34,12 +34,11 @@ typedef std::map<SingularPluralPair, PluralForms> TranslationPluralMap; //(sing/
struct TransHeader
{
- TransHeader() : pluralCount(0) {}
std::string languageName; //display name: "English (UK)"
std::string translatorName; //"Zenju"
std::string localeName; //ISO 639 language code + ISO 3166 country code, e.g. "en_GB", or "en_US"
std::string flagFile; //"england.png"
- int pluralCount; //2
+ int pluralCount = 0; //2
std::string pluralDefinition; //"n == 1 ? 0 : 1"
};
diff --git a/FreeFileSync/Source/lib/process_xml.cpp b/FreeFileSync/Source/lib/process_xml.cpp
index c0af04c2..5bd93e67 100644
--- a/FreeFileSync/Source/lib/process_xml.cpp
+++ b/FreeFileSync/Source/lib/process_xml.cpp
@@ -182,6 +182,9 @@ void writeText(const CompareVariant& value, std::string& output)
case CMP_BY_CONTENT:
output = "Content";
break;
+ case CMP_BY_SIZE:
+ output = "Size";
+ break;
}
}
@@ -193,6 +196,8 @@ bool readText(const std::string& input, CompareVariant& value)
value = CMP_BY_TIME_SIZE;
else if (tmp == "Content")
value = CMP_BY_CONTENT;
+ else if (tmp == "Size")
+ value = CMP_BY_SIZE;
else
return false;
return true;
@@ -963,27 +968,33 @@ void readConfig(const XmlIn& in, xmlAccess::XmlBatchConfig& config)
void readConfig(const XmlIn& in, XmlGlobalSettings& config)
{
- XmlIn inShared = in["Shared"];
+ XmlIn inGeneral = in["General"];
+
+ warn_static("remove old parameter after migration! 2016-01-18")
+ if (in["Shared"])
+ inGeneral = in["Shared"];
warn_static("remove old parameter after migration! 2015-11-07")
int langId = 0;
- if (inShared["Language"] && inShared["Language"].get()->getAttribute("Id", langId))
+ if (inGeneral["Language"] && inGeneral["Language"].get()->getAttribute("Id", langId))
config.programLanguage = static_cast<wxLanguage>(langId);
else
- inShared["Language"].attribute("Name", config.programLanguage);
-
- inShared["FailSafeFileCopy" ].attribute("Enabled", config.failsafeFileCopy);
- inShared["CopyLockedFiles" ].attribute("Enabled", config.copyLockedFiles);
- inShared["CopyFilePermissions" ].attribute("Enabled", config.copyFilePermissions);
- inShared["AutomaticRetry" ].attribute("Count" , config.automaticRetryCount);
- inShared["AutomaticRetry" ].attribute("Delay" , config.automaticRetryDelay);
- inShared["FileTimeTolerance" ].attribute("Seconds", config.fileTimeTolerance);
- inShared["RunWithBackgroundPriority"].attribute("Enabled", config.runWithBackgroundPriority);
- inShared["LockDirectoriesDuringSync"].attribute("Enabled", config.createLockFile);
- inShared["VerifyCopiedFiles" ].attribute("Enabled", config.verifyFileCopy);
- inShared["LastSyncsLogSizeMax" ].attribute("Bytes" , config.lastSyncsLogFileSizeMax);
-
- XmlIn inOpt = inShared["OptionalDialogs"];
+ inGeneral["Language"].attribute("Name", config.programLanguage);
+
+ inGeneral["FailSafeFileCopy" ].attribute("Enabled", config.failsafeFileCopy);
+ inGeneral["CopyLockedFiles" ].attribute("Enabled", config.copyLockedFiles);
+ inGeneral["CopyFilePermissions" ].attribute("Enabled", config.copyFilePermissions);
+ inGeneral["AutomaticRetry" ].attribute("Count" , config.automaticRetryCount);
+ inGeneral["AutomaticRetry" ].attribute("Delay" , config.automaticRetryDelay);
+ inGeneral["FileTimeTolerance" ].attribute("Seconds", config.fileTimeTolerance);
+ inGeneral["FolderAccessTimeout" ].attribute("Seconds", config.folderAccessTimeout);
+ inGeneral["RunWithBackgroundPriority"].attribute("Enabled", config.runWithBackgroundPriority);
+ inGeneral["LockDirectoriesDuringSync"].attribute("Enabled", config.createLockFile);
+ inGeneral["VerifyCopiedFiles" ].attribute("Enabled", config.verifyFileCopy);
+ inGeneral["LastSyncsLogSizeMax" ].attribute("Bytes" , config.lastSyncsLogFileSizeMax);
+ inGeneral["NotificationSound" ].attribute("SyncComplete", config.soundFileSyncComplete);
+
+ XmlIn inOpt = inGeneral["OptionalDialogs"];
inOpt["WarnUnresolvedConflicts" ].attribute("Enabled", config.optDialogs.warningUnresolvedConflicts);
inOpt["WarnNotEnoughDiskSpace" ].attribute("Enabled", config.optDialogs.warningNotEnoughDiskSpace);
inOpt["WarnSignificantDifference" ].attribute("Enabled", config.optDialogs.warningSignificantDifference);
@@ -1002,52 +1013,52 @@ void readConfig(const XmlIn& in, XmlGlobalSettings& config)
XmlIn inWnd = inGui["MainDialog"];
//read application window size and position
- inWnd.attribute("Width", config.gui.dlgSize.x);
- inWnd.attribute("Height", config.gui.dlgSize.y);
- inWnd.attribute("PosX", config.gui.dlgPos.x);
- inWnd.attribute("PosY", config.gui.dlgPos.y);
- inWnd.attribute("Maximized", config.gui.isMaximized);
+ inWnd.attribute("Width", config.gui.mainDlg.dlgSize.x);
+ inWnd.attribute("Height", config.gui.mainDlg.dlgSize.y);
+ inWnd.attribute("PosX", config.gui.mainDlg.dlgPos.x);
+ inWnd.attribute("PosY", config.gui.mainDlg.dlgPos.y);
+ inWnd.attribute("Maximized", config.gui.mainDlg.isMaximized);
XmlIn inCopyTo = inWnd["ManualCopyTo"];
- inCopyTo.attribute("KeepRelativePaths", config.gui.copyToCfg.keepRelPaths);
- inCopyTo.attribute("OverwriteIfExists", config.gui.copyToCfg.overwriteIfExists);
+ inCopyTo.attribute("KeepRelativePaths", config.gui.mainDlg.copyToCfg.keepRelPaths);
+ inCopyTo.attribute("OverwriteIfExists", config.gui.mainDlg.copyToCfg.overwriteIfExists);
XmlIn inCopyToHistory = inCopyTo["FolderHistory"];
- inCopyToHistory(config.gui.copyToCfg.folderHistory);
- inCopyToHistory.attribute("LastUsedPath" , config.gui.copyToCfg.lastUsedPath);
- inCopyToHistory.attribute("MaxSize" , config.gui.copyToCfg.historySizeMax);
+ inCopyToHistory(config.gui.mainDlg.copyToCfg.folderHistory);
+ inCopyToHistory.attribute("LastUsedPath" , config.gui.mainDlg.copyToCfg.lastUsedPath);
+ inCopyToHistory.attribute("MaxSize" , config.gui.mainDlg.copyToCfg.historySizeMax);
XmlIn inManualDel = inWnd["ManualDeletion"];
- inManualDel.attribute("UseRecycler", config.gui.manualDeletionUseRecycler);
+ inManualDel.attribute("UseRecycler", config.gui.mainDlg.manualDeletionUseRecycler);
- inWnd["CaseSensitiveSearch"].attribute("Enabled", config.gui.textSearchRespectCase);
- inWnd["FolderPairsVisible" ].attribute("Max", config.gui.maxFolderPairsVisible);
+ inWnd["CaseSensitiveSearch"].attribute("Enabled", config.gui.mainDlg.textSearchRespectCase);
+ inWnd["FolderPairsVisible" ].attribute("Max", config.gui.mainDlg.maxFolderPairsVisible);
//###########################################################
XmlIn inOverview = inWnd["OverviewPanel"];
- inOverview.attribute("ShowPercentage", config.gui.showPercentBar);
- inOverview.attribute("SortByColumn", config.gui.naviLastSortColumn);
- inOverview.attribute("SortAscending", config.gui.naviLastSortAscending);
+ inOverview.attribute("ShowPercentage", config.gui.mainDlg.showPercentBar);
+ inOverview.attribute("SortByColumn", config.gui.mainDlg.naviLastSortColumn);
+ inOverview.attribute("SortAscending", config.gui.mainDlg.naviLastSortAscending);
//read column attributes
XmlIn inColNavi = inOverview["Columns"];
- inColNavi(config.gui.columnAttribNavi);
+ inColNavi(config.gui.mainDlg.columnAttribNavi);
XmlIn inMainGrid = inWnd["MainGrid"];
- inMainGrid.attribute("ShowIcons", config.gui.showIcons);
- inMainGrid.attribute("IconSize", config.gui.iconSize);
- inMainGrid.attribute("SashOffset", config.gui.sashOffset);
+ inMainGrid.attribute("ShowIcons", config.gui.mainDlg.showIcons);
+ inMainGrid.attribute("IconSize", config.gui.mainDlg.iconSize);
+ inMainGrid.attribute("SashOffset", config.gui.mainDlg.sashOffset);
XmlIn inColLeft = inMainGrid["ColumnsLeft"];
- inColLeft(config.gui.columnAttribLeft);
+ inColLeft(config.gui.mainDlg.columnAttribLeft);
XmlIn inColRight = inMainGrid["ColumnsRight"];
- inColRight(config.gui.columnAttribRight);
+ inColRight(config.gui.mainDlg.columnAttribRight);
//###########################################################
- inWnd["DefaultView" ](config.gui.viewFilterDefault);
- inWnd["Perspective4"](config.gui.guiPerspectiveLast);
+ inWnd["DefaultViewFilter"](config.gui.mainDlg.viewFilterDefault);
+ inWnd["Perspective4"](config.gui.mainDlg.guiPerspectiveLast);
std::vector<Zstring> tmp = splitFilterByLines(config.gui.defaultExclusionFilter); //default value
inGui["DefaultExclusionFilter"](tmp);
@@ -1353,22 +1364,24 @@ void writeConfig(const XmlBatchConfig& config, XmlOut& out)
void writeConfig(const XmlGlobalSettings& config, XmlOut& out)
{
- XmlOut outShared = out["Shared"];
+ XmlOut outGeneral = out["General"];
- outShared["Language"].attribute("Name", config.programLanguage);
+ outGeneral["Language"].attribute("Name", config.programLanguage);
- outShared["FailSafeFileCopy" ].attribute("Enabled", config.failsafeFileCopy);
- outShared["CopyLockedFiles" ].attribute("Enabled", config.copyLockedFiles);
- outShared["CopyFilePermissions" ].attribute("Enabled", config.copyFilePermissions);
- outShared["AutomaticRetry" ].attribute("Count" , config.automaticRetryCount);
- outShared["AutomaticRetry" ].attribute("Delay" , config.automaticRetryDelay);
- outShared["FileTimeTolerance" ].attribute("Seconds", config.fileTimeTolerance);
- outShared["RunWithBackgroundPriority"].attribute("Enabled", config.runWithBackgroundPriority);
- outShared["LockDirectoriesDuringSync"].attribute("Enabled", config.createLockFile);
- outShared["VerifyCopiedFiles" ].attribute("Enabled", config.verifyFileCopy);
- outShared["LastSyncsLogSizeMax" ].attribute("Bytes" , config.lastSyncsLogFileSizeMax);
+ outGeneral["FailSafeFileCopy" ].attribute("Enabled", config.failsafeFileCopy);
+ outGeneral["CopyLockedFiles" ].attribute("Enabled", config.copyLockedFiles);
+ outGeneral["CopyFilePermissions" ].attribute("Enabled", config.copyFilePermissions);
+ outGeneral["AutomaticRetry" ].attribute("Count" , config.automaticRetryCount);
+ outGeneral["AutomaticRetry" ].attribute("Delay" , config.automaticRetryDelay);
+ outGeneral["FileTimeTolerance" ].attribute("Seconds", config.fileTimeTolerance);
+ outGeneral["FolderAccessTimeout" ].attribute("Seconds", config.folderAccessTimeout);
+ outGeneral["RunWithBackgroundPriority"].attribute("Enabled", config.runWithBackgroundPriority);
+ outGeneral["LockDirectoriesDuringSync"].attribute("Enabled", config.createLockFile);
+ outGeneral["VerifyCopiedFiles" ].attribute("Enabled", config.verifyFileCopy);
+ outGeneral["LastSyncsLogSizeMax" ].attribute("Bytes" , config.lastSyncsLogFileSizeMax);
+ outGeneral["NotificationSound" ].attribute("SyncComplete", config.soundFileSyncComplete);
- XmlOut outOpt = outShared["OptionalDialogs"];
+ XmlOut outOpt = outGeneral["OptionalDialogs"];
outOpt["WarnUnresolvedConflicts" ].attribute("Enabled", config.optDialogs.warningUnresolvedConflicts);
outOpt["WarnNotEnoughDiskSpace" ].attribute("Enabled", config.optDialogs.warningNotEnoughDiskSpace);
outOpt["WarnSignificantDifference" ].attribute("Enabled", config.optDialogs.warningSignificantDifference);
@@ -1387,52 +1400,52 @@ void writeConfig(const XmlGlobalSettings& config, XmlOut& out)
XmlOut outWnd = outGui["MainDialog"];
//write application window size and position
- outWnd.attribute("Width", config.gui.dlgSize.x);
- outWnd.attribute("Height", config.gui.dlgSize.y);
- outWnd.attribute("PosX", config.gui.dlgPos.x);
- outWnd.attribute("PosY", config.gui.dlgPos.y);
- outWnd.attribute("Maximized", config.gui.isMaximized);
+ outWnd.attribute("Width", config.gui.mainDlg.dlgSize.x);
+ outWnd.attribute("Height", config.gui.mainDlg.dlgSize.y);
+ outWnd.attribute("PosX", config.gui.mainDlg.dlgPos.x);
+ outWnd.attribute("PosY", config.gui.mainDlg.dlgPos.y);
+ outWnd.attribute("Maximized", config.gui.mainDlg.isMaximized);
XmlOut outCopyTo = outWnd["ManualCopyTo"];
- outCopyTo.attribute("KeepRelativePaths", config.gui.copyToCfg.keepRelPaths);
- outCopyTo.attribute("OverwriteIfExists", config.gui.copyToCfg.overwriteIfExists);
+ outCopyTo.attribute("KeepRelativePaths", config.gui.mainDlg.copyToCfg.keepRelPaths);
+ outCopyTo.attribute("OverwriteIfExists", config.gui.mainDlg.copyToCfg.overwriteIfExists);
XmlOut outCopyToHistory = outCopyTo["FolderHistory"];
- outCopyToHistory(config.gui.copyToCfg.folderHistory);
- outCopyToHistory.attribute("LastUsedPath" , config.gui.copyToCfg.lastUsedPath);
- outCopyToHistory.attribute("MaxSize" , config.gui.copyToCfg.historySizeMax);
+ outCopyToHistory(config.gui.mainDlg.copyToCfg.folderHistory);
+ outCopyToHistory.attribute("LastUsedPath" , config.gui.mainDlg.copyToCfg.lastUsedPath);
+ outCopyToHistory.attribute("MaxSize" , config.gui.mainDlg.copyToCfg.historySizeMax);
XmlOut outManualDel = outWnd["ManualDeletion"];
- outManualDel.attribute("UseRecycler", config.gui.manualDeletionUseRecycler);
+ outManualDel.attribute("UseRecycler", config.gui.mainDlg.manualDeletionUseRecycler);
- outWnd["CaseSensitiveSearch"].attribute("Enabled", config.gui.textSearchRespectCase);
- outWnd["FolderPairsVisible" ].attribute("Max", config.gui.maxFolderPairsVisible);
+ outWnd["CaseSensitiveSearch"].attribute("Enabled", config.gui.mainDlg.textSearchRespectCase);
+ outWnd["FolderPairsVisible" ].attribute("Max", config.gui.mainDlg.maxFolderPairsVisible);
//###########################################################
XmlOut outOverview = outWnd["OverviewPanel"];
- outOverview.attribute("ShowPercentage", config.gui.showPercentBar);
- outOverview.attribute("SortByColumn", config.gui.naviLastSortColumn);
- outOverview.attribute("SortAscending", config.gui.naviLastSortAscending);
+ outOverview.attribute("ShowPercentage", config.gui.mainDlg.showPercentBar);
+ outOverview.attribute("SortByColumn", config.gui.mainDlg.naviLastSortColumn);
+ outOverview.attribute("SortAscending", config.gui.mainDlg.naviLastSortAscending);
//write column attributes
XmlOut outColNavi = outOverview["Columns"];
- outColNavi(config.gui.columnAttribNavi);
+ outColNavi(config.gui.mainDlg.columnAttribNavi);
XmlOut outMainGrid = outWnd["MainGrid"];
- outMainGrid.attribute("ShowIcons", config.gui.showIcons);
- outMainGrid.attribute("IconSize", config.gui.iconSize);
- outMainGrid.attribute("SashOffset", config.gui.sashOffset);
+ outMainGrid.attribute("ShowIcons", config.gui.mainDlg.showIcons);
+ outMainGrid.attribute("IconSize", config.gui.mainDlg.iconSize);
+ outMainGrid.attribute("SashOffset", config.gui.mainDlg.sashOffset);
XmlOut outColLeft = outMainGrid["ColumnsLeft"];
- outColLeft(config.gui.columnAttribLeft);
+ outColLeft(config.gui.mainDlg.columnAttribLeft);
XmlOut outColRight = outMainGrid["ColumnsRight"];
- outColRight(config.gui.columnAttribRight);
+ outColRight(config.gui.mainDlg.columnAttribRight);
//###########################################################
- outWnd["DefaultView" ](config.gui.viewFilterDefault);
- outWnd["Perspective4"](config.gui.guiPerspectiveLast);
+ outWnd["DefaultViewFilter"](config.gui.mainDlg.viewFilterDefault);
+ outWnd["Perspective4"](config.gui.mainDlg.guiPerspectiveLast);
outGui["DefaultExclusionFilter"](splitFilterByLines(config.gui.defaultExclusionFilter));
diff --git a/FreeFileSync/Source/lib/process_xml.h b/FreeFileSync/Source/lib/process_xml.h
index dea35026..aa7146aa 100644
--- a/FreeFileSync/Source/lib/process_xml.h
+++ b/FreeFileSync/Source/lib/process_xml.h
@@ -147,10 +147,12 @@ struct XmlGlobalSettings
size_t automaticRetryDelay = 5; //unit: [sec]
int fileTimeTolerance = 2; //max. allowed file time deviation; < 0 means unlimited tolerance; default 2s: FAT vs NTFS
+ int folderAccessTimeout = 20; //unit: [s]; consider CD-ROM insert or hard disk spin up time from sleep
bool runWithBackgroundPriority = false;
bool createLockFile = true;
bool verifyFileCopy = false;
size_t lastSyncsLogFileSizeMax = 100000; //maximum size for LastSyncs.log: use a human-readable number
+ Zstring soundFileSyncComplete = Zstr("gong.wav");
OptionalDialogs optDialogs;
@@ -176,35 +178,41 @@ struct XmlGlobalSettings
#endif
}
- wxPoint dlgPos;
- wxSize dlgSize;
- bool isMaximized = false;
- int sashOffset = 0;
+ struct
+ {
+ wxPoint dlgPos;
+ wxSize dlgSize;
+ bool isMaximized = false;
- int maxFolderPairsVisible = 6;
+ struct
+ {
+ bool keepRelPaths = true;
+ bool overwriteIfExists = false;
+ Zstring lastUsedPath;
+ std::vector<Zstring> folderHistory;
+ size_t historySizeMax = 15;
+ } copyToCfg;
- std::vector<zen::ColumnAttributeNavi> columnAttribNavi = zen::getDefaultColumnAttributesNavi(); //compressed view/navigation
- std::vector<zen::ColumnAttributeRim> columnAttribLeft = zen::getDefaultColumnAttributesLeft();
- std::vector<zen::ColumnAttributeRim> columnAttribRight = zen::getDefaultColumnAttributesRight();
+ bool manualDeletionUseRecycler = true;
+ bool textSearchRespectCase = false; //good default for Linux, too!
+ int maxFolderPairsVisible = 6;
- zen::ColumnTypeNavi naviLastSortColumn = zen::defaultValueLastSortColumn; //remember sort on navigation panel
- bool naviLastSortAscending = zen::defaultValueLastSortAscending; //
+ bool showPercentBar = zen::defaultValueShowPercentage; //in navigation panel
+ bool naviLastSortAscending = zen::defaultValueLastSortAscending; //
+ zen::ColumnTypeNavi naviLastSortColumn = zen::defaultValueLastSortColumn; //remember sort on navigation panel
- bool showPercentBar = zen::defaultValueShowPercentage; //in navigation panel
+ std::vector<zen::ColumnAttributeNavi> columnAttribNavi = zen::getDefaultColumnAttributesNavi(); //compressed view/navigation
- ExternalApps externelApplications;
+ bool showIcons = true;
+ FileIconSize iconSize = ICON_SIZE_SMALL;
+ int sashOffset = 0;
- std::vector<ConfigFileItem> cfgFileHistory;
- size_t cfgFileHistMax = 30;
+ std::vector<zen::ColumnAttributeRim> columnAttribLeft = zen::getDefaultColumnAttributesLeft();
+ std::vector<zen::ColumnAttributeRim> columnAttribRight = zen::getDefaultColumnAttributesRight();
- std::vector<ConfigFileItem> lastUsedConfigFiles;
-
- std::vector<Zstring> folderHistoryLeft;
- std::vector<Zstring> folderHistoryRight;
- size_t folderHistMax = 15;
-
- std::vector<Zstring> onCompletionHistory;
- size_t onCompletionHistoryMax = 8;
+ ViewFilterDefault viewFilterDefault;
+ wxString guiPerspectiveLast; //used by wxAuiManager
+ } mainDlg;
#ifdef ZEN_WIN
Zstring defaultExclusionFilter = Zstr("\\System Volume Information\\") Zstr("\n")
@@ -223,31 +231,24 @@ struct XmlGlobalSettings
Zstr("*/.DS_Store") Zstr("\n")
Zstr("*/._.*");
#endif
- struct
- {
- bool keepRelPaths = true;
- bool overwriteIfExists = false;
- Zstring lastUsedPath;
- std::vector<Zstring> folderHistory;
- size_t historySizeMax = 15;
- } copyToCfg;
- bool manualDeletionUseRecycler = true;
+ std::vector<ConfigFileItem> lastUsedConfigFiles;
+
+ std::vector<ConfigFileItem> cfgFileHistory;
+ size_t cfgFileHistMax = 30;
+
+ std::vector<Zstring> folderHistoryLeft;
+ std::vector<Zstring> folderHistoryRight;
+ size_t folderHistMax = 15;
- bool textSearchRespectCase = false; //good default for Linux, too!
+ std::vector<Zstring> onCompletionHistory;
+ size_t onCompletionHistoryMax = 8;
- bool showIcons = true;
- FileIconSize iconSize = ICON_SIZE_SMALL;
+ ExternalApps externelApplications;
time_t lastUpdateCheck = 0; //number of seconds since 00:00 hours, Jan 1, 1970 UTC
std::wstring lastOnlineVersion;
-
- ViewFilterDefault viewFilterDefault;
- wxString guiPerspectiveLast; //used by wxAuiManager
} gui;
-
- //---------------------------------------------------------------------
- //struct Batch
};
//read/write specific config types
diff --git a/FreeFileSync/Source/structures.cpp b/FreeFileSync/Source/structures.cpp
index 52e35bc5..1e443433 100644
--- a/FreeFileSync/Source/structures.cpp
+++ b/FreeFileSync/Source/structures.cpp
@@ -55,10 +55,12 @@ std::wstring zen::getVariantName(CompareVariant var)
{
switch (var)
{
- case CMP_BY_CONTENT:
- return _("File content");
case CMP_BY_TIME_SIZE:
return _("File time and size");
+ case CMP_BY_CONTENT:
+ return _("File content");
+ case CMP_BY_SIZE:
+ return _("File size");
}
assert(false);
return _("Error");
diff --git a/FreeFileSync/Source/structures.h b/FreeFileSync/Source/structures.h
index a089a853..82a0ddf1 100644
--- a/FreeFileSync/Source/structures.h
+++ b/FreeFileSync/Source/structures.h
@@ -16,7 +16,8 @@ namespace zen
enum CompareVariant
{
CMP_BY_TIME_SIZE,
- CMP_BY_CONTENT
+ CMP_BY_CONTENT,
+ CMP_BY_SIZE
};
std::wstring getVariantName(CompareVariant var);
@@ -44,8 +45,8 @@ enum CompareFilesResult
FILE_RIGHT_SIDE_ONLY,
FILE_LEFT_NEWER, //CMP_BY_TIME_SIZE only!
FILE_RIGHT_NEWER, //
- FILE_DIFFERENT_CONTENT, //CMP_BY_CONTENT only!
- FILE_DIFFERENT_METADATA, //both sides equal, but different metadata only: short name case, modification time
+ FILE_DIFFERENT_CONTENT, //CMP_BY_CONTENT, CMP_BY_SIZE only!
+ FILE_DIFFERENT_METADATA, //both sides equal, but different metadata only: short name case
FILE_CONFLICT
};
//attention make sure these /|\ \|/ three enums match!!!
@@ -106,7 +107,7 @@ struct DirectionSet
SyncDirection exRightSideOnly = SyncDirection::LEFT;
SyncDirection leftNewer = SyncDirection::RIGHT; //CMP_BY_TIME_SIZE only!
SyncDirection rightNewer = SyncDirection::LEFT; //
- SyncDirection different = SyncDirection::NONE; //CMP_BY_CONTENT only!
+ SyncDirection different = SyncDirection::NONE; //CMP_BY_CONTENT, CMP_BY_SIZE only!
SyncDirection conflict = SyncDirection::NONE;
};
diff --git a/FreeFileSync/Source/synchronization.cpp b/FreeFileSync/Source/synchronization.cpp
index 129125e4..b5ad2e90 100644
--- a/FreeFileSync/Source/synchronization.cpp
+++ b/FreeFileSync/Source/synchronization.cpp
@@ -1256,11 +1256,12 @@ void SynchronizeFolderPair::synchronizeFileInt(FilePair& file, SyncOperation syn
//respect differences in case of source object:
const AbstractPath targetPathLogical = AFS::appendRelPath(file.base().getAbstractPath<sideTrg>(), file.getRelativePath<sideSrc>());
- const AbstractPath targetPathResolved = file.isFollowedSymlink<sideTrg>() ? //follow link when updating file rather than delete it and replace with regular file!!!
- AFS::getResolvedSymlinkPath(file.getAbstractPath<sideTrg>()) : //throw FileError
- targetPathLogical; //respect differences in case of source object
+ AbstractPath targetPathResolvedOld = file.getAbstractPath<sideTrg>(); //support change in case when syncing to case-sensitive SFTP on Windows!
+ AbstractPath targetPathResolvedNew = targetPathLogical;
+ if (file.isFollowedSymlink<sideTrg>()) //follow link when updating file rather than delete it and replace with regular file!!!
+ targetPathResolvedOld = targetPathResolvedNew = AFS::getResolvedSymlinkPath(file.getAbstractPath<sideTrg>()); //throw FileError
- reportInfo(txtOverwritingFile, AFS::getDisplayPath(targetPathResolved));
+ reportInfo(txtOverwritingFile, AFS::getDisplayPath(targetPathResolvedOld));
if (file.isFollowedSymlink<sideTrg>()) //since we follow the link, we need to sync case sensitivity of the link manually!
if (file.getItemName<sideTrg>() != file.getItemName<sideSrc>()) //have difference in case?
@@ -1272,9 +1273,9 @@ void SynchronizeFolderPair::synchronizeFileInt(FilePair& file, SyncOperation syn
auto onDeleteTargetFile = [&] //delete target at appropriate time
{
- reportStatus(this->getDelHandling<sideTrg>().getTxtRemovingFile(), AFS::getDisplayPath(targetPathResolved));
+ reportStatus(this->getDelHandling<sideTrg>().getTxtRemovingFile(), AFS::getDisplayPath(targetPathResolvedOld));
- this->getDelHandling<sideTrg>().removeFileWithCallback(targetPathResolved, file.getPairRelativePath(), [] {}, onNotifyCopyStatus); //throw FileError;
+ this->getDelHandling<sideTrg>().removeFileWithCallback(targetPathResolvedOld, file.getPairRelativePath(), [] {}, onNotifyCopyStatus); //throw FileError;
//no (logical) item count update desired - but total byte count may change, e.g. move(copy) deleted file to versioning dir
//file.removeObject<sideTrg>(); -> doesn't make sense for isFollowedSymlink(); "file, sideTrg" evaluated below!
@@ -1282,11 +1283,11 @@ void SynchronizeFolderPair::synchronizeFileInt(FilePair& file, SyncOperation syn
//if fail-safe file copy is active, then the next operation will be a simple "rename"
//=> don't risk reportStatus() throwing GuiAbortProcess() leaving the target deleted rather than updated!
if (!transactionalFileCopy_)
- reportStatus(txtOverwritingFile, AFS::getDisplayPath(targetPathResolved)); //restore status text copy file
+ reportStatus(txtOverwritingFile, AFS::getDisplayPath(targetPathResolvedOld)); //restore status text copy file
};
const AFS::FileAttribAfterCopy newAttr = copyFileWithCallback(file.getAbstractPath<sideSrc>(),
- targetPathResolved,
+ targetPathResolvedNew,
onDeleteTargetFile,
onNotifyCopyStatus); //throw FileError
statReporter.reportDelta(1, 0); //we model "delete + copy" as ONE logical operation
@@ -1314,15 +1315,18 @@ void SynchronizeFolderPair::synchronizeFileInt(FilePair& file, SyncOperation syn
AFS::renameItem(file.getAbstractPath<sideTrg>(), //throw FileError, (ErrorTargetExisting, ErrorDifferentVolume)
AFS::appendRelPath(file.base().getAbstractPath<sideTrg>(), file.getRelativePath<sideSrc>()));
+#if 0 //changing file time without copying content is not justified after CMP_BY_SIZE finds "equal" files! similar issue with CMP_BY_TIME_SIZE and FileTimeTolerance == -1
+ //Bonus: some devices don't support setting (precise) file times anyway, e.g. FAT or MTP!
if (file.getLastWriteTime<sideTrg>() != file.getLastWriteTime<sideSrc>())
//- no need to call sameFileTime() or respect 2 second FAT/FAT32 precision in this comparison
//- do NOT read *current* source file time, but use buffered value which corresponds to time of comparison!
AFS::setModTime(file.getAbstractPath<sideTrg>(), file.getLastWriteTime<sideSrc>()); //throw FileError
+#endif
//-> both sides *should* be completely equal now...
assert(file.getFileSize<sideTrg>() == file.getFileSize<sideSrc>());
file.setSyncedTo<sideTrg>(file.getItemName<sideSrc>(), file.getFileSize<sideSrc>(),
- file.getLastWriteTime<sideSrc>(), //target time set from source
+ file.getLastWriteTime<sideTrg>(),
file.getLastWriteTime<sideSrc>(),
file.getFileId <sideTrg>(),
file.getFileId <sideSrc>(),
@@ -1457,14 +1461,14 @@ void SynchronizeFolderPair::synchronizeLinkInt(SymlinkPair& symlink, SyncOperati
AFS::renameItem(symlink.getAbstractPath<sideTrg>(), //throw FileError, (ErrorTargetExisting, ErrorDifferentVolume)
AFS::appendRelPath(symlink.base().getAbstractPath<sideTrg>(), symlink.getRelativePath<sideSrc>()));
- if (symlink.getLastWriteTime<sideTrg>() != symlink.getLastWriteTime<sideSrc>())
- //- no need to call sameFileTime() or respect 2 second FAT/FAT32 precision in this comparison
- //- do NOT read *current* source file time, but use buffered value which corresponds to time of comparison!
- AFS::setModTimeSymlink(symlink.getAbstractPath<sideTrg>(), symlink.getLastWriteTime<sideSrc>()); //throw FileError
+ //if (symlink.getLastWriteTime<sideTrg>() != symlink.getLastWriteTime<sideSrc>())
+ // //- no need to call sameFileTime() or respect 2 second FAT/FAT32 precision in this comparison
+ // //- do NOT read *current* source file time, but use buffered value which corresponds to time of comparison!
+ // AFS::setModTimeSymlink(symlink.getAbstractPath<sideTrg>(), symlink.getLastWriteTime<sideSrc>()); //throw FileError
//-> both sides *should* be completely equal now...
symlink.setSyncedTo<sideTrg>(symlink.getItemName<sideSrc>(),
- symlink.getLastWriteTime<sideSrc>(), //target time set from source
+ symlink.getLastWriteTime<sideTrg>(), //target time set from source
symlink.getLastWriteTime<sideSrc>());
procCallback_.updateProcessedData(1, 0);
@@ -1714,14 +1718,14 @@ AFS::FileAttribAfterCopy SynchronizeFolderPair::copyFileWithCallback(const Abstr
//###########################################################################################
template <SelectedSide side>
-bool baseFolderDrop(BaseFolderPair& baseFolder, ProcessCallback& callback)
+bool baseFolderDrop(BaseFolderPair& baseFolder, int folderAccessTimeout, ProcessCallback& callback)
{
const AbstractPath folderPath = baseFolder.getAbstractPath<side>();
if (baseFolder.isExisting<side>())
if (Opt<std::wstring> errMsg = tryReportingError([&]
{
- const FolderStatus status = getFolderStatusNonBlocking({ folderPath }, false /*allowUserInteraction*/, callback);
+ const FolderStatus status = getFolderStatusNonBlocking({ folderPath }, folderAccessTimeout, false /*allowUserInteraction*/, callback);
static_assert(IsSameType<decltype(status.failedChecks.begin()->second), FileError>::value, "");
if (!status.failedChecks.empty())
@@ -1804,6 +1808,7 @@ void zen::synchronize(const TimeComp& timeStamp,
bool copyFilePermissions,
bool transactionalFileCopy,
bool runWithBackgroundPriority,
+ int folderAccessTimeout,
const std::vector<FolderPairSyncCfg>& syncConfig,
FolderComparison& folderCmp,
ProcessCallback& callback)
@@ -1961,8 +1966,8 @@ void zen::synchronize(const TimeComp& timeStamp,
//check for network drops after comparison
// - convenience: exit sync right here instead of showing tons of errors during file copy
// - early failure! there's no point in evaluating subsequent warnings
- if (baseFolderDrop<LEFT_SIDE >(*j, callback) ||
- baseFolderDrop<RIGHT_SIDE>(*j, callback))
+ if (baseFolderDrop<LEFT_SIDE >(*j, folderAccessTimeout, callback) ||
+ baseFolderDrop<RIGHT_SIDE>(*j, folderAccessTimeout, callback))
{
jobType[folderIndex] = FolderPairJobType::SKIP;
continue;
@@ -2153,8 +2158,8 @@ void zen::synchronize(const TimeComp& timeStamp,
//------------------------------------------------------------------------------------------
//checking a second time: (a long time may have passed since the intro checks!)
- if (baseFolderDrop<LEFT_SIDE >(*j, callback) ||
- baseFolderDrop<RIGHT_SIDE>(*j, callback))
+ if (baseFolderDrop<LEFT_SIDE >(*j, folderAccessTimeout, callback) ||
+ baseFolderDrop<RIGHT_SIDE>(*j, folderAccessTimeout, callback))
continue;
//create base folders if not yet existing
diff --git a/FreeFileSync/Source/synchronization.h b/FreeFileSync/Source/synchronization.h
index 8a29dda9..795c6370 100644
--- a/FreeFileSync/Source/synchronization.h
+++ b/FreeFileSync/Source/synchronization.h
@@ -92,6 +92,7 @@ void synchronize(const TimeComp& timeStamp,
bool copyFilePermissions,
bool transactionalFileCopy,
bool runWithBackgroundPriority,
+ int folderAccessTimeout,
const std::vector<FolderPairSyncCfg>& syncConfig, //CONTRACT: syncConfig and folderCmp correspond row-wise!
FolderComparison& folderCmp, //
ProcessCallback& callback);
diff --git a/FreeFileSync/Source/ui/batch_status_handler.cpp b/FreeFileSync/Source/ui/batch_status_handler.cpp
index 38d3954e..7288256c 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.cpp
+++ b/FreeFileSync/Source/ui/batch_status_handler.cpp
@@ -122,6 +122,7 @@ void limitLogfileCount(const AbstractPath& logFolderPath, const std::wstring& jo
BatchStatusHandler::BatchStatusHandler(bool showProgress,
const std::wstring& jobName,
+ const Zstring& soundFileSyncComplete,
const TimeComp& timeStamp,
const Zstring& logFolderPathPhrase, //may be empty
int logfilesCountLimit,
@@ -141,7 +142,7 @@ BatchStatusHandler::BatchStatusHandler(bool showProgress,
returnCode_(returnCode),
automaticRetryCount_(automaticRetryCount),
automaticRetryDelay_(automaticRetryDelay),
- progressDlg(createProgressDialog(*this, [this] { this->onProgressDialogTerminate(); }, *this, nullptr, showProgress, jobName, onCompletion, onCompletionHistory)),
+ progressDlg(createProgressDialog(*this, [this] { this->onProgressDialogTerminate(); }, *this, nullptr, showProgress, jobName, soundFileSyncComplete, onCompletion, onCompletionHistory)),
jobName_(jobName),
timeStamp_(timeStamp),
startTime_(std::time(nullptr)),
diff --git a/FreeFileSync/Source/ui/batch_status_handler.h b/FreeFileSync/Source/ui/batch_status_handler.h
index 6909fb61..fe1c9f07 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.h
+++ b/FreeFileSync/Source/ui/batch_status_handler.h
@@ -26,6 +26,7 @@ class BatchStatusHandler : public zen::StatusHandler //throw BatchAbortProcess
public:
BatchStatusHandler(bool showProgress, //defines: -start minimized and -quit immediately when finished
const std::wstring& jobName, //should not be empty for a batch job!
+ const Zstring& soundFileSyncComplete,
const zen::TimeComp& timeStamp,
const Zstring& logFolderPathPhrase,
int logfilesCountLimit, //0: logging inactive; < 0: no limit
diff --git a/FreeFileSync/Source/ui/folder_selector.cpp b/FreeFileSync/Source/ui/folder_selector.cpp
index b919d065..f9123cf7 100644
--- a/FreeFileSync/Source/ui/folder_selector.cpp
+++ b/FreeFileSync/Source/ui/folder_selector.cpp
@@ -167,7 +167,7 @@ void FolderSelector::onFilesDropped(FileDropEvent& event)
if (itemPaths.empty())
return;
- if (canSetDroppedShellPaths(itemPaths))
+ if (shouldSetDroppedPaths(itemPaths))
{
auto fmtShellPath = [](const Zstring& shellItemPath)
{
@@ -200,8 +200,8 @@ void FolderSelector::onFilesDropped(FileDropEvent& event)
wxCommandEvent dummy(EVENT_ON_FOLDER_SELECTED);
ProcessEvent(dummy);
}
- else
- event.Skip(); //let other handlers try -> are there any??
+
+ //event.Skip(); //let other handlers try -> are there any??
}
diff --git a/FreeFileSync/Source/ui/folder_selector.h b/FreeFileSync/Source/ui/folder_selector.h
index 6e7c7791..8a2421e1 100644
--- a/FreeFileSync/Source/ui/folder_selector.h
+++ b/FreeFileSync/Source/ui/folder_selector.h
@@ -47,7 +47,7 @@ public:
void setPath(const Zstring& folderPathPhrase);
private:
- virtual bool canSetDroppedShellPaths(const std::vector<Zstring>& shellItemPaths) { return true; } //return true if drop should be processed
+ virtual bool shouldSetDroppedPaths(const std::vector<Zstring>& shellItemPaths) { return true; } //return true if drop should be processed
void onMouseWheel (wxMouseEvent& event);
void onFilesDropped (FileDropEvent& event);
diff --git a/FreeFileSync/Source/ui/gui_generated.cpp b/FreeFileSync/Source/ui/gui_generated.cpp
index d230f43c..a220a6d6 100644
--- a/FreeFileSync/Source/ui/gui_generated.cpp
+++ b/FreeFileSync/Source/ui/gui_generated.cpp
@@ -19,1029 +19,1029 @@
MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( 640,400 ), wxDefaultSize );
-
- m_menubar1 = new wxMenuBar( 0 );
- m_menuFile = new wxMenu();
- m_menuItemNew = new wxMenuItem( m_menuFile, wxID_NEW, wxString( _("&New") ) + wxT('\t') + wxT("Ctrl+N"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemNew );
-
- m_menuItemLoad = new wxMenuItem( m_menuFile, wxID_OPEN, wxString( _("&Open...") ) + wxT('\t') + wxT("Ctrl+O"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemLoad );
-
- m_menuFile->AppendSeparator();
-
- m_menuItemSave = new wxMenuItem( m_menuFile, wxID_SAVE, wxString( _("&Save") ) + wxT('\t') + wxT("Ctrl+S"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSave );
-
- m_menuItemSaveAs = new wxMenuItem( m_menuFile, wxID_SAVEAS, wxString( _("Save &as...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSaveAs );
-
- m_menuItemSaveAsBatch = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Save as &batch job...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSaveAsBatch );
-
- m_menuFile->AppendSeparator();
-
- wxMenuItem* m_menuItem4;
- m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItem4 );
-
- m_menubar1->Append( m_menuFile, _("&File") );
-
- m_menu4 = new wxMenu();
- m_menuItemCompare = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &comparison") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemCompare );
-
- m_menu4->AppendSeparator();
-
- m_menuItemCompSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("C&omparison settings") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemCompSettings );
-
- m_menuItemFilter = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("&Filter settings") ) + wxT('\t') + wxT("F7"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemFilter );
-
- m_menuItemSyncSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("S&ynchronization settings") ) + wxT('\t') + wxT("F8"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemSyncSettings );
-
- m_menu4->AppendSeparator();
-
- m_menuItemSynchronize = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &synchronization") ) + wxT('\t') + wxT("F9"), wxEmptyString, wxITEM_NORMAL );
- m_menu4->Append( m_menuItemSynchronize );
-
- m_menubar1->Append( m_menu4, _("&Actions") );
-
- m_menuTools = new wxMenu();
- m_menuItemOptions = new wxMenuItem( m_menuTools, wxID_PREFERENCES, wxString( _("&Preferences") ) + wxT('\t') + wxT("Ctrl+,"), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItemOptions );
-
- m_menuLanguages = new wxMenu();
- wxMenuItem* m_menuLanguagesItem = new wxMenuItem( m_menuTools, wxID_ANY, _("&Language"), wxEmptyString, wxITEM_NORMAL, m_menuLanguages );
- m_menuTools->Append( m_menuLanguagesItem );
-
- m_menuTools->AppendSeparator();
-
- wxMenuItem* m_menuItem15;
- m_menuItem15 = new wxMenuItem( m_menuTools, wxID_FIND, wxString( _("&Find...") ) + wxT('\t') + wxT("Ctrl+F"), wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItem15 );
-
- wxMenuItem* m_menuItem51;
- m_menuItem51 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Reset layout") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItem51 );
-
- wxMenuItem* m_menuItem5;
- m_menuItem5 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Export file list...") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuTools->Append( m_menuItem5 );
-
- m_menubar1->Append( m_menuTools, _("&Tools") );
-
- m_menuHelp = new wxMenu();
- m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemHelp );
-
- m_menuCheckVersion = new wxMenu();
- wxMenuItem* m_menuCheckVersionItem = new wxMenuItem( m_menuHelp, wxID_ANY, _("&Check for new version"), wxEmptyString, wxITEM_NORMAL, m_menuCheckVersion );
- m_menuItemCheckVersionNow = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("&Check now") ) , wxEmptyString, wxITEM_NORMAL );
- m_menuCheckVersion->Append( m_menuItemCheckVersionNow );
-
- m_menuItemCheckVersionAuto = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK );
- m_menuCheckVersion->Append( m_menuItemCheckVersionAuto );
- m_menuItemCheckVersionAuto->Check( true );
-
- m_menuHelp->Append( m_menuCheckVersionItem );
-
- m_menuHelp->AppendSeparator();
-
- m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemAbout );
-
- m_menubar1->Append( m_menuHelp, _("&Help") );
-
- this->SetMenuBar( m_menubar1 );
-
- bSizerPanelHolder = new wxBoxSizer( wxVERTICAL );
-
- m_panelTopButtons = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1791;
- bSizer1791 = new wxBoxSizer( wxVERTICAL );
-
- bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonCancel = new zen::BitmapTextButton( m_panelTopButtons, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonCancel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_buttonCancel->Enable( false );
- m_buttonCancel->Hide();
-
- bSizerTopButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_buttonCompare = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Compare"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonCompare->SetDefault();
- m_buttonCompare->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_buttonCompare->SetToolTip( _("dummy") );
-
- bSizerTopButtons->Add( m_buttonCompare, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer198;
- bSizer198 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
- m_bpButtonCmpConfig->SetToolTip( _("dummy") );
-
- bSizer198->Add( m_bpButtonCmpConfig, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_bpButtonCmpContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 18,-1 ), wxBU_AUTODRAW );
- m_bpButtonCmpContext->SetToolTip( _("dummy") );
-
- bSizer198->Add( m_bpButtonCmpContext, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( bSizer198, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer199;
- bSizer199 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonFilter = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 60,-1 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
- bSizer199->Add( m_bpButtonFilter, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_bpButtonFilterContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 18,-1 ), wxBU_AUTODRAW );
- m_bpButtonFilterContext->SetToolTip( _("dummy") );
-
- bSizer199->Add( m_bpButtonFilterContext, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( bSizer199, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer200;
- bSizer200 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
- m_bpButtonSyncConfig->SetToolTip( _("dummy") );
-
- bSizer200->Add( m_bpButtonSyncConfig, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_bpButtonSyncContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 18,-1 ), wxBU_AUTODRAW );
- m_bpButtonSyncContext->SetToolTip( _("dummy") );
-
- bSizer200->Add( m_bpButtonSyncContext, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( bSizer200, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
-
- m_buttonSync = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_buttonSync->SetToolTip( _("dummy") );
-
- bSizerTopButtons->Add( m_buttonSync, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer1791->Add( bSizerTopButtons, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panelTopButtons->SetSizer( bSizer1791 );
- m_panelTopButtons->Layout();
- bSizer1791->Fit( m_panelTopButtons );
- bSizerPanelHolder->Add( m_panelTopButtons, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_panelDirectoryPairs = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1601;
- bSizer1601 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer91;
- bSizer91 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelTopLeft = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelTopLeft->SetMinSize( wxSize( 1,-1 ) );
-
- wxFlexGridSizer* fgSizer8;
- fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer8->AddGrowableCol( 1 );
- fgSizer8->SetFlexibleDirection( wxBOTH );
- fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
-
-
- fgSizer8->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextResolvedPathL = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextResolvedPathL->Wrap( -1 );
- fgSizer8->Add( m_staticTextResolvedPathL, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
-
- wxBoxSizer* bSizer159;
- bSizer159 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
-
- bSizer159->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer159->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- fgSizer8->Add( bSizer159, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
-
- m_folderPathLeft = new FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer182->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
-
- bSizer182->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
-
- bSizer182->Add( m_bpButtonSelectAltFolderLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- fgSizer8->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelTopLeft->SetSizer( fgSizer8 );
- m_panelTopLeft->Layout();
- fgSizer8->Fit( m_panelTopLeft );
- bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_panelTopCenter = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1771;
- bSizer1771 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bpButtonSwapSides = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
- m_bpButtonSwapSides->SetToolTip( _("Swap sides") );
-
- bSizer1771->Add( m_bpButtonSwapSides, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAltCompCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer160->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer1771->Add( bSizer160, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panelTopCenter->SetSizer( bSizer1771 );
- m_panelTopCenter->Layout();
- bSizer1771->Fit( m_panelTopCenter );
- bSizer91->Add( m_panelTopCenter, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_panelTopRight = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelTopRight->SetMinSize( wxSize( 1,-1 ) );
-
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextResolvedPathR = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextResolvedPathR->Wrap( -1 );
- bSizer183->Add( m_staticTextResolvedPathR, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
-
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxHORIZONTAL );
-
- m_folderPathRight = new FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer179->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
-
- bSizer179->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelTopRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
-
- bSizer179->Add( m_bpButtonSelectAltFolderRight, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer183->Add( bSizer179, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelTopRight->SetSizer( bSizer183 );
- m_panelTopRight->Layout();
- bSizer183->Fit( m_panelTopRight );
- bSizer91->Add( m_panelTopRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
-
- bSizer1601->Add( bSizer91, 0, wxEXPAND, 5 );
-
- m_scrolledWindowFolderPairs = new wxScrolledWindow( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxHSCROLL|wxVSCROLL );
- m_scrolledWindowFolderPairs->SetScrollRate( 10, 10 );
- m_scrolledWindowFolderPairs->SetMinSize( wxSize( -1,0 ) );
-
- bSizerAddFolderPairs = new wxBoxSizer( wxVERTICAL );
-
-
- m_scrolledWindowFolderPairs->SetSizer( bSizerAddFolderPairs );
- m_scrolledWindowFolderPairs->Layout();
- bSizerAddFolderPairs->Fit( m_scrolledWindowFolderPairs );
- bSizer1601->Add( m_scrolledWindowFolderPairs, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelDirectoryPairs->SetSizer( bSizer1601 );
- m_panelDirectoryPairs->Layout();
- bSizer1601->Fit( m_panelDirectoryPairs );
- bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_gridNavi = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridNavi->SetScrollRate( 5, 5 );
- bSizerPanelHolder->Add( m_gridNavi, 1, wxEXPAND, 5 );
-
- m_panelCenter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1711;
- bSizer1711 = new wxBoxSizer( wxVERTICAL );
-
- m_splitterMain = new zen::TripleSplitter( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1781;
- bSizer1781 = new wxBoxSizer( wxHORIZONTAL );
-
- m_gridMainL = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMainL->SetScrollRate( 5, 5 );
- bSizer1781->Add( m_gridMainL, 1, wxEXPAND, 5 );
-
- m_gridMainC = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMainC->SetScrollRate( 5, 5 );
- bSizer1781->Add( m_gridMainC, 0, wxEXPAND, 5 );
-
- m_gridMainR = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMainR->SetScrollRate( 5, 5 );
- bSizer1781->Add( m_gridMainR, 1, wxEXPAND, 5 );
-
-
- m_splitterMain->SetSizer( bSizer1781 );
- m_splitterMain->Layout();
- bSizer1781->Fit( m_splitterMain );
- bSizer1711->Add( m_splitterMain, 1, wxEXPAND, 5 );
-
- m_panelStatusBar = new wxPanel( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer451;
- bSizer451 = new wxBoxSizer( wxHORIZONTAL );
-
- bSizer451->SetMinSize( wxSize( -1,22 ) );
- bSizerFileStatus = new wxBoxSizer( wxHORIZONTAL );
-
- bSizerStatusLeft = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer53;
- bSizer53 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusLeftDirectories = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSmallDirectoryLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusLeftDirectories->Add( m_bitmapSmallDirectoryLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeftDirectories->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusLeftDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusLeftDirs->Wrap( -1 );
- bSizerStatusLeftDirectories->Add( m_staticTextStatusLeftDirs, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer53->Add( bSizerStatusLeftDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusLeftFiles = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizerStatusLeftFiles->Add( 10, 0, 0, 0, 5 );
-
- m_bitmapSmallFileLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusLeftFiles->Add( m_bitmapSmallFileLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeftFiles->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusLeftFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusLeftFiles->Wrap( -1 );
- bSizerStatusLeftFiles->Add( m_staticTextStatusLeftFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeftFiles->Add( 4, 0, 0, 0, 5 );
-
- m_staticTextStatusLeftBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusLeftBytes->Wrap( -1 );
- bSizerStatusLeftFiles->Add( m_staticTextStatusLeftBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer53->Add( bSizerStatusLeftFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusLeft->Add( bSizer53, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerStatusLeft->Add( m_staticline9, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 2 );
-
-
- bSizerFileStatus->Add( bSizerStatusLeft, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextStatusCenter = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusCenter->Wrap( -1 );
- bSizerFileStatus->Add( m_staticTextStatusCenter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusRight = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizerStatusRight->Add( m_staticline10, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP, 2 );
-
- wxBoxSizer* bSizer52;
- bSizer52 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusRightDirectories = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSmallDirectoryRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusRightDirectories->Add( m_bitmapSmallDirectoryRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRightDirectories->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusRightDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusRightDirs->Wrap( -1 );
- bSizerStatusRightDirectories->Add( m_staticTextStatusRightDirs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer52->Add( bSizerStatusRightDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- bSizerStatusRightFiles = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizerStatusRightFiles->Add( 10, 0, 0, 0, 5 );
-
- m_bitmapSmallFileRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStatusRightFiles->Add( m_bitmapSmallFileRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRightFiles->Add( 2, 0, 0, 0, 5 );
-
- m_staticTextStatusRightFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusRightFiles->Wrap( -1 );
- bSizerStatusRightFiles->Add( m_staticTextStatusRightFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRightFiles->Add( 4, 0, 0, 0, 5 );
-
- m_staticTextStatusRightBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatusRightBytes->Wrap( -1 );
- bSizerStatusRightFiles->Add( m_staticTextStatusRightBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer52->Add( bSizerStatusRightFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatusRight->Add( bSizer52, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerFileStatus->Add( bSizerStatusRight, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer451->Add( bSizerFileStatus, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_staticTextFullStatus = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFullStatus->Wrap( -1 );
- m_staticTextFullStatus->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer451->Add( m_staticTextFullStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- m_panelStatusBar->SetSizer( bSizer451 );
- m_panelStatusBar->Layout();
- bSizer451->Fit( m_panelStatusBar );
- bSizer1711->Add( m_panelStatusBar, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- m_panelCenter->SetSizer( bSizer1711 );
- m_panelCenter->Layout();
- bSizer1711->Fit( m_panelCenter );
- bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
-
- m_panelSearch = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer1713;
- bSizer1713 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonHideSearch = new wxBitmapButton( m_panelSearch, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonHideSearch->SetToolTip( _("Close search bar") );
-
- bSizer1713->Add( m_bpButtonHideSearch, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_staticText101 = new wxStaticText( m_panelSearch, wxID_ANY, _("Find:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer1713->Add( m_staticText101, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_textCtrlSearchTxt = new wxTextCtrl( m_panelSearch, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 220,-1 ), 0|wxWANTS_CHARS );
- m_textCtrlSearchTxt->SetMaxLength( 0 );
- bSizer1713->Add( m_textCtrlSearchTxt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_checkBoxMatchCase = new wxCheckBox( m_panelSearch, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer1713->Add( m_checkBoxMatchCase, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- m_panelSearch->SetSizer( bSizer1713 );
- m_panelSearch->Layout();
- bSizer1713->Fit( m_panelSearch );
- bSizerPanelHolder->Add( m_panelSearch, 0, 0, 5 );
-
- m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer151;
- bSizer151 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer17611;
- bSizer17611 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonNew = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonNew->SetToolTip( _("dummy") );
-
- bSizer17611->Add( m_bpButtonNew, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticText951 = new wxStaticText( m_panelConfig, wxID_ANY, _("New"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText951->Wrap( -1 );
- bSizer17611->Add( m_staticText951, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer17611, 0, 0, 5 );
-
- wxBoxSizer* bSizer1761;
- bSizer1761 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonOpen = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonOpen->SetToolTip( _("dummy") );
-
- bSizer1761->Add( m_bpButtonOpen, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticText95 = new wxStaticText( m_panelConfig, wxID_ANY, _("Open..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText95->Wrap( -1 );
- bSizer1761->Add( m_staticText95, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer1761, 0, 0, 5 );
-
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonSave->SetToolTip( _("dummy") );
-
- bSizer175->Add( m_bpButtonSave, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticText961 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText961->Wrap( -1 );
- bSizer175->Add( m_staticText961, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer175, 0, 0, 5 );
-
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer1772;
- bSizer1772 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonSaveAs = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonSaveAs->SetToolTip( _("dummy") );
-
- bSizer1772->Add( m_bpButtonSaveAs, 1, 0, 5 );
-
- m_bpButtonSaveAsBatch = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- m_bpButtonSaveAsBatch->SetToolTip( _("dummy") );
-
- bSizer1772->Add( m_bpButtonSaveAsBatch, 1, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer174->Add( bSizer1772, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticText97 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save as..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText97->Wrap( -1 );
- bSizer174->Add( m_staticText97, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
-
-
- bSizer151->Add( bSizer174, 0, 0, 5 );
-
-
- bSizerConfig->Add( bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_listBoxHistory = new wxListBox( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_EXTENDED|wxLB_NEEDED_SB );
- m_listBoxHistory->SetMinSize( wxSize( -1,40 ) );
-
- bSizerConfig->Add( m_listBoxHistory, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelConfig->SetSizer( bSizerConfig );
- m_panelConfig->Layout();
- bSizerConfig->Fit( m_panelConfig );
- bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
-
- m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextViewType = new wxStaticText( m_panelViewFilter, wxID_ANY, _("View type:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextViewType->Wrap( -1 );
- bSizerViewFilter->Add( m_staticTextViewType, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonViewTypeSyncAction = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 82,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonViewTypeSyncAction, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
-
- m_bpButtonShowExcluded = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowExcluded, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextSelectView = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Select view:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSelectView->Wrap( -1 );
- bSizerViewFilter->Add( m_staticTextSelectView, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDeleteLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowUpdateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowCreateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowLeftOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowLeftNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowEqual = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDoNothing = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDoNothing, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDifferent = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowRightNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowRightOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowCreateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowUpdateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowDeleteRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonShowConflict = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
- bSizerViewFilter->Add( m_bpButtonShowConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticText96 = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- bSizerViewFilter->Add( m_staticText96, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_panelStatistics = new wxPanel( m_panelViewFilter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer1801 = new wxBoxSizer( wxVERTICAL );
-
- bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer173->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer173->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteLeft->Wrap( -1 );
- m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer173->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer173, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- bSizer172->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer172->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer172->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateLeft->Wrap( -1 );
- m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerStatistics->Add( bSizer172, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer1712;
- bSizer1712 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer1712->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer1712->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer1712->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateLeft->Wrap( -1 );
- m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer1712->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerStatistics->Add( bSizer1712, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- bSizerData = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapData->SetToolTip( _("Total bytes to copy") );
-
- bSizerData->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizerData->Add( 5, 2, 0, 0, 5 );
-
-
- bSizerData->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextData->Wrap( -1 );
- m_staticTextData->SetToolTip( _("Total bytes to copy") );
-
- bSizerData->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizerData, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer178->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer178->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer178->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateRight->Wrap( -1 );
- m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- bSizer178->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- bSizer177->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer177->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer177->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateRight->Wrap( -1 );
- m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer177, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizerStatistics->Add( 5, 5, 0, 0, 5 );
-
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer176->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer176->Add( 5, 2, 0, 0, 5 );
-
-
- bSizer176->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteRight->Wrap( -1 );
- m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- bSizer176->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStatistics->Add( bSizer176, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer1801->Add( bSizerStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4 );
-
-
- m_panelStatistics->SetSizer( bSizer1801 );
- m_panelStatistics->Layout();
- bSizer1801->Fit( m_panelStatistics );
- bSizerViewFilter->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- m_panelViewFilter->SetSizer( bSizerViewFilter );
- m_panelViewFilter->Layout();
- bSizerViewFilter->Fit( m_panelViewFilter );
- bSizerPanelHolder->Add( m_panelViewFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- this->SetSizer( bSizerPanelHolder );
- this->Layout();
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::OnClose ) );
- this->Connect( m_menuItemNew->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ) );
- this->Connect( m_menuItemLoad->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ) );
- this->Connect( m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ) );
- this->Connect( m_menuItemSaveAs->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ) );
- this->Connect( m_menuItemSaveAsBatch->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ) );
- this->Connect( m_menuItem4->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
- this->Connect( m_menuItemCompare->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
- this->Connect( m_menuItemCompSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ) );
- this->Connect( m_menuItemFilter->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ) );
- this->Connect( m_menuItemSyncSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ) );
- this->Connect( m_menuItemSynchronize->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
- this->Connect( m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuOptions ) );
- this->Connect( m_menuItem15->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuFindItem ) );
- this->Connect( m_menuItem51->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuResetLayout ) );
- this->Connect( m_menuItem5->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
- this->Connect( m_menuItemHelp->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
- this->Connect( m_menuItemCheckVersionNow->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
- this->Connect( m_menuItemCheckVersionAuto->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersionAutomatically ) );
- this->Connect( m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuAbout ) );
- m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompare ), NULL, this );
- m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ), NULL, this );
- m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
- m_bpButtonCmpContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
- m_bpButtonCmpContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
- m_bpButtonFilter->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
- m_bpButtonFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
- m_bpButtonFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
- m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
- m_bpButtonSyncConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
- m_bpButtonSyncContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
- m_bpButtonSyncContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
- m_buttonSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
- m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairAdd ), NULL, this );
- m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairRemove ), NULL, this );
- m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
- m_bpButtonAltCompCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalCompCfg ), NULL, this );
- m_bpButtonLocalFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalFilterCfg ), NULL, this );
- m_bpButtonAltSyncCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalSyncCfg ), NULL, this );
- m_bpButtonHideSearch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnHideSearchPanel ), NULL, this );
- m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( MainDialogGenerated::OnSearchGridEnter ), NULL, this );
- m_bpButtonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ), NULL, this );
- m_bpButtonOpen->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
- m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ), NULL, this );
- m_bpButtonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ), NULL, this );
- m_bpButtonSaveAsBatch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistoryDoubleClick ), NULL, this );
- m_listBoxHistory->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCfgHistoryRightClick ), NULL, this );
- m_bpButtonViewTypeSyncAction->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewType ), NULL, this );
- m_bpButtonShowExcluded->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowExcluded->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDeleteLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowUpdateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowUpdateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowCreateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowLeftOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowLeftNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowEqual->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDoNothing->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDoNothing->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDifferent->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowRightNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowRightOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowCreateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowUpdateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowUpdateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowDeleteRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
- m_bpButtonShowConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
- m_bpButtonShowConflict->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ this->SetSizeHints( wxSize( 640,400 ), wxDefaultSize );
+
+ m_menubar1 = new wxMenuBar( 0 );
+ m_menuFile = new wxMenu();
+ m_menuItemNew = new wxMenuItem( m_menuFile, wxID_NEW, wxString( _("&New") ) + wxT('\t') + wxT("Ctrl+N"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemNew );
+
+ m_menuItemLoad = new wxMenuItem( m_menuFile, wxID_OPEN, wxString( _("&Open...") ) + wxT('\t') + wxT("Ctrl+O"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemLoad );
+
+ m_menuFile->AppendSeparator();
+
+ m_menuItemSave = new wxMenuItem( m_menuFile, wxID_SAVE, wxString( _("&Save") ) + wxT('\t') + wxT("Ctrl+S"), wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSave );
+
+ m_menuItemSaveAs = new wxMenuItem( m_menuFile, wxID_SAVEAS, wxString( _("Save &as...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSaveAs );
+
+ m_menuItemSaveAsBatch = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Save as &batch job...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItemSaveAsBatch );
+
+ m_menuFile->AppendSeparator();
+
+ wxMenuItem* m_menuItem4;
+ m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuFile->Append( m_menuItem4 );
+
+ m_menubar1->Append( m_menuFile, _("&File") );
+
+ m_menu4 = new wxMenu();
+ m_menuItemCompare = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &comparison") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemCompare );
+
+ m_menu4->AppendSeparator();
+
+ m_menuItemCompSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("C&omparison settings") ) + wxT('\t') + wxT("F6"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemCompSettings );
+
+ m_menuItemFilter = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("&Filter settings") ) + wxT('\t') + wxT("F7"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemFilter );
+
+ m_menuItemSyncSettings = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("S&ynchronization settings") ) + wxT('\t') + wxT("F8"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemSyncSettings );
+
+ m_menu4->AppendSeparator();
+
+ m_menuItemSynchronize = new wxMenuItem( m_menu4, wxID_ANY, wxString( _("Start &synchronization") ) + wxT('\t') + wxT("F9"), wxEmptyString, wxITEM_NORMAL );
+ m_menu4->Append( m_menuItemSynchronize );
+
+ m_menubar1->Append( m_menu4, _("&Actions") );
+
+ m_menuTools = new wxMenu();
+ m_menuItemOptions = new wxMenuItem( m_menuTools, wxID_PREFERENCES, wxString( _("&Preferences") ) + wxT('\t') + wxT("Ctrl+,"), wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItemOptions );
+
+ m_menuLanguages = new wxMenu();
+ wxMenuItem* m_menuLanguagesItem = new wxMenuItem( m_menuTools, wxID_ANY, _("&Language"), wxEmptyString, wxITEM_NORMAL, m_menuLanguages );
+ m_menuTools->Append( m_menuLanguagesItem );
+
+ m_menuTools->AppendSeparator();
+
+ wxMenuItem* m_menuItem15;
+ m_menuItem15 = new wxMenuItem( m_menuTools, wxID_FIND, wxString( _("&Find...") ) + wxT('\t') + wxT("Ctrl+F"), wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItem15 );
+
+ wxMenuItem* m_menuItem51;
+ m_menuItem51 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Reset layout") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItem51 );
+
+ wxMenuItem* m_menuItem5;
+ m_menuItem5 = new wxMenuItem( m_menuTools, wxID_ANY, wxString( _("&Export file list...") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuTools->Append( m_menuItem5 );
+
+ m_menubar1->Append( m_menuTools, _("&Tools") );
+
+ m_menuHelp = new wxMenu();
+ m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemHelp );
+
+ m_menuCheckVersion = new wxMenu();
+ wxMenuItem* m_menuCheckVersionItem = new wxMenuItem( m_menuHelp, wxID_ANY, _("&Check for new version"), wxEmptyString, wxITEM_NORMAL, m_menuCheckVersion );
+ m_menuItemCheckVersionNow = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("&Check now") ) , wxEmptyString, wxITEM_NORMAL );
+ m_menuCheckVersion->Append( m_menuItemCheckVersionNow );
+
+ m_menuItemCheckVersionAuto = new wxMenuItem( m_menuCheckVersion, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK );
+ m_menuCheckVersion->Append( m_menuItemCheckVersionAuto );
+ m_menuItemCheckVersionAuto->Check( true );
+
+ m_menuHelp->Append( m_menuCheckVersionItem );
+
+ m_menuHelp->AppendSeparator();
+
+ m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL );
+ m_menuHelp->Append( m_menuItemAbout );
+
+ m_menubar1->Append( m_menuHelp, _("&Help") );
+
+ this->SetMenuBar( m_menubar1 );
+
+ bSizerPanelHolder = new wxBoxSizer( wxVERTICAL );
+
+ m_panelTopButtons = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1791;
+ bSizer1791 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerTopButtons = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonCancel = new zen::BitmapTextButton( m_panelTopButtons, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonCancel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_buttonCancel->Enable( false );
+ m_buttonCancel->Hide();
+
+ bSizerTopButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_buttonCompare = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Compare"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonCompare->SetDefault();
+ m_buttonCompare->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_buttonCompare->SetToolTip( _("dummy") );
+
+ bSizerTopButtons->Add( m_buttonCompare, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer198;
+ bSizer198 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonCmpConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
+ m_bpButtonCmpConfig->SetToolTip( _("dummy") );
+
+ bSizer198->Add( m_bpButtonCmpConfig, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_bpButtonCmpContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 18,-1 ), wxBU_AUTODRAW );
+ m_bpButtonCmpContext->SetToolTip( _("dummy") );
+
+ bSizer198->Add( m_bpButtonCmpContext, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( bSizer198, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer199;
+ bSizer199 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonFilter = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 60,-1 ), wxBU_AUTODRAW|wxFULL_REPAINT_ON_RESIZE );
+ bSizer199->Add( m_bpButtonFilter, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_bpButtonFilterContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 18,-1 ), wxBU_AUTODRAW );
+ m_bpButtonFilterContext->SetToolTip( _("dummy") );
+
+ bSizer199->Add( m_bpButtonFilterContext, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( bSizer199, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerTopButtons->Add( 5, 5, 0, 0, 5 );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer200;
+ bSizer200 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonSyncConfig = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSyncConfig->SetToolTip( _("dummy") );
+
+ bSizer200->Add( m_bpButtonSyncConfig, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_bpButtonSyncContext = new wxBitmapButton( m_panelTopButtons, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 18,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSyncContext->SetToolTip( _("dummy") );
+
+ bSizer200->Add( m_bpButtonSyncContext, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( bSizer200, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 4, 0, 0, 0, 5 );
+
+ m_buttonSync = new zen::BitmapTextButton( m_panelTopButtons, wxID_ANY, _("Synchronize"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_buttonSync->SetToolTip( _("dummy") );
+
+ bSizerTopButtons->Add( m_buttonSync, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerTopButtons->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1791->Add( bSizerTopButtons, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_panelTopButtons->SetSizer( bSizer1791 );
+ m_panelTopButtons->Layout();
+ bSizer1791->Fit( m_panelTopButtons );
+ bSizerPanelHolder->Add( m_panelTopButtons, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_panelDirectoryPairs = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1601;
+ bSizer1601 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer91;
+ bSizer91 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelTopLeft = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelTopLeft->SetMinSize( wxSize( 1,-1 ) );
+
+ wxFlexGridSizer* fgSizer8;
+ fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer8->AddGrowableCol( 1 );
+ fgSizer8->SetFlexibleDirection( wxBOTH );
+ fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
+
+
+ fgSizer8->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextResolvedPathL = new wxStaticText( m_panelTopLeft, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextResolvedPathL->Wrap( -1 );
+ fgSizer8->Add( m_staticTextResolvedPathL, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+
+ wxBoxSizer* bSizer159;
+ bSizer159 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAddPair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonAddPair->SetToolTip( _("Add folder pair") );
+
+ bSizer159->Add( m_bpButtonAddPair, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer159->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ fgSizer8->Add( bSizer159, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_folderPathLeft = new FolderHistoryBox( m_panelTopLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer182->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderLeft = new wxButton( m_panelTopLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
+
+ bSizer182->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelTopLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
+
+ bSizer182->Add( m_bpButtonSelectAltFolderLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ fgSizer8->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelTopLeft->SetSizer( fgSizer8 );
+ m_panelTopLeft->Layout();
+ fgSizer8->Fit( m_panelTopLeft );
+ bSizer91->Add( m_panelTopLeft, 1, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_panelTopCenter = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1771;
+ bSizer1771 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bpButtonSwapSides = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSwapSides->SetToolTip( _("Swap sides") );
+
+ bSizer1771->Add( m_bpButtonSwapSides, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAltCompCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( m_panelTopCenter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer160->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer1771->Add( bSizer160, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer1771->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panelTopCenter->SetSizer( bSizer1771 );
+ m_panelTopCenter->Layout();
+ bSizer1771->Fit( m_panelTopCenter );
+ bSizer91->Add( m_panelTopCenter, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_panelTopRight = new wxPanel( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelTopRight->SetMinSize( wxSize( 1,-1 ) );
+
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextResolvedPathR = new wxStaticText( m_panelTopRight, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextResolvedPathR->Wrap( -1 );
+ bSizer183->Add( m_staticTextResolvedPathR, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_folderPathRight = new FolderHistoryBox( m_panelTopRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer179->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderRight = new wxButton( m_panelTopRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
+
+ bSizer179->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelTopRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
+
+ bSizer179->Add( m_bpButtonSelectAltFolderRight, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer183->Add( bSizer179, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelTopRight->SetSizer( bSizer183 );
+ m_panelTopRight->Layout();
+ bSizer183->Fit( m_panelTopRight );
+ bSizer91->Add( m_panelTopRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+
+ bSizer1601->Add( bSizer91, 0, wxEXPAND, 5 );
+
+ m_scrolledWindowFolderPairs = new wxScrolledWindow( m_panelDirectoryPairs, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxHSCROLL|wxVSCROLL );
+ m_scrolledWindowFolderPairs->SetScrollRate( 10, 10 );
+ m_scrolledWindowFolderPairs->SetMinSize( wxSize( -1,0 ) );
+
+ bSizerAddFolderPairs = new wxBoxSizer( wxVERTICAL );
+
+
+ m_scrolledWindowFolderPairs->SetSizer( bSizerAddFolderPairs );
+ m_scrolledWindowFolderPairs->Layout();
+ bSizerAddFolderPairs->Fit( m_scrolledWindowFolderPairs );
+ bSizer1601->Add( m_scrolledWindowFolderPairs, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelDirectoryPairs->SetSizer( bSizer1601 );
+ m_panelDirectoryPairs->Layout();
+ bSizer1601->Fit( m_panelDirectoryPairs );
+ bSizerPanelHolder->Add( m_panelDirectoryPairs, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_gridNavi = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridNavi->SetScrollRate( 5, 5 );
+ bSizerPanelHolder->Add( m_gridNavi, 1, wxEXPAND, 5 );
+
+ m_panelCenter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1711;
+ bSizer1711 = new wxBoxSizer( wxVERTICAL );
+
+ m_splitterMain = new zen::TripleSplitter( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1781;
+ bSizer1781 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_gridMainL = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMainL->SetScrollRate( 5, 5 );
+ bSizer1781->Add( m_gridMainL, 1, wxEXPAND, 5 );
+
+ m_gridMainC = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMainC->SetScrollRate( 5, 5 );
+ bSizer1781->Add( m_gridMainC, 0, wxEXPAND, 5 );
+
+ m_gridMainR = new zen::Grid( m_splitterMain, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMainR->SetScrollRate( 5, 5 );
+ bSizer1781->Add( m_gridMainR, 1, wxEXPAND, 5 );
+
+
+ m_splitterMain->SetSizer( bSizer1781 );
+ m_splitterMain->Layout();
+ bSizer1781->Fit( m_splitterMain );
+ bSizer1711->Add( m_splitterMain, 1, wxEXPAND, 5 );
+
+ m_panelStatusBar = new wxPanel( m_panelCenter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSTATIC_BORDER|wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer451;
+ bSizer451 = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizer451->SetMinSize( wxSize( -1,22 ) );
+ bSizerFileStatus = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizerStatusLeft = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer53;
+ bSizer53 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusLeftDirectories = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSmallDirectoryLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusLeftDirectories->Add( m_bitmapSmallDirectoryLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeftDirectories->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusLeftDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusLeftDirs->Wrap( -1 );
+ bSizerStatusLeftDirectories->Add( m_staticTextStatusLeftDirs, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer53->Add( bSizerStatusLeftDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusLeftFiles = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizerStatusLeftFiles->Add( 10, 0, 0, 0, 5 );
+
+ m_bitmapSmallFileLeft = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusLeftFiles->Add( m_bitmapSmallFileLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeftFiles->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusLeftFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusLeftFiles->Wrap( -1 );
+ bSizerStatusLeftFiles->Add( m_staticTextStatusLeftFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeftFiles->Add( 4, 0, 0, 0, 5 );
+
+ m_staticTextStatusLeftBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusLeftBytes->Wrap( -1 );
+ bSizerStatusLeftFiles->Add( m_staticTextStatusLeftBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer53->Add( bSizerStatusLeftFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer53->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusLeft->Add( bSizer53, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticline9 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerStatusLeft->Add( m_staticline9, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP, 2 );
+
+
+ bSizerFileStatus->Add( bSizerStatusLeft, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextStatusCenter = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusCenter->Wrap( -1 );
+ bSizerFileStatus->Add( m_staticTextStatusCenter, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerFileStatus->Add( 26, 0, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusRight = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticline10 = new wxStaticLine( m_panelStatusBar, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizerStatusRight->Add( m_staticline10, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP, 2 );
+
+ wxBoxSizer* bSizer52;
+ bSizer52 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusRightDirectories = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSmallDirectoryRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusRightDirectories->Add( m_bitmapSmallDirectoryRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRightDirectories->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusRightDirs = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusRightDirs->Wrap( -1 );
+ bSizerStatusRightDirectories->Add( m_staticTextStatusRightDirs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer52->Add( bSizerStatusRightDirectories, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ bSizerStatusRightFiles = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizerStatusRightFiles->Add( 10, 0, 0, 0, 5 );
+
+ m_bitmapSmallFileRight = new wxStaticBitmap( m_panelStatusBar, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStatusRightFiles->Add( m_bitmapSmallFileRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRightFiles->Add( 2, 0, 0, 0, 5 );
+
+ m_staticTextStatusRightFiles = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusRightFiles->Wrap( -1 );
+ bSizerStatusRightFiles->Add( m_staticTextStatusRightFiles, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRightFiles->Add( 4, 0, 0, 0, 5 );
+
+ m_staticTextStatusRightBytes = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatusRightBytes->Wrap( -1 );
+ bSizerStatusRightFiles->Add( m_staticTextStatusRightBytes, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer52->Add( bSizerStatusRightFiles, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer52->Add( 0, 0, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatusRight->Add( bSizer52, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerFileStatus->Add( bSizerStatusRight, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer451->Add( bSizerFileStatus, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_staticTextFullStatus = new wxStaticText( m_panelStatusBar, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFullStatus->Wrap( -1 );
+ m_staticTextFullStatus->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer451->Add( m_staticTextFullStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ m_panelStatusBar->SetSizer( bSizer451 );
+ m_panelStatusBar->Layout();
+ bSizer451->Fit( m_panelStatusBar );
+ bSizer1711->Add( m_panelStatusBar, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ m_panelCenter->SetSizer( bSizer1711 );
+ m_panelCenter->Layout();
+ bSizer1711->Fit( m_panelCenter );
+ bSizerPanelHolder->Add( m_panelCenter, 1, wxEXPAND, 5 );
+
+ m_panelSearch = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer1713;
+ bSizer1713 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonHideSearch = new wxBitmapButton( m_panelSearch, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonHideSearch->SetToolTip( _("Close search bar") );
+
+ bSizer1713->Add( m_bpButtonHideSearch, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_staticText101 = new wxStaticText( m_panelSearch, wxID_ANY, _("Find:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer1713->Add( m_staticText101, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_textCtrlSearchTxt = new wxTextCtrl( m_panelSearch, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 220,-1 ), 0|wxWANTS_CHARS );
+ m_textCtrlSearchTxt->SetMaxLength( 0 );
+ bSizer1713->Add( m_textCtrlSearchTxt, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxMatchCase = new wxCheckBox( m_panelSearch, wxID_ANY, _("Match case"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer1713->Add( m_checkBoxMatchCase, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ m_panelSearch->SetSizer( bSizer1713 );
+ m_panelSearch->Layout();
+ bSizer1713->Fit( m_panelSearch );
+ bSizerPanelHolder->Add( m_panelSearch, 0, 0, 5 );
+
+ m_panelConfig = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ bSizerConfig = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer151;
+ bSizer151 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer17611;
+ bSizer17611 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonNew = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonNew->SetToolTip( _("dummy") );
+
+ bSizer17611->Add( m_bpButtonNew, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticText951 = new wxStaticText( m_panelConfig, wxID_ANY, _("New"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText951->Wrap( -1 );
+ bSizer17611->Add( m_staticText951, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer17611, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1761;
+ bSizer1761 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonOpen = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonOpen->SetToolTip( _("dummy") );
+
+ bSizer1761->Add( m_bpButtonOpen, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticText95 = new wxStaticText( m_panelConfig, wxID_ANY, _("Open..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText95->Wrap( -1 );
+ bSizer1761->Add( m_staticText95, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer1761, 0, 0, 5 );
+
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonSave = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonSave->SetToolTip( _("dummy") );
+
+ bSizer175->Add( m_bpButtonSave, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticText961 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText961->Wrap( -1 );
+ bSizer175->Add( m_staticText961, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer175, 0, 0, 5 );
+
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer1772;
+ bSizer1772 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonSaveAs = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonSaveAs->SetToolTip( _("dummy") );
+
+ bSizer1772->Add( m_bpButtonSaveAs, 1, 0, 5 );
+
+ m_bpButtonSaveAsBatch = new wxBitmapButton( m_panelConfig, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ m_bpButtonSaveAsBatch->SetToolTip( _("dummy") );
+
+ bSizer1772->Add( m_bpButtonSaveAsBatch, 1, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer174->Add( bSizer1772, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticText97 = new wxStaticText( m_panelConfig, wxID_ANY, _("Save as..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText97->Wrap( -1 );
+ bSizer174->Add( m_staticText97, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 2 );
+
+
+ bSizer151->Add( bSizer174, 0, 0, 5 );
+
+
+ bSizerConfig->Add( bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_listBoxHistory = new wxListBox( m_panelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_EXTENDED|wxLB_NEEDED_SB );
+ m_listBoxHistory->SetMinSize( wxSize( -1,40 ) );
+
+ bSizerConfig->Add( m_listBoxHistory, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelConfig->SetSizer( bSizerConfig );
+ m_panelConfig->Layout();
+ bSizerConfig->Fit( m_panelConfig );
+ bSizerPanelHolder->Add( m_panelConfig, 0, 0, 5 );
+
+ m_panelViewFilter = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ bSizerViewFilter = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextViewType = new wxStaticText( m_panelViewFilter, wxID_ANY, _("View type:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextViewType->Wrap( -1 );
+ bSizerViewFilter->Add( m_staticTextViewType, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonViewTypeSyncAction = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 82,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonViewTypeSyncAction, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT, 5 );
+
+ m_bpButtonShowExcluded = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowExcluded, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextSelectView = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Select view:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSelectView->Wrap( -1 );
+ bSizerViewFilter->Add( m_staticTextSelectView, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDeleteLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDeleteLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowUpdateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowCreateLeft = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowLeftOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowLeftOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowLeftNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowLeftNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowEqual = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowEqual, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDoNothing = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDoNothing, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDifferent = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDifferent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowRightNewer = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowRightNewer, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowRightOnly = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowRightOnly, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowCreateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowUpdateRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowDeleteRight = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowDeleteRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonShowConflict = new ToggleButton( m_panelViewFilter, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 42,42 ), wxBU_AUTODRAW );
+ bSizerViewFilter->Add( m_bpButtonShowConflict, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerViewFilter->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticText96 = new wxStaticText( m_panelViewFilter, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ bSizerViewFilter->Add( m_staticText96, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_panelStatistics = new wxPanel( m_panelViewFilter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer1801 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerStatistics = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer173->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer173->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteLeft->Wrap( -1 );
+ m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer173->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer173, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer172->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer172->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer172->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateLeft->Wrap( -1 );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer172, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1712;
+ bSizer1712 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer1712->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer1712->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer1712->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateLeft->Wrap( -1 );
+ m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer1712->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer1712, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ bSizerData = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapData->SetToolTip( _("Total bytes to copy") );
+
+ bSizerData->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizerData->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizerData->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextData->Wrap( -1 );
+ m_staticTextData->SetToolTip( _("Total bytes to copy") );
+
+ bSizerData->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizerData, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer178->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer178->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer178->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateRight->Wrap( -1 );
+ m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ bSizer178->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer177->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer177->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer177->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateRight->Wrap( -1 );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer177, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizerStatistics->Add( 5, 5, 0, 0, 5 );
+
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer176->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer176->Add( 5, 2, 0, 0, 5 );
+
+
+ bSizer176->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteRight->Wrap( -1 );
+ m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ bSizer176->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStatistics->Add( bSizer176, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer1801->Add( bSizerStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALL, 4 );
+
+
+ m_panelStatistics->SetSizer( bSizer1801 );
+ m_panelStatistics->Layout();
+ bSizer1801->Fit( m_panelStatistics );
+ bSizerViewFilter->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ m_panelViewFilter->SetSizer( bSizerViewFilter );
+ m_panelViewFilter->Layout();
+ bSizerViewFilter->Fit( m_panelViewFilter );
+ bSizerPanelHolder->Add( m_panelViewFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ this->SetSizer( bSizerPanelHolder );
+ this->Layout();
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogGenerated::OnClose ) );
+ this->Connect( m_menuItemNew->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ) );
+ this->Connect( m_menuItemLoad->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ) );
+ this->Connect( m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ) );
+ this->Connect( m_menuItemSaveAs->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ) );
+ this->Connect( m_menuItemSaveAsBatch->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ) );
+ this->Connect( m_menuItem4->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
+ this->Connect( m_menuItemCompare->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCompare ) );
+ this->Connect( m_menuItemCompSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ) );
+ this->Connect( m_menuItemFilter->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ) );
+ this->Connect( m_menuItemSyncSettings->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ) );
+ this->Connect( m_menuItemSynchronize->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ) );
+ this->Connect( m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuOptions ) );
+ this->Connect( m_menuItem15->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuFindItem ) );
+ this->Connect( m_menuItem51->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuResetLayout ) );
+ this->Connect( m_menuItem5->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuExportFileList ) );
+ this->Connect( m_menuItemHelp->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnShowHelp ) );
+ this->Connect( m_menuItemCheckVersionNow->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersion ) );
+ this->Connect( m_menuItemCheckVersionAuto->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuCheckVersionAutomatically ) );
+ this->Connect( m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuAbout ) );
+ m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompare ), NULL, this );
+ m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCmpSettings ), NULL, this );
+ m_bpButtonCmpConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
+ m_bpButtonCmpContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
+ m_bpButtonCmpContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCompSettingsContext ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigureFilter ), NULL, this );
+ m_bpButtonFilter->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
+ m_bpButtonFilterContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
+ m_bpButtonFilterContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnGlobalFilterContext ), NULL, this );
+ m_bpButtonSyncConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettings ), NULL, this );
+ m_bpButtonSyncConfig->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
+ m_bpButtonSyncContext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
+ m_bpButtonSyncContext->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnSyncSettingsContext ), NULL, this );
+ m_buttonSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnStartSync ), NULL, this );
+ m_bpButtonAddPair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairAdd ), NULL, this );
+ m_bpButtonRemovePair->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopFolderPairRemove ), NULL, this );
+ m_bpButtonSwapSides->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSwapSides ), NULL, this );
+ m_bpButtonAltCompCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalCompCfg ), NULL, this );
+ m_bpButtonLocalFilter->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalFilterCfg ), NULL, this );
+ m_bpButtonAltSyncCfg->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnTopLocalSyncCfg ), NULL, this );
+ m_bpButtonHideSearch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnHideSearchPanel ), NULL, this );
+ m_textCtrlSearchTxt->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( MainDialogGenerated::OnSearchGridEnter ), NULL, this );
+ m_bpButtonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigNew ), NULL, this );
+ m_bpButtonOpen->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigLoad ), NULL, this );
+ m_bpButtonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSave ), NULL, this );
+ m_bpButtonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnConfigSaveAs ), NULL, this );
+ m_bpButtonSaveAsBatch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnSaveAsBatchJob ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistory ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( MainDialogGenerated::OnLoadFromHistoryDoubleClick ), NULL, this );
+ m_listBoxHistory->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnCfgHistoryRightClick ), NULL, this );
+ m_bpButtonViewTypeSyncAction->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewType ), NULL, this );
+ m_bpButtonShowExcluded->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowExcluded->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDeleteLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDeleteLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowUpdateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowUpdateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowCreateLeft->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowCreateLeft->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowLeftOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowLeftNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowEqual->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowEqual->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDoNothing->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDoNothing->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDifferent->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowRightNewer->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowRightOnly->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowCreateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowCreateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowUpdateRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowUpdateRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowDeleteRight->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowDeleteRight->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
+ m_bpButtonShowConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::OnToggleViewButton ), NULL, this );
+ m_bpButtonShowConflict->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::OnViewButtonRightClick ), NULL, this );
}
MainDialogGenerated::~MainDialogGenerated()
@@ -1050,862 +1050,868 @@ MainDialogGenerated::~MainDialogGenerated()
ConfigDlgGenerated::ConfigDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer7;
- bSizer7 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer190;
- bSizer190 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer1911;
- bSizer1911 = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextFolderPairLabel = new wxStaticText( this, wxID_ANY, _("Folder pair:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextFolderPairLabel->Wrap( -1 );
- bSizer1911->Add( m_staticTextFolderPairLabel, 0, wxALL, 5 );
-
- m_listBoxFolderPair = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB );
- bSizer1911->Add( m_listBoxFolderPair, 1, 0, 5 );
-
-
- bSizer190->Add( bSizer1911, 0, wxEXPAND|wxLEFT, 5 );
-
- m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelCompSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelCompSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer275;
- bSizer275 = new wxBoxSizer( wxVERTICAL );
-
- bSizerLocalCompSettings = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxUseLocalCmpOptions = new wxCheckBox( m_panelCompSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxUseLocalCmpOptions->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizerLocalCompSettings->Add( m_checkBoxUseLocalCmpOptions, 0, wxALL|wxEXPAND, 10 );
-
- m_staticline59 = new wxStaticLine( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerLocalCompSettings->Add( m_staticline59, 0, wxEXPAND, 5 );
-
-
- bSizer275->Add( bSizerLocalCompSettings, 0, wxEXPAND, 5 );
-
- m_panelComparisonSettings = new wxPanel( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelComparisonSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer159;
- bSizer159 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText91 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText91->Wrap( -1 );
- bSizer182->Add( m_staticText91, 0, wxALL, 5 );
-
- wxFlexGridSizer* fgSizer16;
- fgSizer16 = new wxFlexGridSizer( 2, 2, 5, 5 );
- fgSizer16->SetFlexibleDirection( wxBOTH );
- fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapByTime = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapByTime->SetToolTip( _("Identify equal files by comparing modification time and size.") );
-
- fgSizer16->Add( m_bitmapByTime, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_toggleBtnTimeSize = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_toggleBtnTimeSize->SetValue( true );
- m_toggleBtnTimeSize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer16->Add( m_toggleBtnTimeSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_bitmapByContent = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapByContent->SetToolTip( _("Identify equal files by comparing the file content.") );
-
- fgSizer16->Add( m_bitmapByContent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_toggleBtnContent = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_toggleBtnContent->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer16->Add( m_toggleBtnContent, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer182->Add( fgSizer16, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer178->Add( bSizer182, 0, wxALL, 5 );
-
- m_staticline42 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer178->Add( m_staticline42, 0, wxEXPAND, 5 );
-
- m_textCtrlCompVarDescription = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer178->Add( m_textCtrlCompVarDescription, 1, wxEXPAND|wxLEFT, 5 );
-
-
- bSizer159->Add( bSizer178, 0, wxEXPAND, 5 );
-
- m_staticline33 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer159->Add( m_staticline33, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer1734;
- bSizer1734 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer1721;
- bSizer1721 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxSymlinksInclude = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Include &symbolic links:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer1721->Add( m_checkBoxSymlinksInclude, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxVERTICAL );
-
- m_radioBtnSymlinksFollow = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Follow"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnSymlinksFollow->SetValue( true );
- bSizer176->Add( m_radioBtnSymlinksFollow, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_radioBtnSymlinksDirect = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Direct"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer176->Add( m_radioBtnSymlinksDirect, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1721->Add( bSizer176, 0, wxEXPAND|wxLEFT, 18 );
-
- m_hyperlink24 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("More information"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer1721->Add( m_hyperlink24, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1734->Add( bSizer1721, 0, wxALL, 5 );
-
- m_staticline44 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1734->Add( m_staticline44, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer1733;
- bSizer1733 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText112 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("&Ignore time shift [hh:mm]"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText112->Wrap( -1 );
- bSizer1733->Add( m_staticText112, 0, wxALL, 5 );
-
- m_textCtrlTimeShift = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- m_textCtrlTimeShift->SetToolTip( _("List of file time offsets to consider equal") );
-
- bSizer1733->Add( m_textCtrlTimeShift, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer197;
- bSizer197 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText1381 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1381->Wrap( -1 );
- m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer197->Add( m_staticText1381, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText13811 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("1, 2, 4:30"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText13811->Wrap( -1 );
- m_staticText13811->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer197->Add( m_staticText13811, 0, wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer1733->Add( bSizer197, 0, 0, 5 );
-
- m_hyperlink241 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Handle daylight saving time"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer1733->Add( m_hyperlink241, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1734->Add( bSizer1733, 0, wxALL, 5 );
-
- m_staticline441 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1734->Add( m_staticline441, 0, wxEXPAND, 5 );
-
-
- bSizer159->Add( bSizer1734, 0, 0, 5 );
-
- m_staticline331 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer159->Add( m_staticline331, 0, wxEXPAND, 5 );
-
-
- m_panelComparisonSettings->SetSizer( bSizer159 );
- m_panelComparisonSettings->Layout();
- bSizer159->Fit( m_panelComparisonSettings );
- bSizer275->Add( m_panelComparisonSettings, 0, wxEXPAND, 5 );
-
-
- m_panelCompSettingsHolder->SetSizer( bSizer275 );
- m_panelCompSettingsHolder->Layout();
- bSizer275->Fit( m_panelCompSettingsHolder );
- m_notebook->AddPage( m_panelCompSettingsHolder, _("dummy"), true );
- m_panelFilterSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelFilterSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer278;
- bSizer278 = new wxBoxSizer( wxVERTICAL );
-
- bSizerLocalFilterSettings = new wxBoxSizer( wxVERTICAL );
-
- m_staticText144 = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText144->Wrap( -1 );
- bSizerLocalFilterSettings->Add( m_staticText144, 0, wxALL, 10 );
-
- m_staticline61 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerLocalFilterSettings->Add( m_staticline61, 0, wxEXPAND, 5 );
-
-
- bSizer278->Add( bSizerLocalFilterSettings, 0, wxEXPAND, 5 );
-
- m_panelFilterSettings = new wxPanel( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelFilterSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer1591;
- bSizer1591 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer166->Add( 0, 10, 0, 0, 5 );
-
- wxBoxSizer* bSizer1661;
- bSizer1661 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapInclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
- bSizer1661->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
- wxBoxSizer* bSizer1731;
- bSizer1731 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText78 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Include:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText78->Wrap( -1 );
- bSizer1731->Add( m_staticText78, 0, 0, 5 );
-
- m_textCtrlInclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
- m_textCtrlInclude->SetMinSize( wxSize( 280,-1 ) );
-
- bSizer1731->Add( m_textCtrlInclude, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP, 5 );
-
-
- bSizer1661->Add( bSizer1731, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer166->Add( bSizer1661, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxLEFT, 5 );
-
- m_staticline22 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline22, 0, wxEXPAND, 5 );
-
-
- bSizer166->Add( 0, 10, 0, 0, 5 );
-
- wxBoxSizer* bSizer1651;
- bSizer1651 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapExclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
- bSizer1651->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- wxBoxSizer* bSizer1742;
- bSizer1742 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer189;
- bSizer189 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText77 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Exclude:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText77->Wrap( -1 );
- bSizer189->Add( m_staticText77, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer189->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink171 = new wxHyperlinkCtrl( m_panelFilterSettings, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer189->Add( m_hyperlink171, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer1742->Add( bSizer189, 0, wxEXPAND, 5 );
-
- m_textCtrlExclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
- bSizer1742->Add( m_textCtrlExclude, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
-
-
- bSizer1651->Add( bSizer1742, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer166->Add( bSizer1651, 2, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxLEFT, 5 );
-
-
- bSizer1591->Add( bSizer166, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_staticline24 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1591->Add( m_staticline24, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer167;
- bSizer167 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapFilterDate = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 34,34 ), 0 );
- bSizer167->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText79 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Time span:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText79->Wrap( -1 );
- bSizer165->Add( m_staticText79, 0, wxBOTTOM, 5 );
-
- m_spinCtrlTimespan = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer165->Add( m_spinCtrlTimespan, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxArrayString m_choiceUnitTimespanChoices;
- m_choiceUnitTimespan = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
- m_choiceUnitTimespan->SetSelection( 0 );
- bSizer165->Add( m_choiceUnitTimespan, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer167->Add( bSizer165, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer167, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
-
- m_staticline23 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer160->Add( m_staticline23, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer168;
- bSizer168 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapFilterSize = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
- bSizer168->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText80 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("File size:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText80->Wrap( -1 );
- bSizer158->Add( m_staticText80, 0, wxBOTTOM, 5 );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText101 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText101->Wrap( -1 );
- bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
-
- m_spinCtrlMinSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer162->Add( m_spinCtrlMinSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxArrayString m_choiceUnitMinSizeChoices;
- m_choiceUnitMinSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
- m_choiceUnitMinSize->SetSelection( 0 );
- bSizer162->Add( m_choiceUnitMinSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer158->Add( bSizer162, 0, wxBOTTOM|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer163;
- bSizer163 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText102 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText102->Wrap( -1 );
- bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
-
- m_spinCtrlMaxSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- bSizer163->Add( m_spinCtrlMaxSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- wxArrayString m_choiceUnitMaxSizeChoices;
- m_choiceUnitMaxSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
- m_choiceUnitMaxSize->SetSelection( 0 );
- bSizer163->Add( m_choiceUnitMaxSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer158->Add( bSizer163, 0, wxEXPAND, 5 );
-
-
- bSizer168->Add( bSizer158, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer168, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
-
-
- bSizer1591->Add( bSizer160, 0, wxEXPAND, 5 );
-
-
- m_panelFilterSettings->SetSizer( bSizer1591 );
- m_panelFilterSettings->Layout();
- bSizer1591->Fit( m_panelFilterSettings );
- bSizer278->Add( m_panelFilterSettings, 1, wxEXPAND, 5 );
-
- m_staticline62 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer278->Add( m_staticline62, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer280;
- bSizer280 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText44 = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticText44->Wrap( 590 );
- bSizer280->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer280->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticline46 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer280->Add( m_staticline46, 0, wxEXPAND, 5 );
-
- m_buttonClear = new wxButton( m_panelFilterSettingsHolder, wxID_DEFAULT, _("C&lear"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer280->Add( m_buttonClear, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
-
-
- bSizer278->Add( bSizer280, 0, wxEXPAND, 5 );
-
-
- m_panelFilterSettingsHolder->SetSizer( bSizer278 );
- m_panelFilterSettingsHolder->Layout();
- bSizer278->Fit( m_panelFilterSettingsHolder );
- m_notebook->AddPage( m_panelFilterSettingsHolder, _("dummy"), false );
- m_panelSyncSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelSyncSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer276;
- bSizer276 = new wxBoxSizer( wxVERTICAL );
-
- bSizerLocalSyncSettings = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxUseLocalSyncOptions = new wxCheckBox( m_panelSyncSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerLocalSyncSettings->Add( m_checkBoxUseLocalSyncOptions, 0, wxALL|wxEXPAND, 10 );
-
- m_staticline60 = new wxStaticLine( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerLocalSyncSettings->Add( m_staticline60, 0, wxEXPAND, 5 );
-
-
- bSizer276->Add( bSizerLocalSyncSettings, 0, wxEXPAND, 5 );
-
- m_panelSyncSettings = new wxPanel( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelSyncSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer232;
- bSizer232 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer237;
- bSizer237 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer235;
- bSizer235 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText86 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText86->Wrap( -1 );
- bSizer235->Add( m_staticText86, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer236;
- bSizer236 = new wxBoxSizer( wxVERTICAL );
-
- m_toggleBtnTwoWay = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnTwoWay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnTwoWay, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
-
- m_toggleBtnMirror = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnMirror->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnMirror, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
-
- m_toggleBtnUpdate = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnUpdate, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
-
- m_toggleBtnCustom = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
- m_toggleBtnCustom->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer236->Add( m_toggleBtnCustom, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer235->Add( bSizer236, 0, wxRIGHT|wxLEFT, 5 );
-
- m_checkBoxDetectMove = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Detect moved files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxDetectMove->SetValue(true);
- m_checkBoxDetectMove->SetToolTip( _("- Not supported by all file systems\n- Requires and creates database files\n- Detection not available for first sync") );
-
- bSizer235->Add( m_checkBoxDetectMove, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
-
-
- bSizer237->Add( bSizer235, 0, wxALL, 5 );
-
- m_staticline53 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer237->Add( m_staticline53, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer238;
- bSizer238 = new wxBoxSizer( wxVERTICAL );
-
- m_textCtrlSyncVarDescription = new wxTextCtrl( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer238->Add( m_textCtrlSyncVarDescription, 1, wxEXPAND|wxLEFT, 5 );
-
- m_staticline43 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer238->Add( m_staticline43, 0, wxEXPAND, 5 );
-
- bSizerSyncConfig = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticText119 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Category"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText119->Wrap( -1 );
- bSizer173->Add( m_staticText119, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticText120 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText120->Wrap( -1 );
- bSizer173->Add( m_staticText120, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizerSyncConfig->Add( bSizer173, 0, wxEXPAND|wxRIGHT, 5 );
-
- fgSizerSyncDirections = new wxFlexGridSizer( 2, 0, 5, 5 );
- fgSizerSyncDirections->SetFlexibleDirection( wxBOTH );
- fgSizerSyncDirections->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapLeftOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
-
- fgSizerSyncDirections->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapLeftNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
-
- fgSizerSyncDirections->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapDifferent = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapDifferent->SetToolTip( _("Items have different content") );
-
- fgSizerSyncDirections->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapConflict = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
-
- fgSizerSyncDirections->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapRightNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
-
- fgSizerSyncDirections->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapRightOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
- m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
-
- fgSizerSyncDirections->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLeftOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLeftNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonDifferent = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonConflict = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRightNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRightOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- fgSizerSyncDirections->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerSyncConfig->Add( fgSizerSyncDirections, 0, 0, 5 );
-
- m_bitmapDatabase = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmapDatabase->SetToolTip( _("Detect synchronization directions with the help of database files") );
-
- bSizerSyncConfig->Add( m_bitmapDatabase, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxALIGN_CENTER_VERTICAL, 10 );
-
- wxBoxSizer* bSizerKeepVerticalHeightWhenSyncDirsNotShown;
- bSizerKeepVerticalHeightWhenSyncDirsNotShown = new wxBoxSizer( wxVERTICAL );
-
-
- bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 45, 0, 0, 5 );
-
-
- bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 5, 1, 0, 5 );
-
-
- bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 46, 0, 0, 5 );
-
-
- bSizerSyncConfig->Add( bSizerKeepVerticalHeightWhenSyncDirsNotShown, 0, 0, 5 );
-
-
- bSizer238->Add( bSizerSyncConfig, 0, wxALL, 10 );
-
-
- bSizer237->Add( bSizer238, 1, wxEXPAND, 5 );
-
-
- bSizer232->Add( bSizer237, 0, wxEXPAND, 5 );
-
- m_staticline54 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer232->Add( m_staticline54, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer184;
- bSizer184 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText87 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Delete files:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText87->Wrap( -1 );
- bSizer180->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_radioBtnPermanent = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Permanent"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnPermanent->SetToolTip( _("Delete or overwrite files permanently") );
-
- bSizer180->Add( m_radioBtnPermanent, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_radioBtnRecycler = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnRecycler->SetToolTip( _("Back up deleted and overwritten files in the recycle bin") );
-
- bSizer180->Add( m_radioBtnRecycler, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_radioBtnVersioning = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Versioning"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnVersioning->SetToolTip( _("Move files to a user-defined folder") );
-
- bSizer180->Add( m_radioBtnVersioning, 0, wxALL, 5 );
-
-
- bSizer184->Add( bSizer180, 0, 0, 5 );
-
- bSizerVersioning = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonDeletionType = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
- bSizerVersioning->Add( m_bpButtonDeletionType, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_panelVersioning = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelVersioning->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer191;
- bSizer191 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer156;
- bSizer156 = new wxBoxSizer( wxHORIZONTAL );
-
- m_versioningFolderPath = new FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer156->Add( m_versioningFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectVersioningFolder = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectVersioningFolder->SetToolTip( _("Select a folder") );
-
- bSizer156->Add( m_buttonSelectVersioningFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolder = new wxBitmapButton( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolder->SetToolTip( _("Select SFTP folder") );
-
- bSizer156->Add( m_bpButtonSelectAltFolder, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer191->Add( bSizer156, 0, wxEXPAND|wxBOTTOM, 5 );
-
- bSizer192 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText93 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Naming convention:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- bSizer192->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- wxArrayString m_choiceVersioningStyleChoices;
- m_choiceVersioningStyle = new wxChoice( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceVersioningStyleChoices, 0 );
- m_choiceVersioningStyle->SetSelection( 0 );
- bSizer192->Add( m_choiceVersioningStyle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_staticTextNamingCvtPart1 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart1->Wrap( -1 );
- m_staticTextNamingCvtPart1->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer192->Add( m_staticTextNamingCvtPart1, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextNamingCvtPart2Bold = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart2Bold->Wrap( -1 );
- m_staticTextNamingCvtPart2Bold->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_staticTextNamingCvtPart2Bold->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer192->Add( m_staticTextNamingCvtPart2Bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextNamingCvtPart3 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextNamingCvtPart3->Wrap( -1 );
- m_staticTextNamingCvtPart3->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer192->Add( m_staticTextNamingCvtPart3, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer192->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink17 = new wxHyperlinkCtrl( m_panelVersioning, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer192->Add( m_hyperlink17, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- bSizer191->Add( bSizer192, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelVersioning->SetSizer( bSizer191 );
- m_panelVersioning->Layout();
- bSizer191->Fit( m_panelVersioning );
- bSizerVersioning->Add( m_panelVersioning, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
-
- bSizer184->Add( bSizerVersioning, 0, wxTOP|wxEXPAND, 5 );
-
-
- bSizer232->Add( bSizer184, 0, wxALL|wxEXPAND, 10 );
-
- bSizerMiscConfig = new wxBoxSizer( wxVERTICAL );
-
- m_staticline582 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerMiscConfig->Add( m_staticline582, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer1732;
- bSizer1732 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText88 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText88->Wrap( -1 );
- bSizer174->Add( m_staticText88, 0, wxBOTTOM, 5 );
-
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxHORIZONTAL );
-
- m_radioBtnIgnoreErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
- m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
-
- bSizer175->Add( m_radioBtnIgnoreErrors, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_radioBtnPopupOnErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
-
- bSizer175->Add( m_radioBtnPopupOnErrors, 0, wxALL, 5 );
-
-
- bSizer174->Add( bSizer175, 0, 0, 5 );
-
-
- bSizer1732->Add( bSizer174, 0, wxALL, 10 );
-
- m_staticline57 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1732->Add( m_staticline57, 0, wxEXPAND, 5 );
-
- bSizerOnCompletion = new wxBoxSizer( wxVERTICAL );
-
- m_staticText89 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText89->Wrap( -1 );
- bSizerOnCompletion->Add( m_staticText89, 0, wxBOTTOM, 5 );
-
- m_comboBoxOnCompletion = new OnCompletionBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizerOnCompletion->Add( m_comboBoxOnCompletion, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer1732->Add( bSizerOnCompletion, 1, wxALL, 10 );
-
-
- bSizerMiscConfig->Add( bSizer1732, 1, wxEXPAND, 5 );
-
-
- bSizer232->Add( bSizerMiscConfig, 1, wxEXPAND, 5 );
-
-
- m_panelSyncSettings->SetSizer( bSizer232 );
- m_panelSyncSettings->Layout();
- bSizer232->Fit( m_panelSyncSettings );
- bSizer276->Add( m_panelSyncSettings, 1, wxEXPAND, 5 );
-
-
- m_panelSyncSettingsHolder->SetSizer( bSizer276 );
- m_panelSyncSettingsHolder->Layout();
- bSizer276->Fit( m_panelSyncSettingsHolder );
- m_notebook->AddPage( m_panelSyncSettingsHolder, _("dummy"), false );
-
- bSizer190->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer7->Add( bSizer190, 1, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer7->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer7 );
- this->Layout();
- bSizer7->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ConfigDlgGenerated::OnClose ) );
- m_listBoxFolderPair->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onListBoxKeyEvent ), NULL, this );
- m_listBoxFolderPair->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnSelectFolderPair ), NULL, this );
- m_checkBoxUseLocalCmpOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalCompSettings ), NULL, this );
- m_toggleBtnTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnTimeSizeDouble ), NULL, this );
- m_toggleBtnTimeSize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnTimeSize ), NULL, this );
- m_toggleBtnContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnContentDouble ), NULL, this );
- m_toggleBtnContent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnContent ), NULL, this );
- m_checkBoxSymlinksInclude->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeCompOption ), NULL, this );
- m_hyperlink24->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpComparisonSettings ), NULL, this );
- m_textCtrlTimeShift->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onlTimeShiftKeyDown ), NULL, this );
- m_hyperlink241->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpTimeShift ), NULL, this );
- m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_hyperlink171->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpShowExamples ), NULL, this );
- m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
- m_buttonClear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnFilterReset ), NULL, this );
- m_checkBoxUseLocalSyncOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalSyncSettings ), NULL, this );
- m_toggleBtnTwoWay->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncTwoWayDouble ), NULL, this );
- m_toggleBtnTwoWay->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncTwoWay ), NULL, this );
- m_toggleBtnMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncMirrorDouble ), NULL, this );
- m_toggleBtnMirror->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncMirror ), NULL, this );
- m_toggleBtnUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncUpdateDouble ), NULL, this );
- m_toggleBtnUpdate->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncUpdate ), NULL, this );
- m_toggleBtnCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncCustomDouble ), NULL, this );
- m_toggleBtnCustom->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncCustom ), NULL, this );
- m_checkBoxDetectMove->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDetectMovedFiles ), NULL, this );
- m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExLeftSideOnly ), NULL, this );
- m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnLeftNewer ), NULL, this );
- m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnDifferent ), NULL, this );
- m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnConflict ), NULL, this );
- m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnRightNewer ), NULL, this );
- m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExRightSideOnly ), NULL, this );
- m_radioBtnPermanent->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionPermanent ), NULL, this );
- m_radioBtnRecycler->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionRecycler ), NULL, this );
- m_radioBtnVersioning->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionVersioning ), NULL, this );
- m_bpButtonDeletionType->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDeletionType ), NULL, this );
- m_choiceVersioningStyle->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeSyncOption ), NULL, this );
- m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpVersioning ), NULL, this );
- m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorIgnore ), NULL, this );
- m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorPopup ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer7;
+ bSizer7 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer190;
+ bSizer190 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer1911;
+ bSizer1911 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextFolderPairLabel = new wxStaticText( this, wxID_ANY, _("Folder pair:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextFolderPairLabel->Wrap( -1 );
+ bSizer1911->Add( m_staticTextFolderPairLabel, 0, wxALL, 5 );
+
+ m_listBoxFolderPair = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_NEEDED_SB );
+ bSizer1911->Add( m_listBoxFolderPair, 1, 0, 5 );
+
+
+ bSizer190->Add( bSizer1911, 0, wxEXPAND|wxLEFT, 5 );
+
+ m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelCompSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelCompSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer275;
+ bSizer275 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerLocalCompSettings = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxUseLocalCmpOptions = new wxCheckBox( m_panelCompSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxUseLocalCmpOptions->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizerLocalCompSettings->Add( m_checkBoxUseLocalCmpOptions, 0, wxALL|wxEXPAND, 10 );
+
+ m_staticline59 = new wxStaticLine( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerLocalCompSettings->Add( m_staticline59, 0, wxEXPAND, 5 );
+
+
+ bSizer275->Add( bSizerLocalCompSettings, 0, wxEXPAND, 5 );
+
+ m_panelComparisonSettings = new wxPanel( m_panelCompSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelComparisonSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer159;
+ bSizer159 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText91 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText91->Wrap( -1 );
+ bSizer182->Add( m_staticText91, 0, wxALL, 5 );
+
+ wxFlexGridSizer* fgSizer16;
+ fgSizer16 = new wxFlexGridSizer( 3, 2, 5, 5 );
+ fgSizer16->SetFlexibleDirection( wxBOTH );
+ fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapByTimeSize = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_bitmapByTimeSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_toggleBtnByTimeSize = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File time and size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnByTimeSize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer16->Add( m_toggleBtnByTimeSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_bitmapByContent = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_bitmapByContent, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_toggleBtnByContent = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File content"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnByContent->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer16->Add( m_toggleBtnByContent, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_bitmapBySize = new wxStaticBitmap( m_panelComparisonSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_bitmapBySize, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_toggleBtnBySize = new wxToggleButton( m_panelComparisonSettings, wxID_ANY, _("File size"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_toggleBtnBySize->SetValue( true );
+ m_toggleBtnBySize->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer16->Add( m_toggleBtnBySize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer182->Add( fgSizer16, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer178->Add( bSizer182, 0, wxALL, 5 );
+
+ m_staticline42 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer178->Add( m_staticline42, 0, wxEXPAND, 5 );
+
+ m_textCtrlCompVarDescription = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer178->Add( m_textCtrlCompVarDescription, 1, wxEXPAND|wxLEFT, 5 );
+
+
+ bSizer159->Add( bSizer178, 0, wxEXPAND, 5 );
+
+ m_staticline33 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer159->Add( m_staticline33, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer1734;
+ bSizer1734 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer1721;
+ bSizer1721 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxSymlinksInclude = new wxCheckBox( m_panelComparisonSettings, wxID_ANY, _("Include &symbolic links:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer1721->Add( m_checkBoxSymlinksInclude, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxVERTICAL );
+
+ m_radioBtnSymlinksFollow = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Follow"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnSymlinksFollow->SetValue( true );
+ bSizer176->Add( m_radioBtnSymlinksFollow, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_radioBtnSymlinksDirect = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("&Direct"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer176->Add( m_radioBtnSymlinksDirect, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1721->Add( bSizer176, 0, wxEXPAND|wxLEFT, 18 );
+
+ m_hyperlink24 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("More information"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer1721->Add( m_hyperlink24, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1734->Add( bSizer1721, 0, wxALL, 5 );
+
+ m_staticline44 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1734->Add( m_staticline44, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer1733;
+ bSizer1733 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText112 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("&Ignore time shift [hh:mm]"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText112->Wrap( -1 );
+ bSizer1733->Add( m_staticText112, 0, wxALL, 5 );
+
+ m_textCtrlTimeShift = new wxTextCtrl( m_panelComparisonSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_textCtrlTimeShift->SetToolTip( _("List of file time offsets to ignore") );
+
+ bSizer1733->Add( m_textCtrlTimeShift, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer197;
+ bSizer197 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText1381 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1381->Wrap( -1 );
+ m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer197->Add( m_staticText1381, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText13811 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("1, 2, 4:30"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText13811->Wrap( -1 );
+ m_staticText13811->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer197->Add( m_staticText13811, 0, wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer1733->Add( bSizer197, 0, 0, 5 );
+
+ m_hyperlink241 = new wxHyperlinkCtrl( m_panelComparisonSettings, wxID_ANY, _("Handle daylight saving time"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer1733->Add( m_hyperlink241, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1734->Add( bSizer1733, 0, wxALL, 5 );
+
+ m_staticline441 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1734->Add( m_staticline441, 0, wxEXPAND, 5 );
+
+
+ bSizer159->Add( bSizer1734, 0, 0, 5 );
+
+ m_staticline331 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer159->Add( m_staticline331, 0, wxEXPAND, 5 );
+
+
+ m_panelComparisonSettings->SetSizer( bSizer159 );
+ m_panelComparisonSettings->Layout();
+ bSizer159->Fit( m_panelComparisonSettings );
+ bSizer275->Add( m_panelComparisonSettings, 0, wxEXPAND, 5 );
+
+
+ m_panelCompSettingsHolder->SetSizer( bSizer275 );
+ m_panelCompSettingsHolder->Layout();
+ bSizer275->Fit( m_panelCompSettingsHolder );
+ m_notebook->AddPage( m_panelCompSettingsHolder, _("dummy"), true );
+ m_panelFilterSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelFilterSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer278;
+ bSizer278 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerLocalFilterSettings = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText144 = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText144->Wrap( -1 );
+ bSizerLocalFilterSettings->Add( m_staticText144, 0, wxALL, 10 );
+
+ m_staticline61 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerLocalFilterSettings->Add( m_staticline61, 0, wxEXPAND, 5 );
+
+
+ bSizer278->Add( bSizerLocalFilterSettings, 0, wxEXPAND, 5 );
+
+ m_panelFilterSettings = new wxPanel( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelFilterSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer1591;
+ bSizer1591 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer166->Add( 0, 10, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1661;
+ bSizer1661 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapInclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
+ bSizer1661->Add( m_bitmapInclude, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer1731;
+ bSizer1731 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText78 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Include:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText78->Wrap( -1 );
+ bSizer1731->Add( m_staticText78, 0, 0, 5 );
+
+ m_textCtrlInclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ m_textCtrlInclude->SetMinSize( wxSize( 280,-1 ) );
+
+ bSizer1731->Add( m_textCtrlInclude, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP, 5 );
+
+
+ bSizer1661->Add( bSizer1731, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer166->Add( bSizer1661, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxLEFT, 5 );
+
+ m_staticline22 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline22, 0, wxEXPAND, 5 );
+
+
+ bSizer166->Add( 0, 10, 0, 0, 5 );
+
+ wxBoxSizer* bSizer1651;
+ bSizer1651 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapExclude = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 30,30 ), 0 );
+ bSizer1651->Add( m_bitmapExclude, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer1742;
+ bSizer1742 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer189;
+ bSizer189 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText77 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Exclude:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText77->Wrap( -1 );
+ bSizer189->Add( m_staticText77, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer189->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink171 = new wxHyperlinkCtrl( m_panelFilterSettings, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer189->Add( m_hyperlink171, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer1742->Add( bSizer189, 0, wxEXPAND, 5 );
+
+ m_textCtrlExclude = new wxTextCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE );
+ bSizer1742->Add( m_textCtrlExclude, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxTOP, 5 );
+
+
+ bSizer1651->Add( bSizer1742, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer166->Add( bSizer1651, 2, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxLEFT, 5 );
+
+
+ bSizer1591->Add( bSizer166, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_staticline24 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1591->Add( m_staticline24, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer167;
+ bSizer167 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapFilterDate = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 34,34 ), 0 );
+ bSizer167->Add( m_bitmapFilterDate, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText79 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Time span:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText79->Wrap( -1 );
+ bSizer165->Add( m_staticText79, 0, wxBOTTOM, 5 );
+
+ m_spinCtrlTimespan = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer165->Add( m_spinCtrlTimespan, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ wxArrayString m_choiceUnitTimespanChoices;
+ m_choiceUnitTimespan = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitTimespanChoices, 0 );
+ m_choiceUnitTimespan->SetSelection( 0 );
+ bSizer165->Add( m_choiceUnitTimespan, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer167->Add( bSizer165, 1, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer167, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
+
+ m_staticline23 = new wxStaticLine( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer160->Add( m_staticline23, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer168;
+ bSizer168 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapFilterSize = new wxStaticBitmap( m_panelFilterSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
+ bSizer168->Add( m_bitmapFilterSize, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText80 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("File size:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText80->Wrap( -1 );
+ bSizer158->Add( m_staticText80, 0, wxBOTTOM, 5 );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText101 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Minimum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText101->Wrap( -1 );
+ bSizer162->Add( m_staticText101, 0, wxBOTTOM, 2 );
+
+ m_spinCtrlMinSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer162->Add( m_spinCtrlMinSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ wxArrayString m_choiceUnitMinSizeChoices;
+ m_choiceUnitMinSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMinSizeChoices, 0 );
+ m_choiceUnitMinSize->SetSelection( 0 );
+ bSizer162->Add( m_choiceUnitMinSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer158->Add( bSizer162, 0, wxBOTTOM|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer163;
+ bSizer163 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText102 = new wxStaticText( m_panelFilterSettings, wxID_ANY, _("Maximum:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText102->Wrap( -1 );
+ bSizer163->Add( m_staticText102, 0, wxBOTTOM, 2 );
+
+ m_spinCtrlMaxSize = new wxSpinCtrl( m_panelFilterSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ bSizer163->Add( m_spinCtrlMaxSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ wxArrayString m_choiceUnitMaxSizeChoices;
+ m_choiceUnitMaxSize = new wxChoice( m_panelFilterSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceUnitMaxSizeChoices, 0 );
+ m_choiceUnitMaxSize->SetSelection( 0 );
+ bSizer163->Add( m_choiceUnitMaxSize, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer158->Add( bSizer163, 0, wxEXPAND, 5 );
+
+
+ bSizer168->Add( bSizer158, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer168, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
+
+
+ bSizer1591->Add( bSizer160, 0, wxEXPAND, 5 );
+
+
+ m_panelFilterSettings->SetSizer( bSizer1591 );
+ m_panelFilterSettings->Layout();
+ bSizer1591->Fit( m_panelFilterSettings );
+ bSizer278->Add( m_panelFilterSettings, 1, wxEXPAND, 5 );
+
+ m_staticline62 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer278->Add( m_staticline62, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer280;
+ bSizer280 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText44 = new wxStaticText( m_panelFilterSettingsHolder, wxID_ANY, _("Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticText44->Wrap( 590 );
+ bSizer280->Add( m_staticText44, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer280->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticline46 = new wxStaticLine( m_panelFilterSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer280->Add( m_staticline46, 0, wxEXPAND, 5 );
+
+ m_buttonClear = new wxButton( m_panelFilterSettingsHolder, wxID_DEFAULT, _("C&lear"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer280->Add( m_buttonClear, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+
+
+ bSizer278->Add( bSizer280, 0, wxEXPAND, 5 );
+
+
+ m_panelFilterSettingsHolder->SetSizer( bSizer278 );
+ m_panelFilterSettingsHolder->Layout();
+ bSizer278->Fit( m_panelFilterSettingsHolder );
+ m_notebook->AddPage( m_panelFilterSettingsHolder, _("dummy"), false );
+ m_panelSyncSettingsHolder = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelSyncSettingsHolder->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer276;
+ bSizer276 = new wxBoxSizer( wxVERTICAL );
+
+ bSizerLocalSyncSettings = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxUseLocalSyncOptions = new wxCheckBox( m_panelSyncSettingsHolder, wxID_ANY, _("Use local settings:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerLocalSyncSettings->Add( m_checkBoxUseLocalSyncOptions, 0, wxALL|wxEXPAND, 10 );
+
+ m_staticline60 = new wxStaticLine( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerLocalSyncSettings->Add( m_staticline60, 0, wxEXPAND, 5 );
+
+
+ bSizer276->Add( bSizerLocalSyncSettings, 0, wxEXPAND, 5 );
+
+ m_panelSyncSettings = new wxPanel( m_panelSyncSettingsHolder, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelSyncSettings->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer232;
+ bSizer232 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer237;
+ bSizer237 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer235;
+ bSizer235 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText86 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Select a variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText86->Wrap( -1 );
+ bSizer235->Add( m_staticText86, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer236;
+ bSizer236 = new wxBoxSizer( wxVERTICAL );
+
+ m_toggleBtnTwoWay = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnTwoWay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnTwoWay, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
+
+ m_toggleBtnMirror = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnMirror->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnMirror, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
+
+ m_toggleBtnUpdate = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnUpdate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnUpdate, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM, 5 );
+
+ m_toggleBtnCustom = new wxToggleButton( m_panelSyncSettings, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,30 ), 0 );
+ m_toggleBtnCustom->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer236->Add( m_toggleBtnCustom, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer235->Add( bSizer236, 0, wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxDetectMove = new wxCheckBox( m_panelSyncSettings, wxID_ANY, _("Detect moved files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxDetectMove->SetValue(true);
+ m_checkBoxDetectMove->SetToolTip( _("- Not supported by all file systems\n- Requires and creates database files\n- Detection not available for first sync") );
+
+ bSizer235->Add( m_checkBoxDetectMove, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
+
+
+ bSizer237->Add( bSizer235, 0, wxALL, 5 );
+
+ m_staticline53 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer237->Add( m_staticline53, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer238;
+ bSizer238 = new wxBoxSizer( wxVERTICAL );
+
+ m_textCtrlSyncVarDescription = new wxTextCtrl( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer238->Add( m_textCtrlSyncVarDescription, 1, wxEXPAND|wxLEFT, 5 );
+
+ m_staticline43 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer238->Add( m_staticline43, 0, wxEXPAND, 5 );
+
+ bSizerSyncConfig = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticText119 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Category"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText119->Wrap( -1 );
+ bSizer173->Add( m_staticText119, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticText120 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Action"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText120->Wrap( -1 );
+ bSizer173->Add( m_staticText120, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer173->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizerSyncConfig->Add( bSizer173, 0, wxEXPAND|wxRIGHT, 5 );
+
+ fgSizerSyncDirections = new wxFlexGridSizer( 2, 0, 5, 5 );
+ fgSizerSyncDirections->SetFlexibleDirection( wxBOTH );
+ fgSizerSyncDirections->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapLeftOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapLeftOnly->SetToolTip( _("Item exists on left side only") );
+
+ fgSizerSyncDirections->Add( m_bitmapLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapLeftNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapLeftNewer->SetToolTip( _("Left side is newer") );
+
+ fgSizerSyncDirections->Add( m_bitmapLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapDifferent = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapDifferent->SetToolTip( _("Items have different content") );
+
+ fgSizerSyncDirections->Add( m_bitmapDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapConflict = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapConflict->SetToolTip( _("Conflict/item cannot be categorized") );
+
+ fgSizerSyncDirections->Add( m_bitmapConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapRightNewer = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapRightNewer->SetToolTip( _("Right side is newer") );
+
+ fgSizerSyncDirections->Add( m_bitmapRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapRightOnly = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 45,45 ), 0 );
+ m_bitmapRightOnly->SetToolTip( _("Item exists on right side only") );
+
+ fgSizerSyncDirections->Add( m_bitmapRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLeftOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonLeftOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLeftNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonLeftNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonDifferent = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonDifferent, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonConflict = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonConflict, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRightNewer = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonRightNewer, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRightOnly = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ fgSizerSyncDirections->Add( m_bpButtonRightOnly, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerSyncConfig->Add( fgSizerSyncDirections, 0, 0, 5 );
+
+ m_bitmapDatabase = new wxStaticBitmap( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapDatabase->SetToolTip( _("Detect synchronization directions with the help of database files") );
+
+ bSizerSyncConfig->Add( m_bitmapDatabase, 0, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxALIGN_CENTER_VERTICAL, 10 );
+
+ wxBoxSizer* bSizerKeepVerticalHeightWhenSyncDirsNotShown;
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 45, 0, 0, 5 );
+
+
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 5, 1, 0, 5 );
+
+
+ bSizerKeepVerticalHeightWhenSyncDirsNotShown->Add( 0, 46, 0, 0, 5 );
+
+
+ bSizerSyncConfig->Add( bSizerKeepVerticalHeightWhenSyncDirsNotShown, 0, 0, 5 );
+
+
+ bSizer238->Add( bSizerSyncConfig, 0, wxALL, 10 );
+
+
+ bSizer237->Add( bSizer238, 1, wxEXPAND, 5 );
+
+
+ bSizer232->Add( bSizer237, 0, wxEXPAND, 5 );
+
+ m_staticline54 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer232->Add( m_staticline54, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer184;
+ bSizer184 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText87 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Delete files:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText87->Wrap( -1 );
+ bSizer180->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_radioBtnPermanent = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Permanent"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnPermanent->SetToolTip( _("Delete or overwrite files permanently") );
+
+ bSizer180->Add( m_radioBtnPermanent, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_radioBtnRecycler = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnRecycler->SetToolTip( _("Back up deleted and overwritten files in the recycle bin") );
+
+ bSizer180->Add( m_radioBtnRecycler, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_radioBtnVersioning = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Versioning"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnVersioning->SetToolTip( _("Move files to a user-defined folder") );
+
+ bSizer180->Add( m_radioBtnVersioning, 0, wxALL, 5 );
+
+
+ bSizer184->Add( bSizer180, 0, 0, 5 );
+
+ bSizerVersioning = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonDeletionType = new wxBitmapButton( m_panelSyncSettings, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 46,46 ), wxBU_AUTODRAW );
+ bSizerVersioning->Add( m_bpButtonDeletionType, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_panelVersioning = new wxPanel( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelVersioning->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer191;
+ bSizer191 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer156;
+ bSizer156 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_versioningFolderPath = new FolderHistoryBox( m_panelVersioning, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer156->Add( m_versioningFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectVersioningFolder = new wxButton( m_panelVersioning, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectVersioningFolder->SetToolTip( _("Select a folder") );
+
+ bSizer156->Add( m_buttonSelectVersioningFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolder = new wxBitmapButton( m_panelVersioning, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolder->SetToolTip( _("Select SFTP folder") );
+
+ bSizer156->Add( m_bpButtonSelectAltFolder, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer191->Add( bSizer156, 0, wxEXPAND|wxBOTTOM, 5 );
+
+ bSizer192 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText93 = new wxStaticText( m_panelVersioning, wxID_ANY, _("Naming convention:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ bSizer192->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ wxArrayString m_choiceVersioningStyleChoices;
+ m_choiceVersioningStyle = new wxChoice( m_panelVersioning, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceVersioningStyleChoices, 0 );
+ m_choiceVersioningStyle->SetSelection( 0 );
+ bSizer192->Add( m_choiceVersioningStyle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_staticTextNamingCvtPart1 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart1->Wrap( -1 );
+ m_staticTextNamingCvtPart1->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer192->Add( m_staticTextNamingCvtPart1, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextNamingCvtPart2Bold = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart2Bold->Wrap( -1 );
+ m_staticTextNamingCvtPart2Bold->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_staticTextNamingCvtPart2Bold->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer192->Add( m_staticTextNamingCvtPart2Bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextNamingCvtPart3 = new wxStaticText( m_panelVersioning, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextNamingCvtPart3->Wrap( -1 );
+ m_staticTextNamingCvtPart3->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer192->Add( m_staticTextNamingCvtPart3, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer192->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panelVersioning, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer192->Add( m_hyperlink17, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ bSizer191->Add( bSizer192, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelVersioning->SetSizer( bSizer191 );
+ m_panelVersioning->Layout();
+ bSizer191->Fit( m_panelVersioning );
+ bSizerVersioning->Add( m_panelVersioning, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+
+ bSizer184->Add( bSizerVersioning, 0, wxTOP|wxEXPAND, 5 );
+
+
+ bSizer232->Add( bSizer184, 0, wxALL|wxEXPAND, 10 );
+
+ bSizerMiscConfig = new wxBoxSizer( wxVERTICAL );
+
+ m_staticline582 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerMiscConfig->Add( m_staticline582, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer1732;
+ bSizer1732 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText88 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText88->Wrap( -1 );
+ bSizer174->Add( m_staticText88, 0, wxBOTTOM, 5 );
+
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_radioBtnIgnoreErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
+ m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
+
+ bSizer175->Add( m_radioBtnIgnoreErrors, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_radioBtnPopupOnErrors = new wxRadioButton( m_panelSyncSettings, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
+
+ bSizer175->Add( m_radioBtnPopupOnErrors, 0, wxALL, 5 );
+
+
+ bSizer174->Add( bSizer175, 0, 0, 5 );
+
+
+ bSizer1732->Add( bSizer174, 0, wxALL, 10 );
+
+ m_staticline57 = new wxStaticLine( m_panelSyncSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1732->Add( m_staticline57, 0, wxEXPAND, 5 );
+
+ bSizerOnCompletion = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText89 = new wxStaticText( m_panelSyncSettings, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText89->Wrap( -1 );
+ bSizerOnCompletion->Add( m_staticText89, 0, wxBOTTOM, 5 );
+
+ m_comboBoxOnCompletion = new OnCompletionBox( m_panelSyncSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizerOnCompletion->Add( m_comboBoxOnCompletion, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer1732->Add( bSizerOnCompletion, 1, wxALL, 10 );
+
+
+ bSizerMiscConfig->Add( bSizer1732, 1, wxEXPAND, 5 );
+
+
+ bSizer232->Add( bSizerMiscConfig, 1, wxEXPAND, 5 );
+
+
+ m_panelSyncSettings->SetSizer( bSizer232 );
+ m_panelSyncSettings->Layout();
+ bSizer232->Fit( m_panelSyncSettings );
+ bSizer276->Add( m_panelSyncSettings, 1, wxEXPAND, 5 );
+
+
+ m_panelSyncSettingsHolder->SetSizer( bSizer276 );
+ m_panelSyncSettingsHolder->Layout();
+ bSizer276->Fit( m_panelSyncSettingsHolder );
+ m_notebook->AddPage( m_panelSyncSettingsHolder, _("dummy"), false );
+
+ bSizer190->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer7->Add( bSizer190, 1, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer7->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer7 );
+ this->Layout();
+ bSizer7->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( ConfigDlgGenerated::OnClose ) );
+ m_listBoxFolderPair->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onListBoxKeyEvent ), NULL, this );
+ m_listBoxFolderPair->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnSelectFolderPair ), NULL, this );
+ m_checkBoxUseLocalCmpOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalCompSettings ), NULL, this );
+ m_toggleBtnByTimeSize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompByTimeSizeDouble ), NULL, this );
+ m_toggleBtnByTimeSize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompByTimeSize ), NULL, this );
+ m_toggleBtnByContent->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompByContentDouble ), NULL, this );
+ m_toggleBtnByContent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompByContent ), NULL, this );
+ m_toggleBtnBySize->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnCompBySizeDouble ), NULL, this );
+ m_toggleBtnBySize->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCompBySize ), NULL, this );
+ m_checkBoxSymlinksInclude->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeCompOption ), NULL, this );
+ m_hyperlink24->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpComparisonSettings ), NULL, this );
+ m_textCtrlTimeShift->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( ConfigDlgGenerated::onlTimeShiftKeyDown ), NULL, this );
+ m_hyperlink241->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpTimeShift ), NULL, this );
+ m_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_hyperlink171->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpShowExamples ), NULL, this );
+ m_textCtrlExclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_choiceUnitTimespan->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_choiceUnitMinSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_choiceUnitMaxSize->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
+ m_buttonClear->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnFilterReset ), NULL, this );
+ m_checkBoxUseLocalSyncOptions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleLocalSyncSettings ), NULL, this );
+ m_toggleBtnTwoWay->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncTwoWayDouble ), NULL, this );
+ m_toggleBtnTwoWay->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncTwoWay ), NULL, this );
+ m_toggleBtnMirror->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncMirrorDouble ), NULL, this );
+ m_toggleBtnMirror->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncMirror ), NULL, this );
+ m_toggleBtnUpdate->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncUpdateDouble ), NULL, this );
+ m_toggleBtnUpdate->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncUpdate ), NULL, this );
+ m_toggleBtnCustom->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( ConfigDlgGenerated::OnSyncCustomDouble ), NULL, this );
+ m_toggleBtnCustom->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnSyncCustom ), NULL, this );
+ m_checkBoxDetectMove->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDetectMovedFiles ), NULL, this );
+ m_bpButtonLeftOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExLeftSideOnly ), NULL, this );
+ m_bpButtonLeftNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnLeftNewer ), NULL, this );
+ m_bpButtonDifferent->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnDifferent ), NULL, this );
+ m_bpButtonConflict->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnConflict ), NULL, this );
+ m_bpButtonRightNewer->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnRightNewer ), NULL, this );
+ m_bpButtonRightOnly->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnExRightSideOnly ), NULL, this );
+ m_radioBtnPermanent->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionPermanent ), NULL, this );
+ m_radioBtnRecycler->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionRecycler ), NULL, this );
+ m_radioBtnVersioning->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnDeletionVersioning ), NULL, this );
+ m_bpButtonDeletionType->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnToggleDeletionType ), NULL, this );
+ m_choiceVersioningStyle->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeSyncOption ), NULL, this );
+ m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpVersioning ), NULL, this );
+ m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( ConfigDlgGenerated::OnErrorPopup ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnCancel ), NULL, this );
}
ConfigDlgGenerated::~ConfigDlgGenerated()
@@ -1914,98 +1920,98 @@ ConfigDlgGenerated::~ConfigDlgGenerated()
FolderPairPanelGenerated::FolderPairPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- wxBoxSizer* bSizer74;
- bSizer74 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelLeft->SetMinSize( wxSize( 1,-1 ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonFolderPairOptions = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonFolderPairOptions->SetToolTip( _("Arrange folder pair") );
-
- bSizer134->Add( m_bpButtonFolderPairOptions, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
-
- bSizer134->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_folderPathLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer134->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
-
- bSizer134->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
-
- bSizer134->Add( m_bpButtonSelectAltFolderLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelLeft->SetSizer( bSizer134 );
- m_panelLeft->Layout();
- bSizer134->Fit( m_panelLeft );
- bSizer74->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
-
- m_panel20 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bpButtonAltCompCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonAltSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
- bSizer95->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panel20->SetSizer( bSizer95 );
- m_panel20->Layout();
- bSizer95->Fit( m_panel20 );
- bSizer74->Add( m_panel20, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelRight->SetMinSize( wxSize( 1,-1 ) );
-
- wxBoxSizer* bSizer135;
- bSizer135 = new wxBoxSizer( wxHORIZONTAL );
-
- m_folderPathRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer135->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolderRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
-
- bSizer135->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
-
- bSizer135->Add( m_bpButtonSelectAltFolderRight, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- m_panelRight->SetSizer( bSizer135 );
- m_panelRight->Layout();
- bSizer135->Fit( m_panelRight );
- bSizer74->Add( m_panelRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer74 );
- this->Layout();
- bSizer74->Fit( this );
+ wxBoxSizer* bSizer74;
+ bSizer74 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelLeft = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelLeft->SetMinSize( wxSize( 1,-1 ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonFolderPairOptions = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonFolderPairOptions->SetToolTip( _("Arrange folder pair") );
+
+ bSizer134->Add( m_bpButtonFolderPairOptions, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonRemovePair = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ m_bpButtonRemovePair->SetToolTip( _("Remove folder pair") );
+
+ bSizer134->Add( m_bpButtonRemovePair, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_folderPathLeft = new FolderHistoryBox( m_panelLeft, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer134->Add( m_folderPathLeft, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderLeft = new wxButton( m_panelLeft, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderLeft->SetToolTip( _("Select a folder") );
+
+ bSizer134->Add( m_buttonSelectFolderLeft, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderLeft = new wxBitmapButton( m_panelLeft, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderLeft->SetToolTip( _("Select SFTP folder") );
+
+ bSizer134->Add( m_bpButtonSelectAltFolderLeft, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelLeft->SetSizer( bSizer134 );
+ m_panelLeft->Layout();
+ bSizer134->Fit( m_panelLeft );
+ bSizer74->Add( m_panelLeft, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxEXPAND, 5 );
+
+ m_panel20 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bpButtonAltCompCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonAltCompCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonLocalFilter = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonLocalFilter, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonAltSyncCfg = new wxBitmapButton( m_panel20, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,25 ), wxBU_AUTODRAW );
+ bSizer95->Add( m_bpButtonAltSyncCfg, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer95->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panel20->SetSizer( bSizer95 );
+ m_panel20->Layout();
+ bSizer95->Fit( m_panel20 );
+ bSizer74->Add( m_panel20, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ m_panelRight = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelRight->SetMinSize( wxSize( 1,-1 ) );
+
+ wxBoxSizer* bSizer135;
+ bSizer135 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_folderPathRight = new FolderHistoryBox( m_panelRight, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer135->Add( m_folderPathRight, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolderRight = new wxButton( m_panelRight, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolderRight->SetToolTip( _("Select a folder") );
+
+ bSizer135->Add( m_buttonSelectFolderRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltFolderRight = new wxBitmapButton( m_panelRight, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltFolderRight->SetToolTip( _("Select SFTP folder") );
+
+ bSizer135->Add( m_bpButtonSelectAltFolderRight, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ m_panelRight->SetSizer( bSizer135 );
+ m_panelRight->Layout();
+ bSizer135->Fit( m_panelRight );
+ bSizer74->Add( m_panelRight, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer74 );
+ this->Layout();
+ bSizer74->Fit( this );
}
FolderPairPanelGenerated::~FolderPairPanelGenerated()
@@ -2014,173 +2020,173 @@ FolderPairPanelGenerated::~FolderPairPanelGenerated()
SftpSetupDlgGenerated::SftpSetupDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Enter your SFTP login details:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer134->Add( bSizer72, 0, 0, 5 );
-
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
-
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
- wxFlexGridSizer* fgSizer16;
- fgSizer16 = new wxFlexGridSizer( 0, 2, 0, 0 );
- fgSizer16->AddGrowableCol( 1 );
- fgSizer16->SetFlexibleDirection( wxBOTH );
- fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticText12311 = new wxStaticText( m_panel41, wxID_ANY, _("Server name or IP address:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText12311->Wrap( -1 );
- fgSizer16->Add( m_staticText12311, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxHORIZONTAL );
-
- m_textCtrlServer = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 260,-1 ), 0 );
- bSizer183->Add( m_textCtrlServer, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText1233 = new wxStaticText( m_panel41, wxID_ANY, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1233->Wrap( -1 );
- bSizer183->Add( m_staticText1233, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_textCtrlPort = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), 0 );
- bSizer183->Add( m_textCtrlPort, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- fgSizer16->Add( bSizer183, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- fgSizer16->Add( 0, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText1381 = new wxStaticText( m_panel41, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1381->Wrap( -1 );
- m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer181->Add( m_staticText1381, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT, 5 );
-
- m_staticText1382 = new wxStaticText( m_panel41, wxID_ANY, _("www.website.com"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1382->Wrap( -1 );
- m_staticText1382->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer181->Add( m_staticText1382, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticText138 = new wxStaticText( m_panel41, wxID_ANY, _("123.123.123"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText138->Wrap( -1 );
- m_staticText138->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer181->Add( m_staticText138, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- fgSizer16->Add( bSizer181, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText123 = new wxStaticText( m_panel41, wxID_ANY, _("User name:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText123->Wrap( -1 );
- fgSizer16->Add( m_staticText123, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- m_textCtrlUserName = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer16->Add( m_textCtrlUserName, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText1231 = new wxStaticText( m_panel41, wxID_ANY, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1231->Wrap( -1 );
- fgSizer16->Add( m_staticText1231, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxVERTICAL );
-
- m_textCtrlPasswordVisible = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer182->Add( m_textCtrlPasswordVisible, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_textCtrlPasswordHidden = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
- bSizer182->Add( m_textCtrlPasswordHidden, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
-
- fgSizer16->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- fgSizer16->Add( 0, 0, 0, 0, 5 );
-
- m_checkBoxShowPassword = new wxCheckBox( m_panel41, wxID_ANY, _("&Show password"), wxDefaultPosition, wxDefaultSize, 0 );
- fgSizer16->Add( m_checkBoxShowPassword, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_staticText1232 = new wxStaticText( m_panel41, wxID_ANY, _("Directory on server:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1232->Wrap( -1 );
- fgSizer16->Add( m_staticText1232, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
- wxBoxSizer* bSizer206;
- bSizer206 = new wxBoxSizer( wxHORIZONTAL );
-
- m_textCtrlServerPath = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer206->Add( m_textCtrlServerPath, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectFolder = new wxButton( m_panel41, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectFolder->SetToolTip( _("Select a folder") );
-
- bSizer206->Add( m_buttonSelectFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- fgSizer16->Add( bSizer206, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
-
-
- bSizer185->Add( fgSizer16, 1, wxALL, 5 );
-
-
- m_panel41->SetSizer( bSizer185 );
- m_panel41->Layout();
- bSizer185->Fit( m_panel41 );
- bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpSetupDlgGenerated::OnClose ) );
- m_checkBoxShowPassword->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnToggleShowPassword ), NULL, this );
- m_buttonSelectFolder->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnBrowseSftpFolder ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Enter your SFTP login details:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer134->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxFlexGridSizer* fgSizer16;
+ fgSizer16 = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizer16->AddGrowableCol( 1 );
+ fgSizer16->SetFlexibleDirection( wxBOTH );
+ fgSizer16->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticText12311 = new wxStaticText( m_panel41, wxID_ANY, _("Server name or IP address:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText12311->Wrap( -1 );
+ fgSizer16->Add( m_staticText12311, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_textCtrlServer = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 260,-1 ), 0 );
+ bSizer183->Add( m_textCtrlServer, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText1233 = new wxStaticText( m_panel41, wxID_ANY, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1233->Wrap( -1 );
+ bSizer183->Add( m_staticText1233, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_textCtrlPort = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), 0 );
+ bSizer183->Add( m_textCtrlPort, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ fgSizer16->Add( bSizer183, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ fgSizer16->Add( 0, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText1381 = new wxStaticText( m_panel41, wxID_ANY, _("Example:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1381->Wrap( -1 );
+ m_staticText1381->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer181->Add( m_staticText1381, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT, 5 );
+
+ m_staticText1382 = new wxStaticText( m_panel41, wxID_ANY, _("www.website.com"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1382->Wrap( -1 );
+ m_staticText1382->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer181->Add( m_staticText1382, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticText138 = new wxStaticText( m_panel41, wxID_ANY, _("123.123.123"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText138->Wrap( -1 );
+ m_staticText138->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer181->Add( m_staticText138, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ fgSizer16->Add( bSizer181, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText123 = new wxStaticText( m_panel41, wxID_ANY, _("User name:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText123->Wrap( -1 );
+ fgSizer16->Add( m_staticText123, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ m_textCtrlUserName = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_textCtrlUserName, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText1231 = new wxStaticText( m_panel41, wxID_ANY, _("Password:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1231->Wrap( -1 );
+ fgSizer16->Add( m_staticText1231, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxVERTICAL );
+
+ m_textCtrlPasswordVisible = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer182->Add( m_textCtrlPasswordVisible, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_textCtrlPasswordHidden = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD );
+ bSizer182->Add( m_textCtrlPasswordHidden, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+
+ fgSizer16->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ fgSizer16->Add( 0, 0, 0, 0, 5 );
+
+ m_checkBoxShowPassword = new wxCheckBox( m_panel41, wxID_ANY, _("&Show password"), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer16->Add( m_checkBoxShowPassword, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_staticText1232 = new wxStaticText( m_panel41, wxID_ANY, _("Directory on server:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText1232->Wrap( -1 );
+ fgSizer16->Add( m_staticText1232, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer206;
+ bSizer206 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_textCtrlServerPath = new wxTextCtrl( m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer206->Add( m_textCtrlServerPath, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectFolder = new wxButton( m_panel41, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectFolder->SetToolTip( _("Select a folder") );
+
+ bSizer206->Add( m_buttonSelectFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ fgSizer16->Add( bSizer206, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
+
+
+ bSizer185->Add( fgSizer16, 1, wxALL, 5 );
+
+
+ m_panel41->SetSizer( bSizer185 );
+ m_panel41->Layout();
+ bSizer185->Fit( m_panel41 );
+ bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpSetupDlgGenerated::OnClose ) );
+ m_checkBoxShowPassword->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnToggleShowPassword ), NULL, this );
+ m_buttonSelectFolder->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnBrowseSftpFolder ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpSetupDlgGenerated::OnCancel ), NULL, this );
}
SftpSetupDlgGenerated::~SftpSetupDlgGenerated()
@@ -2189,72 +2195,72 @@ SftpSetupDlgGenerated::~SftpSetupDlgGenerated()
SftpFolderPickerGenerated::SftpFolderPickerGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Select a directory on the server:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer134->Add( bSizer72, 0, 0, 5 );
-
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
-
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxVERTICAL );
-
- m_treeCtrlFileSystem = new wxTreeCtrl( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( 350,400 ), wxTR_FULL_ROW_HIGHLIGHT|wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_NO_LINES|wxNO_BORDER );
- bSizer185->Add( m_treeCtrlFileSystem, 1, wxEXPAND, 5 );
-
-
- m_panel41->SetSizer( bSizer185 );
- m_panel41->Layout();
- bSizer185->Fit( m_panel41 );
- bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("Select Folder"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpFolderPickerGenerated::OnClose ) );
- m_treeCtrlFileSystem->Connect( wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler( SftpFolderPickerGenerated::OnExpandNode ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSftp = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapSftp, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Select a directory on the server:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer134->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxVERTICAL );
+
+ m_treeCtrlFileSystem = new wxTreeCtrl( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( 350,400 ), wxTR_FULL_ROW_HIGHLIGHT|wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_NO_LINES|wxNO_BORDER );
+ bSizer185->Add( m_treeCtrlFileSystem, 1, wxEXPAND, 5 );
+
+
+ m_panel41->SetSizer( bSizer185 );
+ m_panel41->Layout();
+ bSizer185->Fit( m_panel41 );
+ bSizer134->Add( m_panel41, 1, wxEXPAND, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("Select Folder"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer134->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SftpFolderPickerGenerated::OnClose ) );
+ m_treeCtrlFileSystem->Connect( wxEVT_COMMAND_TREE_ITEM_EXPANDING, wxTreeEventHandler( SftpFolderPickerGenerated::OnExpandNode ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SftpFolderPickerGenerated::OnCancel ), NULL, this );
}
SftpFolderPickerGenerated::~SftpFolderPickerGenerated()
@@ -2263,221 +2269,221 @@ SftpFolderPickerGenerated::~SftpFolderPickerGenerated()
SyncConfirmationDlgGenerated::SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer134;
- bSizer134 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSync = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapSync, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Start synchronization now?"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer134->Add( bSizer72, 0, 0, 5 );
-
- m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
-
- m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer185->Add( 40, 0, 0, 0, 5 );
-
-
- bSizer185->Add( 0, 0, 1, 0, 5 );
-
- m_staticline38 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline38, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText84 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Variant:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText84->Wrap( -1 );
- bSizer182->Add( m_staticText84, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
-
-
- bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_staticTextVariant = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextVariant->Wrap( -1 );
- m_staticTextVariant->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer182->Add( m_staticTextVariant, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer162->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
-
- m_staticline14 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer162->Add( m_staticline14, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText83 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText83->Wrap( -1 );
- bSizer181->Add( m_staticText83, 0, wxALL, 5 );
-
- wxFlexGridSizer* fgSizer11;
- fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
- fgSizer11->SetFlexibleDirection( wxBOTH );
- fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapData->SetToolTip( _("Total bytes to copy") );
-
- fgSizer11->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteLeft->Wrap( -1 );
- m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateLeft->Wrap( -1 );
- m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateLeft->Wrap( -1 );
- m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextData->Wrap( -1 );
- m_staticTextData->SetToolTip( _("Total bytes to copy") );
-
- fgSizer11->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextCreateRight->Wrap( -1 );
- m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
-
- fgSizer11->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextUpdateRight->Wrap( -1 );
- m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
-
- fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDeleteRight->Wrap( -1 );
- m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
-
- fgSizer11->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer181->Add( fgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer162->Add( bSizer181, 0, wxEXPAND|wxALL, 5 );
-
-
- bSizer185->Add( bSizer162, 0, 0, 5 );
-
- m_staticline381 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline381, 0, wxEXPAND, 5 );
-
-
- bSizer185->Add( 0, 0, 1, 0, 5 );
-
-
- bSizer185->Add( 40, 0, 0, 0, 5 );
-
-
- m_panelStatistics->SetSizer( bSizer185 );
- m_panelStatistics->Layout();
- bSizer185->Fit( m_panelStatistics );
- bSizer134->Add( m_panelStatistics, 0, wxEXPAND, 5 );
-
- m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer164;
- bSizer164 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer164->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonStartSync = new wxButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonStartSync->SetDefault();
- m_buttonStartSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer164->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- bSizer134->Add( bSizer164, 1, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer134 );
- this->Layout();
- bSizer134->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncConfirmationDlgGenerated::OnClose ) );
- m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnStartSync ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer134;
+ bSizer134 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSync = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapSync, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("Start synchronization now?"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer134->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline371 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline371, 0, wxEXPAND, 5 );
+
+ m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer185->Add( 40, 0, 0, 0, 5 );
+
+
+ bSizer185->Add( 0, 0, 1, 0, 5 );
+
+ m_staticline38 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline38, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText84 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Variant:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText84->Wrap( -1 );
+ bSizer182->Add( m_staticText84, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );
+
+
+ bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_staticTextVariant = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextVariant->Wrap( -1 );
+ m_staticTextVariant->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer182->Add( m_staticTextVariant, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ bSizer182->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer162->Add( bSizer182, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxALL, 5 );
+
+ m_staticline14 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer162->Add( m_staticline14, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText83 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Statistics:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText83->Wrap( -1 );
+ bSizer181->Add( m_staticText83, 0, wxALL, 5 );
+
+ wxFlexGridSizer* fgSizer11;
+ fgSizer11 = new wxFlexGridSizer( 2, 7, 2, 5 );
+ fgSizer11->SetFlexibleDirection( wxBOTH );
+ fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_bitmapDeleteLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_bitmapDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapUpdateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bitmapCreateLeft = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_bitmapCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapData = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapData->SetToolTip( _("Total bytes to copy") );
+
+ fgSizer11->Add( m_bitmapData, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapCreateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_bitmapCreateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapUpdateRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bitmapDeleteRight = new wxStaticBitmap( m_panelStatistics, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ m_bitmapDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_bitmapDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextDeleteLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteLeft->Wrap( -1 );
+ m_staticTextDeleteLeft->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_staticTextDeleteLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextUpdateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateLeft->Wrap( -1 );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticTextCreateLeft = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateLeft->Wrap( -1 );
+ m_staticTextCreateLeft->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_staticTextCreateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticTextData = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextData->Wrap( -1 );
+ m_staticTextData->SetToolTip( _("Total bytes to copy") );
+
+ fgSizer11->Add( m_staticTextData, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextCreateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextCreateRight->Wrap( -1 );
+ m_staticTextCreateRight->SetToolTip( _("Number of files and folders that will be created") );
+
+ fgSizer11->Add( m_staticTextCreateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextUpdateRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextUpdateRight->Wrap( -1 );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
+
+ fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextDeleteRight = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDeleteRight->Wrap( -1 );
+ m_staticTextDeleteRight->SetToolTip( _("Number of files and folders that will be deleted") );
+
+ fgSizer11->Add( m_staticTextDeleteRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer181->Add( fgSizer11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer162->Add( bSizer181, 0, wxEXPAND|wxALL, 5 );
+
+
+ bSizer185->Add( bSizer162, 0, 0, 5 );
+
+ m_staticline381 = new wxStaticLine( m_panelStatistics, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline381, 0, wxEXPAND, 5 );
+
+
+ bSizer185->Add( 0, 0, 1, 0, 5 );
+
+
+ bSizer185->Add( 40, 0, 0, 0, 5 );
+
+
+ m_panelStatistics->SetSizer( bSizer185 );
+ m_panelStatistics->Layout();
+ bSizer185->Fit( m_panelStatistics );
+ bSizer134->Add( m_panelStatistics, 0, wxEXPAND, 5 );
+
+ m_staticline12 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer134->Add( m_staticline12, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer164;
+ bSizer164 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxDontShowAgain = new wxCheckBox( this, wxID_ANY, _("&Don't show this dialog again"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer164->Add( m_checkBoxDontShowAgain, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonStartSync = new wxButton( this, wxID_OK, _("Start"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonStartSync->SetDefault();
+ m_buttonStartSync->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonStartSync, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer164->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ bSizer134->Add( bSizer164, 1, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer134 );
+ this->Layout();
+ bSizer134->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SyncConfirmationDlgGenerated::OnClose ) );
+ m_buttonStartSync->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnStartSync ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SyncConfirmationDlgGenerated::OnCancel ), NULL, this );
}
SyncConfirmationDlgGenerated::~SyncConfirmationDlgGenerated()
@@ -2486,110 +2492,110 @@ SyncConfirmationDlgGenerated::~SyncConfirmationDlgGenerated()
CompareProgressDlgGenerated::CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer40;
- bSizer40 = new wxBoxSizer( wxHORIZONTAL );
-
- m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer187;
- bSizer187 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer187->Add( 0, 5, 0, 0, 5 );
-
- wxFlexGridSizer* fgSizer7;
- fgSizer7 = new wxFlexGridSizer( 0, 2, 5, 5 );
- fgSizer7->SetFlexibleDirection( wxHORIZONTAL );
- fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticTextItemsFoundLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items found:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsFoundLabel->Wrap( -1 );
- fgSizer7->Add( m_staticTextItemsFoundLabel, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextItemsFound = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsFound->Wrap( -1 );
- m_staticTextItemsFound->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer7->Add( m_staticTextItemsFound, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextItemsRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsRemainingLabel->Wrap( -1 );
- fgSizer7->Add( m_staticTextItemsRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
-
- bSizerItemsRemaining = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextItemsRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextItemsRemaining->Wrap( -1 );
- m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerItemsRemaining->Add( m_staticTextItemsRemaining, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextDataRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDataRemaining->Wrap( -1 );
- bSizerItemsRemaining->Add( m_staticTextDataRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- fgSizer7->Add( bSizerItemsRemaining, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextTimeRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemainingLabel->Wrap( -1 );
- fgSizer7->Add( m_staticTextTimeRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextTimeRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeRemaining->Wrap( -1 );
- m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer7->Add( m_staticTextTimeRemaining, 0, wxALIGN_BOTTOM, 5 );
-
- wxStaticText* m_staticText37;
- m_staticText37 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText37->Wrap( -1 );
- fgSizer7->Add( m_staticText37, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextTimeElapsed = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- fgSizer7->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM, 5 );
-
-
- bSizer187->Add( fgSizer7, 0, wxRIGHT|wxLEFT, 5 );
-
-
- bSizer187->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelStatistics->SetSizer( bSizer187 );
- m_panelStatistics->Layout();
- bSizer187->Fit( m_panelStatistics );
- bSizer40->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- bSizer181->Add( m_staticTextStatus, 0, 0, 5 );
-
- m_gauge2 = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( -1,14 ), wxGA_HORIZONTAL|wxGA_SMOOTH );
- bSizer181->Add( m_gauge2, 0, wxEXPAND|wxTOP, 5 );
-
- m_staticTextSpeed = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextSpeed->Wrap( -1 );
- m_staticTextSpeed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer181->Add( m_staticTextSpeed, 0, wxALIGN_BOTTOM|wxTOP, 5 );
-
-
- bSizer40->Add( bSizer181, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
-
- this->SetSizer( bSizer40 );
- this->Layout();
- bSizer40->Fit( this );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer40;
+ bSizer40 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_panelStatistics = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelStatistics->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer187;
+ bSizer187 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer187->Add( 0, 5, 0, 0, 5 );
+
+ wxFlexGridSizer* fgSizer7;
+ fgSizer7 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ fgSizer7->SetFlexibleDirection( wxHORIZONTAL );
+ fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticTextItemsFoundLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items found:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsFoundLabel->Wrap( -1 );
+ fgSizer7->Add( m_staticTextItemsFoundLabel, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextItemsFound = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsFound->Wrap( -1 );
+ m_staticTextItemsFound->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer7->Add( m_staticTextItemsFound, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextItemsRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsRemainingLabel->Wrap( -1 );
+ fgSizer7->Add( m_staticTextItemsRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
+
+ bSizerItemsRemaining = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextItemsRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextItemsRemaining->Wrap( -1 );
+ m_staticTextItemsRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerItemsRemaining->Add( m_staticTextItemsRemaining, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextDataRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDataRemaining->Wrap( -1 );
+ bSizerItemsRemaining->Add( m_staticTextDataRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ fgSizer7->Add( bSizerItemsRemaining, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextTimeRemainingLabel = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemainingLabel->Wrap( -1 );
+ fgSizer7->Add( m_staticTextTimeRemainingLabel, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextTimeRemaining = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeRemaining->Wrap( -1 );
+ m_staticTextTimeRemaining->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer7->Add( m_staticTextTimeRemaining, 0, wxALIGN_BOTTOM, 5 );
+
+ wxStaticText* m_staticText37;
+ m_staticText37 = new wxStaticText( m_panelStatistics, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText37->Wrap( -1 );
+ fgSizer7->Add( m_staticText37, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextTimeElapsed = new wxStaticText( m_panelStatistics, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ fgSizer7->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM, 5 );
+
+
+ bSizer187->Add( fgSizer7, 0, wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer187->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelStatistics->SetSizer( bSizer187 );
+ m_panelStatistics->Layout();
+ bSizer187->Fit( m_panelStatistics );
+ bSizer40->Add( m_panelStatistics, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ bSizer181->Add( m_staticTextStatus, 0, 0, 5 );
+
+ m_gauge2 = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( -1,14 ), wxGA_HORIZONTAL|wxGA_SMOOTH );
+ bSizer181->Add( m_gauge2, 0, wxEXPAND|wxTOP, 5 );
+
+ m_staticTextSpeed = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextSpeed->Wrap( -1 );
+ m_staticTextSpeed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer181->Add( m_staticTextSpeed, 0, wxALIGN_BOTTOM|wxTOP, 5 );
+
+
+ bSizer40->Add( bSizer181, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+
+ this->SetSizer( bSizer40 );
+ this->Layout();
+ bSizer40->Fit( this );
}
CompareProgressDlgGenerated::~CompareProgressDlgGenerated()
@@ -2598,320 +2604,320 @@ CompareProgressDlgGenerated::~CompareProgressDlgGenerated()
SyncProgressPanelGenerated::SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- bSizerRoot = new wxBoxSizer( wxVERTICAL );
-
- bSizer42 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer42->Add( 32, 0, 0, 0, 5 );
-
-
- bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapStatus = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
- bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
-
- m_staticTextPhase = new wxStaticText( this, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextPhase->Wrap( -1 );
- m_staticTextPhase->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer42->Add( m_staticTextPhase, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
-
- m_animCtrlSyncing = new wxAnimationCtrl( this, wxID_ANY, wxNullAnimation, wxDefaultPosition, wxSize( 32,32 ), wxAC_DEFAULT_STYLE );
- bSizer42->Add( m_animCtrlSyncing, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
-
-
- bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bpButtonMinimizeToTray = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), wxBU_AUTODRAW );
- m_bpButtonMinimizeToTray->SetToolTip( _("Minimize to notification area") );
-
- bSizer42->Add( m_bpButtonMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerRoot->Add( bSizer42, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
- bSizerStatusText = new wxBoxSizer( wxVERTICAL );
-
- m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextStatus->Wrap( -1 );
- bSizerStatusText->Add( m_staticTextStatus, 0, wxEXPAND|wxLEFT, 10 );
-
-
- bSizerStatusText->Add( 0, 5, 0, 0, 5 );
-
-
- bSizerRoot->Add( bSizerStatusText, 0, wxEXPAND, 5 );
-
- wxStaticLine* m_staticlineHeader;
- m_staticlineHeader = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerRoot->Add( m_staticlineHeader, 0, wxEXPAND, 5 );
-
- m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer173;
- bSizer173 = new wxBoxSizer( wxVERTICAL );
-
- bSizer171 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer171->Add( 10, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer164;
- bSizer164 = new wxBoxSizer( wxVERTICAL );
-
- m_panelItemsProcessed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelItemsProcessed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer165;
- bSizer165 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer165->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText96;
- m_staticText96 = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- bSizer165->Add( m_staticText96, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer169;
- bSizer169 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextProcessedObj = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticTextProcessedObj->Wrap( -1 );
- m_staticTextProcessedObj->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer169->Add( m_staticTextProcessedObj, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextDataProcessed = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDataProcessed->Wrap( -1 );
- bSizer169->Add( m_staticTextDataProcessed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- bSizer165->Add( bSizer169, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer165->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelItemsProcessed->SetSizer( bSizer165 );
- m_panelItemsProcessed->Layout();
- bSizer165->Fit( m_panelItemsProcessed );
- bSizer164->Add( m_panelItemsProcessed, 0, wxEXPAND|wxTOP, 7 );
-
- m_panelItemsRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelItemsRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer166->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText97;
- m_staticText97 = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText97->Wrap( -1 );
- bSizer166->Add( m_staticText97, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer170;
- bSizer170 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticTextRemainingObj = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticTextRemainingObj->Wrap( -1 );
- m_staticTextRemainingObj->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer170->Add( m_staticTextRemainingObj, 0, wxALIGN_BOTTOM, 5 );
-
- m_staticTextDataRemaining = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDataRemaining->Wrap( -1 );
- bSizer170->Add( m_staticTextDataRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
-
-
- bSizer166->Add( bSizer170, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer166->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelItemsRemaining->SetSizer( bSizer166 );
- m_panelItemsRemaining->Layout();
- bSizer166->Fit( m_panelItemsRemaining );
- bSizer164->Add( m_panelItemsRemaining, 0, wxTOP|wxEXPAND, 7 );
-
- m_panelTimeRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelTimeRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer167;
- bSizer167 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer167->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText98;
- m_staticText98 = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText98->Wrap( -1 );
- bSizer167->Add( m_staticText98, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticTextRemTime = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextRemTime->Wrap( -1 );
- m_staticTextRemTime->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer167->Add( m_staticTextRemTime, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer167->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelTimeRemaining->SetSizer( bSizer167 );
- m_panelTimeRemaining->Layout();
- bSizer167->Fit( m_panelTimeRemaining );
- bSizer164->Add( m_panelTimeRemaining, 0, wxTOP|wxEXPAND, 7 );
-
- wxPanel* m_panelTimeElapsed;
- m_panelTimeElapsed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
- m_panelTimeElapsed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer168;
- bSizer168 = new wxBoxSizer( wxVERTICAL );
-
-
- bSizer168->Add( 0, 5, 0, 0, 5 );
-
- wxStaticText* m_staticText961;
- m_staticText961 = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText961->Wrap( -1 );
- bSizer168->Add( m_staticText961, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
- m_staticTextTimeElapsed = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextTimeElapsed->Wrap( -1 );
- m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer168->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer168->Add( 0, 5, 0, 0, 5 );
-
-
- m_panelTimeElapsed->SetSizer( bSizer168 );
- m_panelTimeElapsed->Layout();
- bSizer168->Fit( m_panelTimeElapsed );
- bSizer164->Add( m_panelTimeElapsed, 0, wxTOP|wxEXPAND, 7 );
-
-
- bSizer171->Add( bSizer164, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer171->Add( 10, 0, 0, 0, 5 );
-
- wxBoxSizer* bSizer161;
- bSizer161 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer175;
- bSizer175 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapGraphKeyBytes = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer175->Add( m_bitmapGraphKeyBytes, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
-
- wxStaticText* m_staticText99;
- m_staticText99 = new wxStaticText( m_panelProgress, wxID_ANY, _("Bytes copied:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText99->Wrap( -1 );
- bSizer175->Add( m_staticText99, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer161->Add( bSizer175, 0, 0, 5 );
-
- m_panelGraphBytes = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_panelGraphBytes->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer161->Add( m_panelGraphBytes, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 15 );
-
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapGraphKeyItems = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer174->Add( m_bitmapGraphKeyItems, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
-
- wxStaticText* m_staticText100;
- m_staticText100 = new wxStaticText( m_panelProgress, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText100->Wrap( -1 );
- bSizer174->Add( m_staticText100, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer161->Add( bSizer174, 0, 0, 5 );
-
- m_panelGraphItems = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_panelGraphItems->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer161->Add( m_panelGraphItems, 1, wxEXPAND, 15 );
-
-
- bSizer161->Add( 450, 0, 0, 0, 5 );
-
-
- bSizer171->Add( bSizer161, 1, wxEXPAND, 5 );
-
-
- bSizer171->Add( 0, 310, 0, 0, 5 );
-
-
- bSizer173->Add( bSizer171, 1, wxEXPAND, 5 );
-
-
- m_panelProgress->SetSizer( bSizer173 );
- m_panelProgress->Layout();
- bSizer173->Fit( m_panelProgress );
- bSizerRoot->Add( m_panelProgress, 1, wxEXPAND, 5 );
-
- m_notebookResult = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_FIXEDWIDTH );
-
- bSizerRoot->Add( m_notebookResult, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_staticlineFooter = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizerRoot->Add( m_staticlineFooter, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxHORIZONTAL );
-
- bSizerOnCompletion = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText87 = new wxStaticText( this, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText87->Wrap( -1 );
- bSizerOnCompletion->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_comboBoxOnCompletion = new OnCompletionBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizerOnCompletion->Add( m_comboBoxOnCompletion, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer160->Add( bSizerOnCompletion, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer160->Add( 0, 0, 0, 0, 5 );
-
-
- bSizerStdButtons->Add( bSizer160, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
-
- m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonClose->SetDefault();
- m_buttonClose->Enable( false );
-
- bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonPause = new wxButton( this, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_buttonStop = new wxButton( this, wxID_CANCEL, _("Stop"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonStop, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizerRoot->Add( bSizerStdButtons, 0, wxALIGN_RIGHT|wxEXPAND, 5 );
-
-
- this->SetSizer( bSizerRoot );
- this->Layout();
- bSizerRoot->Fit( this );
+ bSizerRoot = new wxBoxSizer( wxVERTICAL );
+
+ bSizer42 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer42->Add( 32, 0, 0, 0, 5 );
+
+
+ bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapStatus = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), 0 );
+ bSizer42->Add( m_bitmapStatus, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+
+ m_staticTextPhase = new wxStaticText( this, wxID_ANY, _("Synchronizing..."), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextPhase->Wrap( -1 );
+ m_staticTextPhase->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer42->Add( m_staticTextPhase, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+
+ m_animCtrlSyncing = new wxAnimationCtrl( this, wxID_ANY, wxNullAnimation, wxDefaultPosition, wxSize( 32,32 ), wxAC_DEFAULT_STYLE );
+ bSizer42->Add( m_animCtrlSyncing, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 );
+
+
+ bSizer42->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bpButtonMinimizeToTray = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 32,32 ), wxBU_AUTODRAW );
+ m_bpButtonMinimizeToTray->SetToolTip( _("Minimize to notification area") );
+
+ bSizer42->Add( m_bpButtonMinimizeToTray, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerRoot->Add( bSizer42, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+ bSizerStatusText = new wxBoxSizer( wxVERTICAL );
+
+ m_staticTextStatus = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextStatus->Wrap( -1 );
+ bSizerStatusText->Add( m_staticTextStatus, 0, wxEXPAND|wxLEFT, 10 );
+
+
+ bSizerStatusText->Add( 0, 5, 0, 0, 5 );
+
+
+ bSizerRoot->Add( bSizerStatusText, 0, wxEXPAND, 5 );
+
+ wxStaticLine* m_staticlineHeader;
+ m_staticlineHeader = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerRoot->Add( m_staticlineHeader, 0, wxEXPAND, 5 );
+
+ m_panelProgress = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelProgress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer173;
+ bSizer173 = new wxBoxSizer( wxVERTICAL );
+
+ bSizer171 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer171->Add( 10, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer164;
+ bSizer164 = new wxBoxSizer( wxVERTICAL );
+
+ m_panelItemsProcessed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelItemsProcessed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer165;
+ bSizer165 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer165->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText96;
+ m_staticText96 = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ bSizer165->Add( m_staticText96, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer169;
+ bSizer169 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextProcessedObj = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextProcessedObj->Wrap( -1 );
+ m_staticTextProcessedObj->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer169->Add( m_staticTextProcessedObj, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextDataProcessed = new wxStaticText( m_panelItemsProcessed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDataProcessed->Wrap( -1 );
+ bSizer169->Add( m_staticTextDataProcessed, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ bSizer165->Add( bSizer169, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer165->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelItemsProcessed->SetSizer( bSizer165 );
+ m_panelItemsProcessed->Layout();
+ bSizer165->Fit( m_panelItemsProcessed );
+ bSizer164->Add( m_panelItemsProcessed, 0, wxEXPAND|wxTOP, 7 );
+
+ m_panelItemsRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelItemsRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer166->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText97;
+ m_staticText97 = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("Items remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText97->Wrap( -1 );
+ bSizer166->Add( m_staticText97, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer170;
+ bSizer170 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticTextRemainingObj = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticTextRemainingObj->Wrap( -1 );
+ m_staticTextRemainingObj->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer170->Add( m_staticTextRemainingObj, 0, wxALIGN_BOTTOM, 5 );
+
+ m_staticTextDataRemaining = new wxStaticText( m_panelItemsRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDataRemaining->Wrap( -1 );
+ bSizer170->Add( m_staticTextDataRemaining, 0, wxLEFT|wxALIGN_BOTTOM, 5 );
+
+
+ bSizer166->Add( bSizer170, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer166->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelItemsRemaining->SetSizer( bSizer166 );
+ m_panelItemsRemaining->Layout();
+ bSizer166->Fit( m_panelItemsRemaining );
+ bSizer164->Add( m_panelItemsRemaining, 0, wxTOP|wxEXPAND, 7 );
+
+ m_panelTimeRemaining = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelTimeRemaining->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer167;
+ bSizer167 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer167->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText98;
+ m_staticText98 = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("Time remaining:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText98->Wrap( -1 );
+ bSizer167->Add( m_staticText98, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticTextRemTime = new wxStaticText( m_panelTimeRemaining, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextRemTime->Wrap( -1 );
+ m_staticTextRemTime->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer167->Add( m_staticTextRemTime, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer167->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelTimeRemaining->SetSizer( bSizer167 );
+ m_panelTimeRemaining->Layout();
+ bSizer167->Fit( m_panelTimeRemaining );
+ bSizer164->Add( m_panelTimeRemaining, 0, wxTOP|wxEXPAND, 7 );
+
+ wxPanel* m_panelTimeElapsed;
+ m_panelTimeElapsed = new wxPanel( m_panelProgress, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+ m_panelTimeElapsed->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer168;
+ bSizer168 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer168->Add( 0, 5, 0, 0, 5 );
+
+ wxStaticText* m_staticText961;
+ m_staticText961 = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("Time elapsed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText961->Wrap( -1 );
+ bSizer168->Add( m_staticText961, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_staticTextTimeElapsed = new wxStaticText( m_panelTimeElapsed, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextTimeElapsed->Wrap( -1 );
+ m_staticTextTimeElapsed->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer168->Add( m_staticTextTimeElapsed, 0, wxALIGN_BOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer168->Add( 0, 5, 0, 0, 5 );
+
+
+ m_panelTimeElapsed->SetSizer( bSizer168 );
+ m_panelTimeElapsed->Layout();
+ bSizer168->Fit( m_panelTimeElapsed );
+ bSizer164->Add( m_panelTimeElapsed, 0, wxTOP|wxEXPAND, 7 );
+
+
+ bSizer171->Add( bSizer164, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer171->Add( 10, 0, 0, 0, 5 );
+
+ wxBoxSizer* bSizer161;
+ bSizer161 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer175;
+ bSizer175 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapGraphKeyBytes = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer175->Add( m_bitmapGraphKeyBytes, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+
+ wxStaticText* m_staticText99;
+ m_staticText99 = new wxStaticText( m_panelProgress, wxID_ANY, _("Bytes copied:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText99->Wrap( -1 );
+ bSizer175->Add( m_staticText99, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer161->Add( bSizer175, 0, 0, 5 );
+
+ m_panelGraphBytes = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelGraphBytes->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer161->Add( m_panelGraphBytes, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 15 );
+
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapGraphKeyItems = new wxStaticBitmap( m_panelProgress, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer174->Add( m_bitmapGraphKeyItems, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
+
+ wxStaticText* m_staticText100;
+ m_staticText100 = new wxStaticText( m_panelProgress, wxID_ANY, _("Items processed:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText100->Wrap( -1 );
+ bSizer174->Add( m_staticText100, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer161->Add( bSizer174, 0, 0, 5 );
+
+ m_panelGraphItems = new zen::Graph2D( m_panelProgress, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_panelGraphItems->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer161->Add( m_panelGraphItems, 1, wxEXPAND, 15 );
+
+
+ bSizer161->Add( 450, 0, 0, 0, 5 );
+
+
+ bSizer171->Add( bSizer161, 1, wxEXPAND, 5 );
+
+
+ bSizer171->Add( 0, 310, 0, 0, 5 );
+
+
+ bSizer173->Add( bSizer171, 1, wxEXPAND, 5 );
+
+
+ m_panelProgress->SetSizer( bSizer173 );
+ m_panelProgress->Layout();
+ bSizer173->Fit( m_panelProgress );
+ bSizerRoot->Add( m_panelProgress, 1, wxEXPAND, 5 );
+
+ m_notebookResult = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_FIXEDWIDTH );
+
+ bSizerRoot->Add( m_notebookResult, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_staticlineFooter = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizerRoot->Add( m_staticlineFooter, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxHORIZONTAL );
+
+ bSizerOnCompletion = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText87 = new wxStaticText( this, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText87->Wrap( -1 );
+ bSizerOnCompletion->Add( m_staticText87, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_comboBoxOnCompletion = new OnCompletionBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizerOnCompletion->Add( m_comboBoxOnCompletion, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer160->Add( bSizerOnCompletion, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer160->Add( 0, 0, 0, 0, 5 );
+
+
+ bSizerStdButtons->Add( bSizer160, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+
+ m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonClose->SetDefault();
+ m_buttonClose->Enable( false );
+
+ bSizerStdButtons->Add( m_buttonClose, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonPause = new wxButton( this, wxID_ANY, _("&Pause"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonPause, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_buttonStop = new wxButton( this, wxID_CANCEL, _("Stop"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonStop, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizerRoot->Add( bSizerStdButtons, 0, wxALIGN_RIGHT|wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizerRoot );
+ this->Layout();
+ bSizerRoot->Fit( this );
}
SyncProgressPanelGenerated::~SyncProgressPanelGenerated()
@@ -2920,48 +2926,48 @@ SyncProgressPanelGenerated::~SyncProgressPanelGenerated()
LogPanelGenerated::LogPanelGenerated( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
{
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer153;
- bSizer153 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer154;
- bSizer154 = new wxBoxSizer( wxVERTICAL );
-
- m_bpButtonErrors = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonWarnings = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_bpButtonInfo = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
- bSizer154->Add( m_bpButtonInfo, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer153->Add( bSizer154, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer153->Add( m_staticline13, 0, wxEXPAND, 5 );
-
- m_gridMessages = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
- m_gridMessages->SetScrollRate( 5, 5 );
- bSizer153->Add( m_gridMessages, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer179->Add( bSizer153, 1, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer179 );
- this->Layout();
- bSizer179->Fit( this );
-
- // Connect Events
- m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnErrors ), NULL, this );
- m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnWarnings ), NULL, this );
- m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnInfo ), NULL, this );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer153;
+ bSizer153 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer154;
+ bSizer154 = new wxBoxSizer( wxVERTICAL );
+
+ m_bpButtonErrors = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonErrors, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonWarnings = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonWarnings, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_bpButtonInfo = new ToggleButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 49,49 ), wxBU_AUTODRAW );
+ bSizer154->Add( m_bpButtonInfo, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer153->Add( bSizer154, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer153->Add( m_staticline13, 0, wxEXPAND, 5 );
+
+ m_gridMessages = new zen::Grid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
+ m_gridMessages->SetScrollRate( 5, 5 );
+ bSizer153->Add( m_gridMessages, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer179->Add( bSizer153, 1, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer179 );
+ this->Layout();
+ bSizer179->Fit( this );
+
+ // Connect Events
+ m_bpButtonErrors->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnErrors ), NULL, this );
+ m_bpButtonWarnings->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnWarnings ), NULL, this );
+ m_bpButtonInfo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LogPanelGenerated::OnInfo ), NULL, this );
}
LogPanelGenerated::~LogPanelGenerated()
@@ -2970,186 +2976,186 @@ LogPanelGenerated::~LogPanelGenerated()
BatchDlgGenerated::BatchDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer54;
- bSizer54 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapBatchJob = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer72->Add( m_bitmapBatchJob, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextDescr = new wxStaticText( this, wxID_ANY, _("Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextDescr->Wrap( 520 );
- bSizer72->Add( m_staticTextDescr, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer54->Add( bSizer72, 0, 0, 5 );
-
- m_staticline18 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline18, 0, wxEXPAND, 5 );
-
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer180;
- bSizer180 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer171;
- bSizer171 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText82 = new wxStaticText( m_panel35, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText82->Wrap( -1 );
- bSizer171->Add( m_staticText82, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer169;
- bSizer169 = new wxBoxSizer( wxHORIZONTAL );
-
- m_radioBtnIgnoreErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
-
- bSizer169->Add( m_radioBtnIgnoreErrors, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_radioBtnPopupOnErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
-
- bSizer169->Add( m_radioBtnPopupOnErrors, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_radioBtnStopOnError = new wxRadioButton( m_panel35, wxID_ANY, _("&Stop"), wxDefaultPosition, wxDefaultSize, 0 );
- m_radioBtnStopOnError->SetToolTip( _("Stop synchronization at first error") );
-
- bSizer169->Add( m_radioBtnStopOnError, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer171->Add( bSizer169, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer180->Add( bSizer171, 0, wxALL, 5 );
-
- m_staticline26 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer180->Add( m_staticline26, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer170;
- bSizer170 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxRunMinimized = new wxCheckBox( m_panel35, wxID_ANY, _("Run minimized"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer170->Add( m_checkBoxRunMinimized, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
-
- wxBoxSizer* bSizer179;
- bSizer179 = new wxBoxSizer( wxHORIZONTAL );
-
- m_staticText81 = new wxStaticText( m_panel35, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText81->Wrap( -1 );
- bSizer179->Add( m_staticText81, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_comboBoxOnCompletion = new OnCompletionBox( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer179->Add( m_comboBoxOnCompletion, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer170->Add( bSizer179, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer180->Add( bSizer170, 1, wxALL, 5 );
-
-
- bSizer172->Add( bSizer180, 0, wxEXPAND, 5 );
-
- m_staticline25 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer172->Add( m_staticline25, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer191;
- bSizer191 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxGenerateLogfile = new wxCheckBox( m_panel35, wxID_ANY, _("Save log:"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizer191->Add( m_checkBoxGenerateLogfile, 0, wxEXPAND|wxALL, 5 );
-
- m_panelLogfile = new wxPanel( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelLogfile->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer1721;
- bSizer1721 = new wxBoxSizer( wxHORIZONTAL );
-
- m_logFolderPath = new FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer1721->Add( m_logFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectLogFolder = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectLogFolder->SetToolTip( _("Select a folder") );
-
- bSizer1721->Add( m_buttonSelectLogFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltLogFolder = new wxBitmapButton( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltLogFolder->SetToolTip( _("Select SFTP folder") );
-
- bSizer1721->Add( m_bpButtonSelectAltLogFolder, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
- m_checkBoxLogfilesLimit = new wxCheckBox( m_panelLogfile, wxID_ANY, _("Limit:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxLogfilesLimit->SetToolTip( _("Limit maximum number of log files") );
-
- bSizer1721->Add( m_checkBoxLogfilesLimit, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_spinCtrlLogfileLimit = new wxSpinCtrl( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 70,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
- m_spinCtrlLogfileLimit->SetToolTip( _("Limit maximum number of log files") );
-
- bSizer1721->Add( m_spinCtrlLogfileLimit, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panelLogfile->SetSizer( bSizer1721 );
- m_panelLogfile->Layout();
- bSizer1721->Fit( m_panelLogfile );
- bSizer191->Add( m_panelLogfile, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer172->Add( bSizer191, 0, wxEXPAND|wxALL, 5 );
-
- m_hyperlink17 = new wxHyperlinkCtrl( m_panel35, wxID_ANY, _("How can I schedule a batch job?"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer172->Add( m_hyperlink17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- m_panel35->SetSizer( bSizer172 );
- m_panel35->Layout();
- bSizer172->Fit( m_panel35 );
- bSizer54->Add( m_panel35, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonSaveAs = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonSaveAs->SetDefault();
- m_buttonSaveAs->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonSaveAs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer54 );
- this->Layout();
- bSizer54->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
- m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
- m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
- m_radioBtnStopOnError->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorStop ), NULL, this );
- m_checkBoxGenerateLogfile->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleGenerateLogfile ), NULL, this );
- m_checkBoxLogfilesLimit->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleLogfilesLimit ), NULL, this );
- m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( BatchDlgGenerated::OnHelpScheduleBatch ), NULL, this );
- m_buttonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer54;
+ bSizer54 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapBatchJob = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer72->Add( m_bitmapBatchJob, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextDescr = new wxStaticText( this, wxID_ANY, _("Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextDescr->Wrap( 520 );
+ bSizer72->Add( m_staticTextDescr, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer54->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline18 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline18, 0, wxEXPAND, 5 );
+
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer180;
+ bSizer180 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer171;
+ bSizer171 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText82 = new wxStaticText( m_panel35, wxID_ANY, _("Handle errors:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText82->Wrap( -1 );
+ bSizer171->Add( m_staticText82, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer169;
+ bSizer169 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_radioBtnIgnoreErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Ignore"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnIgnoreErrors->SetToolTip( _("Hide all error and warning messages") );
+
+ bSizer169->Add( m_radioBtnIgnoreErrors, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_radioBtnPopupOnErrors = new wxRadioButton( m_panel35, wxID_ANY, _("&Pop-up"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnPopupOnErrors->SetToolTip( _("Show pop-up on errors or warnings") );
+
+ bSizer169->Add( m_radioBtnPopupOnErrors, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_radioBtnStopOnError = new wxRadioButton( m_panel35, wxID_ANY, _("&Stop"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnStopOnError->SetToolTip( _("Stop synchronization at first error") );
+
+ bSizer169->Add( m_radioBtnStopOnError, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer171->Add( bSizer169, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer180->Add( bSizer171, 0, wxALL, 5 );
+
+ m_staticline26 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer180->Add( m_staticline26, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer170;
+ bSizer170 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxRunMinimized = new wxCheckBox( m_panel35, wxID_ANY, _("Run minimized"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer170->Add( m_checkBoxRunMinimized, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 );
+
+ wxBoxSizer* bSizer179;
+ bSizer179 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_staticText81 = new wxStaticText( m_panel35, wxID_ANY, _("On completion:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText81->Wrap( -1 );
+ bSizer179->Add( m_staticText81, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_comboBoxOnCompletion = new OnCompletionBox( m_panel35, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer179->Add( m_comboBoxOnCompletion, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer170->Add( bSizer179, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer180->Add( bSizer170, 1, wxALL, 5 );
+
+
+ bSizer172->Add( bSizer180, 0, wxEXPAND, 5 );
+
+ m_staticline25 = new wxStaticLine( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer172->Add( m_staticline25, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer191;
+ bSizer191 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxGenerateLogfile = new wxCheckBox( m_panel35, wxID_ANY, _("Save log:"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer191->Add( m_checkBoxGenerateLogfile, 0, wxEXPAND|wxALL, 5 );
+
+ m_panelLogfile = new wxPanel( m_panel35, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelLogfile->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer1721;
+ bSizer1721 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_logFolderPath = new FolderHistoryBox( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer1721->Add( m_logFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectLogFolder = new wxButton( m_panelLogfile, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectLogFolder->SetToolTip( _("Select a folder") );
+
+ bSizer1721->Add( m_buttonSelectLogFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltLogFolder = new wxBitmapButton( m_panelLogfile, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltLogFolder->SetToolTip( _("Select SFTP folder") );
+
+ bSizer1721->Add( m_bpButtonSelectAltLogFolder, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+ m_checkBoxLogfilesLimit = new wxCheckBox( m_panelLogfile, wxID_ANY, _("Limit:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxLogfilesLimit->SetToolTip( _("Limit maximum number of log files") );
+
+ bSizer1721->Add( m_checkBoxLogfilesLimit, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_spinCtrlLogfileLimit = new wxSpinCtrl( m_panelLogfile, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 70,-1 ), wxSP_ARROW_KEYS, 1, 2000000000, 1 );
+ m_spinCtrlLogfileLimit->SetToolTip( _("Limit maximum number of log files") );
+
+ bSizer1721->Add( m_spinCtrlLogfileLimit, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panelLogfile->SetSizer( bSizer1721 );
+ m_panelLogfile->Layout();
+ bSizer1721->Fit( m_panelLogfile );
+ bSizer191->Add( m_panelLogfile, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer172->Add( bSizer191, 0, wxEXPAND|wxALL, 5 );
+
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panel35, wxID_ANY, _("How can I schedule a batch job?"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer172->Add( m_hyperlink17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ m_panel35->SetSizer( bSizer172 );
+ m_panel35->Layout();
+ bSizer172->Fit( m_panel35 );
+ bSizer54->Add( m_panel35, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticline13 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer54->Add( m_staticline13, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonSaveAs = new wxButton( this, wxID_SAVE, _("Save &as..."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonSaveAs->SetDefault();
+ m_buttonSaveAs->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonSaveAs, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer54->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer54 );
+ this->Layout();
+ bSizer54->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( BatchDlgGenerated::OnClose ) );
+ m_radioBtnIgnoreErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorIgnore ), NULL, this );
+ m_radioBtnPopupOnErrors->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorPopup ), NULL, this );
+ m_radioBtnStopOnError->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( BatchDlgGenerated::OnErrorStop ), NULL, this );
+ m_checkBoxGenerateLogfile->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleGenerateLogfile ), NULL, this );
+ m_checkBoxLogfilesLimit->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnToggleLogfilesLimit ), NULL, this );
+ m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( BatchDlgGenerated::OnHelpScheduleBatch ), NULL, this );
+ m_buttonSaveAs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnSaveBatchJob ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BatchDlgGenerated::OnCancel ), NULL, this );
}
BatchDlgGenerated::~BatchDlgGenerated()
@@ -3158,81 +3164,81 @@ BatchDlgGenerated::~BatchDlgGenerated()
DeleteDlgGenerated::DeleteDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapDeleteType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapDeleteType, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
- m_staticTextHeader->Wrap( -1 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer24->Add( bSizer72, 0, 0, 5 );
-
- m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
-
- m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer185->Add( 60, 0, 0, 0, 5 );
-
- m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
-
- m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panel31->SetSizer( bSizer185 );
- m_panel31->Layout();
- bSizer185->Fit( m_panel31 );
- bSizer24->Add( m_panel31, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxUseRecycler = new wxCheckBox( this, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
- bSizerStdButtons->Add( m_checkBoxUseRecycler, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonOK = new wxButton( this, wxID_OK, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::OnClose ) );
- m_checkBoxUseRecycler->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnUseRecycler ), NULL, this );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnOK ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapDeleteType = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapDeleteType, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
+ m_staticTextHeader->Wrap( -1 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer24->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
+
+ m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer185->Add( 60, 0, 0, 0, 5 );
+
+ m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
+
+ m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panel31->SetSizer( bSizer185 );
+ m_panel31->Layout();
+ bSizer185->Fit( m_panel31 );
+ bSizer24->Add( m_panel31, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxUseRecycler = new wxCheckBox( this, wxID_ANY, _("&Recycle bin"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizerStdButtons->Add( m_checkBoxUseRecycler, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("dummy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DeleteDlgGenerated::OnClose ) );
+ m_checkBoxUseRecycler->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnUseRecycler ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DeleteDlgGenerated::OnCancel ), NULL, this );
}
DeleteDlgGenerated::~DeleteDlgGenerated()
@@ -3241,112 +3247,112 @@ DeleteDlgGenerated::~DeleteDlgGenerated()
CopyToDlgGenerated::CopyToDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer24;
- bSizer24 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapCopyTo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer72->Add( m_bitmapCopyTo, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
- m_staticTextHeader->Wrap( 460 );
- bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer24->Add( bSizer72, 0, 0, 5 );
-
- m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
-
- m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer185->Add( 60, 0, 0, 0, 5 );
-
- m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
-
- m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
- bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- m_panel31->SetSizer( bSizer185 );
- m_panel31->Layout();
- bSizer185->Fit( m_panel31 );
- bSizer24->Add( m_panel31, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- wxBoxSizer* bSizer182;
- bSizer182 = new wxBoxSizer( wxHORIZONTAL );
-
- m_targetFolderPath = new FolderHistoryBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
- bSizer182->Add( m_targetFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonSelectTargetFolder = new wxButton( this, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonSelectTargetFolder->SetToolTip( _("Select a folder") );
-
- bSizer182->Add( m_buttonSelectTargetFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_bpButtonSelectAltTargetFolder = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
- m_bpButtonSelectAltTargetFolder->SetToolTip( _("Select SFTP folder") );
-
- bSizer182->Add( m_bpButtonSelectAltTargetFolder, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
- bSizer24->Add( bSizer182, 0, wxEXPAND|wxALL, 5 );
-
- m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer189;
- bSizer189 = new wxBoxSizer( wxVERTICAL );
-
- m_checkBoxKeepRelPath = new wxCheckBox( this, wxID_ANY, _("&Keep relative paths"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxKeepRelPath->SetValue(true);
- bSizer189->Add( m_checkBoxKeepRelPath, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
-
- m_checkBoxOverwriteIfExists = new wxCheckBox( this, wxID_ANY, _("&Overwrite existing files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxOverwriteIfExists->SetValue(true);
- bSizer189->Add( m_checkBoxOverwriteIfExists, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
-
-
- bSizerStdButtons->Add( bSizer189, 1, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_buttonOK = new wxButton( this, wxID_OK, _("Copy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOK->SetDefault();
- m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer24 );
- this->Layout();
- bSizer24->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CopyToDlgGenerated::OnClose ) );
- m_checkBoxKeepRelPath->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
- m_checkBoxOverwriteIfExists->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
- m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnOK ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer24;
+ bSizer24 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapCopyTo = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer72->Add( m_bitmapCopyTo, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticTextHeader = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0|wxNO_BORDER );
+ m_staticTextHeader->Wrap( 460 );
+ bSizer72->Add( m_staticTextHeader, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer24->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline91 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline91, 0, wxEXPAND, 5 );
+
+ m_panel31 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel31->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer185->Add( 60, 0, 0, 0, 5 );
+
+ m_staticline42 = new wxStaticLine( m_panel31, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer185->Add( m_staticline42, 0, wxEXPAND, 5 );
+
+ m_textCtrlFileList = new wxTextCtrl( m_panel31, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 500,200 ), wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY|wxNO_BORDER );
+ bSizer185->Add( m_textCtrlFileList, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ m_panel31->SetSizer( bSizer185 );
+ m_panel31->Layout();
+ bSizer185->Fit( m_panel31 );
+ bSizer24->Add( m_panel31, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ wxBoxSizer* bSizer182;
+ bSizer182 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_targetFolderPath = new FolderHistoryBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
+ bSizer182->Add( m_targetFolderPath, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonSelectTargetFolder = new wxButton( this, wxID_ANY, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonSelectTargetFolder->SetToolTip( _("Select a folder") );
+
+ bSizer182->Add( m_buttonSelectTargetFolder, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_bpButtonSelectAltTargetFolder = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 26,-1 ), wxBU_AUTODRAW );
+ m_bpButtonSelectAltTargetFolder->SetToolTip( _("Select SFTP folder") );
+
+ bSizer182->Add( m_bpButtonSelectAltTargetFolder, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+ bSizer24->Add( bSizer182, 0, wxEXPAND|wxALL, 5 );
+
+ m_staticline9 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer24->Add( m_staticline9, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer189;
+ bSizer189 = new wxBoxSizer( wxVERTICAL );
+
+ m_checkBoxKeepRelPath = new wxCheckBox( this, wxID_ANY, _("&Keep relative paths"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxKeepRelPath->SetValue(true);
+ bSizer189->Add( m_checkBoxKeepRelPath, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
+
+ m_checkBoxOverwriteIfExists = new wxCheckBox( this, wxID_ANY, _("&Overwrite existing files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxOverwriteIfExists->SetValue(true);
+ bSizer189->Add( m_checkBoxOverwriteIfExists, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+
+
+ bSizerStdButtons->Add( bSizer189, 1, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_buttonOK = new wxButton( this, wxID_OK, _("Copy"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOK->SetDefault();
+ m_buttonOK->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOK, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer24->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer24 );
+ this->Layout();
+ bSizer24->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CopyToDlgGenerated::OnClose ) );
+ m_checkBoxKeepRelPath->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
+ m_checkBoxOverwriteIfExists->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnUseRecycler ), NULL, this );
+ m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnOK ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyToDlgGenerated::OnCancel ), NULL, this );
}
CopyToDlgGenerated::~CopyToDlgGenerated()
@@ -3355,258 +3361,258 @@ CopyToDlgGenerated::~CopyToDlgGenerated()
OptionsDlgGenerated::OptionsDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer95;
- bSizer95 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer72;
- bSizer72 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapSettings = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer72->Add( m_bitmapSettings, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_staticText44 = new wxStaticText( this, wxID_ANY, _("The following settings are used for all synchronization jobs."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_staticText44->Wrap( 500 );
- bSizer72->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
-
-
- bSizer95->Add( bSizer72, 0, 0, 5 );
-
- m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
-
- m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer186;
- bSizer186 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer160;
- bSizer160 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer176;
- bSizer176 = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxFailSafe = new wxCheckBox( m_panel39, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxFailSafe->SetValue(true);
- m_checkBoxFailSafe->SetToolTip( _("Copy to a temporary file (*.ffs_tmp) before overwriting target.\nThis guarantees a consistent state even in case of a serious error.") );
-
- bSizer176->Add( m_checkBoxFailSafe, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText91 = new wxStaticText( m_panel39, wxID_ANY, _("(recommended)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText91->Wrap( -1 );
- m_staticText91->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer176->Add( m_staticText91, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer176, 0, wxEXPAND, 5 );
-
- bSizerLockedFiles = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxCopyLocked = new wxCheckBox( m_panel39, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxCopyLocked->SetValue(true);
- m_checkBoxCopyLocked->SetToolTip( _("Copy shared or locked files using the Volume Shadow Copy Service.") );
-
- bSizerLockedFiles->Add( m_checkBoxCopyLocked, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticText92 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText92->Wrap( -1 );
- m_staticText92->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizerLockedFiles->Add( m_staticText92, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizerLockedFiles, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxHORIZONTAL );
-
- m_checkBoxCopyPermissions = new wxCheckBox( m_panel39, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
- m_checkBoxCopyPermissions->SetValue(true);
- m_checkBoxCopyPermissions->SetToolTip( _("Transfer file and folder permissions.") );
-
- bSizer178->Add( m_checkBoxCopyPermissions, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_staticText93 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- m_staticText93->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
-
- bSizer178->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer160->Add( bSizer178, 0, wxEXPAND, 5 );
-
-
- bSizer186->Add( bSizer160, 0, wxEXPAND|wxALL, 5 );
-
- m_staticline39 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer186->Add( m_staticline39, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer188;
- bSizer188 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText95 = new wxStaticText( m_panel39, wxID_ANY, _("Automatic retry on error:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText95->Wrap( -1 );
- bSizer188->Add( m_staticText95, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
-
- wxFlexGridSizer* fgSizer6;
- fgSizer6 = new wxFlexGridSizer( 0, 2, 5, 5 );
- fgSizer6->SetFlexibleDirection( wxBOTH );
- fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
- m_staticText96 = new wxStaticText( m_panel39, wxID_ANY, _("Retry count:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- fgSizer6->Add( m_staticText96, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_spinCtrlAutoRetryCount = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 4 );
- fgSizer6->Add( m_spinCtrlAutoRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextAutoRetryDelay = new wxStaticText( m_panel39, wxID_ANY, _("Delay (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextAutoRetryDelay->Wrap( -1 );
- fgSizer6->Add( m_staticTextAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_spinCtrlAutoRetryDelay = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
- fgSizer6->Add( m_spinCtrlAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer188->Add( fgSizer6, 0, wxLEFT, 10 );
-
-
- bSizer186->Add( bSizer188, 0, wxALL, 10 );
-
-
- bSizer166->Add( bSizer186, 0, wxEXPAND, 5 );
-
- m_staticline191 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline191, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText85 = new wxStaticText( m_panel39, wxID_ANY, _("Customize context menu:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText85->Wrap( -1 );
- bSizer181->Add( m_staticText85, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
-
- m_gridCustomCommand = new wxGrid( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
-
- // Grid
- m_gridCustomCommand->CreateGrid( 5, 2 );
- m_gridCustomCommand->EnableEditing( true );
- m_gridCustomCommand->EnableGridLines( true );
- m_gridCustomCommand->EnableDragGridSize( false );
- m_gridCustomCommand->SetMargins( 0, 0 );
-
- // Columns
- m_gridCustomCommand->SetColSize( 0, 165 );
- m_gridCustomCommand->SetColSize( 1, 196 );
- m_gridCustomCommand->EnableDragColMove( false );
- m_gridCustomCommand->EnableDragColSize( true );
- m_gridCustomCommand->SetColLabelSize( 20 );
- m_gridCustomCommand->SetColLabelValue( 0, _("Description") );
- m_gridCustomCommand->SetColLabelValue( 1, _("Command line") );
- m_gridCustomCommand->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
-
- // Rows
- m_gridCustomCommand->EnableDragRowSize( false );
- m_gridCustomCommand->SetRowLabelSize( 1 );
- m_gridCustomCommand->SetRowLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTRE );
-
- // Label Appearance
-
- // Cell Defaults
- m_gridCustomCommand->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
- bSizer181->Add( m_gridCustomCommand, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- wxBoxSizer* bSizer193;
- bSizer193 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bpButtonAddRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- bSizer193->Add( m_bpButtonAddRow, 0, 0, 5 );
-
- m_bpButtonRemoveRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
- bSizer193->Add( m_bpButtonRemoveRow, 0, 0, 5 );
-
-
- bSizer193->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_hyperlink17 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- bSizer193->Add( m_hyperlink17, 0, wxLEFT, 5 );
-
-
- bSizer181->Add( bSizer193, 0, wxTOP|wxEXPAND, 5 );
-
-
- bSizer166->Add( bSizer181, 1, wxEXPAND|wxALL, 10 );
-
- m_staticline192 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer166->Add( m_staticline192, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer1881;
- bSizer1881 = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonResetDialogs = new zen::BitmapTextButton( m_panel39, wxID_ANY, _("Show hidden dialogs again"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonResetDialogs->SetToolTip( _("Show all permanently hidden dialogs and warning messages again") );
-
- bSizer1881->Add( m_buttonResetDialogs, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
-
- m_staticline40 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer1881->Add( m_staticline40, 0, wxEXPAND, 5 );
-
-
- bSizer166->Add( bSizer1881, 0, 0, 5 );
-
-
- m_panel39->SetSizer( bSizer166 );
- m_panel39->Layout();
- bSizer166->Fit( m_panel39 );
- bSizer95->Add( m_panel39, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonDefault = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonDefault, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizerStdButtons->Add( 0, 0, 1, 0, 5 );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer95->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
-
-
- this->SetSizer( bSizer95 );
- this->Layout();
- bSizer95->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OptionsDlgGenerated::OnClose ) );
- m_spinCtrlAutoRetryCount->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::OnToggleAutoRetryCount ), NULL, this );
- m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnAddRow ), NULL, this );
- m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnRemoveRow ), NULL, this );
- m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( OptionsDlgGenerated::OnHelpShowExamples ), NULL, this );
- m_buttonResetDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnResetDialogs ), NULL, this );
- m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnDefault ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer95;
+ bSizer95 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer72;
+ bSizer72 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapSettings = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer72->Add( m_bitmapSettings, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_staticText44 = new wxStaticText( this, wxID_ANY, _("The following settings are used for all synchronization jobs."), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_staticText44->Wrap( 500 );
+ bSizer72->Add( m_staticText44, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+
+
+ bSizer95->Add( bSizer72, 0, 0, 5 );
+
+ m_staticline20 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline20, 0, wxEXPAND, 5 );
+
+ m_panel39 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer186;
+ bSizer186 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer160;
+ bSizer160 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer176;
+ bSizer176 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxFailSafe = new wxCheckBox( m_panel39, wxID_ANY, _("Fail-safe file copy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxFailSafe->SetValue(true);
+ m_checkBoxFailSafe->SetToolTip( _("Copy to a temporary file (*.ffs_tmp) before overwriting target.\nThis guarantees a consistent state even in case of a serious error.") );
+
+ bSizer176->Add( m_checkBoxFailSafe, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText91 = new wxStaticText( m_panel39, wxID_ANY, _("(recommended)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText91->Wrap( -1 );
+ m_staticText91->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer176->Add( m_staticText91, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer176, 0, wxEXPAND, 5 );
+
+ bSizerLockedFiles = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxCopyLocked = new wxCheckBox( m_panel39, wxID_ANY, _("Copy locked files"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxCopyLocked->SetValue(true);
+ m_checkBoxCopyLocked->SetToolTip( _("Copy shared or locked files using the Volume Shadow Copy Service.") );
+
+ bSizerLockedFiles->Add( m_checkBoxCopyLocked, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticText92 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText92->Wrap( -1 );
+ m_staticText92->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizerLockedFiles->Add( m_staticText92, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizerLockedFiles, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_checkBoxCopyPermissions = new wxCheckBox( m_panel39, wxID_ANY, _("Copy file access permissions"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxCopyPermissions->SetValue(true);
+ m_checkBoxCopyPermissions->SetToolTip( _("Transfer file and folder permissions.") );
+
+ bSizer178->Add( m_checkBoxCopyPermissions, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_staticText93 = new wxStaticText( m_panel39, wxID_ANY, _("(requires administrator rights)"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ m_staticText93->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
+
+ bSizer178->Add( m_staticText93, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer160->Add( bSizer178, 0, wxEXPAND, 5 );
+
+
+ bSizer186->Add( bSizer160, 0, wxEXPAND|wxALL, 5 );
+
+ m_staticline39 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer186->Add( m_staticline39, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer188;
+ bSizer188 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText95 = new wxStaticText( m_panel39, wxID_ANY, _("Automatic retry on error:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText95->Wrap( -1 );
+ bSizer188->Add( m_staticText95, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
+
+ wxFlexGridSizer* fgSizer6;
+ fgSizer6 = new wxFlexGridSizer( 0, 2, 5, 5 );
+ fgSizer6->SetFlexibleDirection( wxBOTH );
+ fgSizer6->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticText96 = new wxStaticText( m_panel39, wxID_ANY, _("Retry count:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ fgSizer6->Add( m_staticText96, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_spinCtrlAutoRetryCount = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 4 );
+ fgSizer6->Add( m_spinCtrlAutoRetryCount, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextAutoRetryDelay = new wxStaticText( m_panel39, wxID_ANY, _("Delay (in seconds):"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextAutoRetryDelay->Wrap( -1 );
+ fgSizer6->Add( m_staticTextAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_spinCtrlAutoRetryDelay = new wxSpinCtrl( m_panel39, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), wxSP_ARROW_KEYS, 0, 2000000000, 0 );
+ fgSizer6->Add( m_spinCtrlAutoRetryDelay, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer188->Add( fgSizer6, 0, wxLEFT, 10 );
+
+
+ bSizer186->Add( bSizer188, 0, wxALL, 10 );
+
+
+ bSizer166->Add( bSizer186, 0, wxEXPAND, 5 );
+
+ m_staticline191 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline191, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText85 = new wxStaticText( m_panel39, wxID_ANY, _("Customize context menu:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText85->Wrap( -1 );
+ bSizer181->Add( m_staticText85, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
+
+ m_gridCustomCommand = new wxGrid( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
+
+ // Grid
+ m_gridCustomCommand->CreateGrid( 5, 2 );
+ m_gridCustomCommand->EnableEditing( true );
+ m_gridCustomCommand->EnableGridLines( true );
+ m_gridCustomCommand->EnableDragGridSize( false );
+ m_gridCustomCommand->SetMargins( 0, 0 );
+
+ // Columns
+ m_gridCustomCommand->SetColSize( 0, 165 );
+ m_gridCustomCommand->SetColSize( 1, 196 );
+ m_gridCustomCommand->EnableDragColMove( false );
+ m_gridCustomCommand->EnableDragColSize( true );
+ m_gridCustomCommand->SetColLabelSize( 20 );
+ m_gridCustomCommand->SetColLabelValue( 0, _("Description") );
+ m_gridCustomCommand->SetColLabelValue( 1, _("Command line") );
+ m_gridCustomCommand->SetColLabelAlignment( wxALIGN_CENTRE, wxALIGN_CENTRE );
+
+ // Rows
+ m_gridCustomCommand->EnableDragRowSize( false );
+ m_gridCustomCommand->SetRowLabelSize( 1 );
+ m_gridCustomCommand->SetRowLabelAlignment( wxALIGN_LEFT, wxALIGN_CENTRE );
+
+ // Label Appearance
+
+ // Cell Defaults
+ m_gridCustomCommand->SetDefaultCellAlignment( wxALIGN_LEFT, wxALIGN_TOP );
+ bSizer181->Add( m_gridCustomCommand, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer193;
+ bSizer193 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bpButtonAddRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ bSizer193->Add( m_bpButtonAddRow, 0, 0, 5 );
+
+ m_bpButtonRemoveRow = new wxBitmapButton( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 25,25 ), wxBU_AUTODRAW );
+ bSizer193->Add( m_bpButtonRemoveRow, 0, 0, 5 );
+
+
+ bSizer193->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_hyperlink17 = new wxHyperlinkCtrl( m_panel39, wxID_ANY, _("Show examples"), wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ bSizer193->Add( m_hyperlink17, 0, wxLEFT, 5 );
+
+
+ bSizer181->Add( bSizer193, 0, wxTOP|wxEXPAND, 5 );
+
+
+ bSizer166->Add( bSizer181, 1, wxEXPAND|wxALL, 10 );
+
+ m_staticline192 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer166->Add( m_staticline192, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer1881;
+ bSizer1881 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonResetDialogs = new zen::BitmapTextButton( m_panel39, wxID_ANY, _("Show hidden dialogs again"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonResetDialogs->SetToolTip( _("Show all permanently hidden dialogs and warning messages again") );
+
+ bSizer1881->Add( m_buttonResetDialogs, 0, wxALL|wxALIGN_CENTER_VERTICAL, 10 );
+
+ m_staticline40 = new wxStaticLine( m_panel39, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer1881->Add( m_staticline40, 0, wxEXPAND, 5 );
+
+
+ bSizer166->Add( bSizer1881, 0, 0, 5 );
+
+
+ m_panel39->SetSizer( bSizer166 );
+ m_panel39->Layout();
+ bSizer166->Fit( m_panel39 );
+ bSizer95->Add( m_panel39, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer95->Add( m_staticline36, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonDefault = new wxButton( this, wxID_DEFAULT, _("&Default"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonDefault, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizerStdButtons->Add( 0, 0, 1, 0, 5 );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer95->Add( bSizerStdButtons, 0, wxEXPAND, 5 );
+
+
+ this->SetSizer( bSizer95 );
+ this->Layout();
+ bSizer95->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( OptionsDlgGenerated::OnClose ) );
+ m_spinCtrlAutoRetryCount->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( OptionsDlgGenerated::OnToggleAutoRetryCount ), NULL, this );
+ m_bpButtonAddRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnAddRow ), NULL, this );
+ m_bpButtonRemoveRow->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnRemoveRow ), NULL, this );
+ m_hyperlink17->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( OptionsDlgGenerated::OnHelpShowExamples ), NULL, this );
+ m_buttonResetDialogs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnResetDialogs ), NULL, this );
+ m_buttonDefault->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnDefault ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OptionsDlgGenerated::OnCancel ), NULL, this );
}
OptionsDlgGenerated::~OptionsDlgGenerated()
@@ -3615,22 +3621,22 @@ OptionsDlgGenerated::~OptionsDlgGenerated()
TooltipDialogGenerated::TooltipDialogGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
-
- wxBoxSizer* bSizer158;
- bSizer158 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapLeft = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer158->Add( m_bitmapLeft, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticTextMain = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticTextMain->Wrap( 600 );
- bSizer158->Add( m_staticTextMain, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- this->SetSizer( bSizer158 );
- this->Layout();
- bSizer158->Fit( this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+
+ wxBoxSizer* bSizer158;
+ bSizer158 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapLeft = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer158->Add( m_bitmapLeft, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticTextMain = new wxStaticText( this, wxID_ANY, _("dummy"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticTextMain->Wrap( 600 );
+ bSizer158->Add( m_staticTextMain, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ this->SetSizer( bSizer158 );
+ this->Layout();
+ bSizer158->Fit( this );
}
TooltipDialogGenerated::~TooltipDialogGenerated()
@@ -3639,60 +3645,60 @@ TooltipDialogGenerated::~TooltipDialogGenerated()
SelectTimespanDlgGenerated::SelectTimespanDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer96;
- bSizer96 = new wxBoxSizer( wxVERTICAL );
-
- m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer98;
- bSizer98 = new wxBoxSizer( wxHORIZONTAL );
-
- m_calendarFrom = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
- bSizer98->Add( m_calendarFrom, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
-
- m_calendarTo = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
- bSizer98->Add( m_calendarTo, 0, wxALL, 10 );
-
-
- m_panel35->SetSizer( bSizer98 );
- m_panel35->Layout();
- bSizer98->Fit( m_panel35 );
- bSizer96->Add( m_panel35, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonOkay->SetDefault();
- m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
-
- m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
-
-
- bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer96 );
- this->Layout();
- bSizer96->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::OnClose ) );
- m_calendarFrom->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionFrom ), NULL, this );
- m_calendarTo->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionTo ), NULL, this );
- m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnOkay ), NULL, this );
- m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer96;
+ bSizer96 = new wxBoxSizer( wxVERTICAL );
+
+ m_panel35 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel35->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer98;
+ bSizer98 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_calendarFrom = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
+ bSizer98->Add( m_calendarFrom, 0, wxTOP|wxBOTTOM|wxLEFT, 10 );
+
+ m_calendarTo = new wxCalendarCtrl( m_panel35, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS|wxNO_BORDER );
+ bSizer98->Add( m_calendarTo, 0, wxALL, 10 );
+
+
+ m_panel35->SetSizer( bSizer98 );
+ m_panel35->Layout();
+ bSizer98->Fit( m_panel35 );
+ bSizer96->Add( m_panel35, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_staticline21 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer96->Add( m_staticline21, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonOkay = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonOkay->SetDefault();
+ m_buttonOkay->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizerStdButtons->Add( m_buttonOkay, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
+
+ m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizerStdButtons->Add( m_buttonCancel, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
+
+
+ bSizer96->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer96 );
+ this->Layout();
+ bSizer96->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( SelectTimespanDlgGenerated::OnClose ) );
+ m_calendarFrom->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionFrom ), NULL, this );
+ m_calendarTo->Connect( wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEventHandler( SelectTimespanDlgGenerated::OnChangeSelectionTo ), NULL, this );
+ m_buttonOkay->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnOkay ), NULL, this );
+ m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectTimespanDlgGenerated::OnCancel ), NULL, this );
}
SelectTimespanDlgGenerated::~SelectTimespanDlgGenerated()
@@ -3701,308 +3707,308 @@ SelectTimespanDlgGenerated::~SelectTimespanDlgGenerated()
AboutDlgGenerated::AboutDlgGenerated( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
- this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
-
- wxBoxSizer* bSizer31;
- bSizer31 = new wxBoxSizer( wxVERTICAL );
-
- m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- wxBoxSizer* bSizer162;
- bSizer162 = new wxBoxSizer( wxVERTICAL );
-
- m_bitmapLogo = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer162->Add( m_bitmapLogo, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- m_staticline341 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer162->Add( m_staticline341, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer174;
- bSizer174 = new wxBoxSizer( wxHORIZONTAL );
-
- wxBoxSizer* bSizer181;
- bSizer181 = new wxBoxSizer( wxVERTICAL );
-
- wxBoxSizer* bSizer187;
- bSizer187 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText96 = new wxStaticText( m_panel41, wxID_ANY, _("Source code written in C++ using:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText96->Wrap( -1 );
- bSizer187->Add( m_staticText96, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer171;
- bSizer171 = new wxBoxSizer( wxHORIZONTAL );
-
- m_hyperlink11 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("MS Visual C++"), wxT("http://www.visualstudio.com"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink11->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink11->SetToolTip( _("http://www.visualstudio.com") );
-
- bSizer171->Add( m_hyperlink11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink7 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxWidgets"), wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink7->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink7->SetToolTip( _("http://www.wxwidgets.org") );
-
- bSizer171->Add( m_hyperlink7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink14 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxFormBuilder"), wxT("http://wxformbuilder.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink14->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink14->SetToolTip( _("http://wxformbuilder.org") );
-
- bSizer171->Add( m_hyperlink14, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink16 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Artistic Style"), wxT("http://astyle.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink16->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink16->SetToolTip( _("http://astyle.sourceforge.net") );
-
- bSizer171->Add( m_hyperlink16, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer187->Add( bSizer171, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer172;
- bSizer172 = new wxBoxSizer( wxHORIZONTAL );
-
- m_hyperlink15 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zen::Xml"), wxT("http://zenxml.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink15->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink15->SetToolTip( _("http://zenxml.sourceforge.net") );
-
- bSizer172->Add( m_hyperlink15, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink12 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Google Test"), wxT("http://code.google.com/p/googletest"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink12->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink12->SetToolTip( _("http://code.google.com/p/googletest") );
-
- bSizer172->Add( m_hyperlink12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink13 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Boost"), wxT("http://www.boost.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink13->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink13->SetToolTip( _("http://www.boost.org") );
-
- bSizer172->Add( m_hyperlink13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink10 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("libssh2"), wxT("http://www.libssh2.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink10->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink10->SetToolTip( _("http://www.libssh2.org") );
-
- bSizer172->Add( m_hyperlink10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink18 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("NSIS"), wxT("http://nsis.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink18->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink18->SetToolTip( _("http://nsis.sourceforge.net") );
-
- bSizer172->Add( m_hyperlink18, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink9 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Inno Setup"), wxT("http://www.jrsoftware.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink9->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink9->SetToolTip( _("http://www.jrsoftware.org") );
-
- bSizer172->Add( m_hyperlink9, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer187->Add( bSizer172, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer181->Add( bSizer187, 0, wxALL|wxEXPAND, 5 );
-
- m_panelDonate = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panelDonate->SetBackgroundColour( wxColour( 153, 170, 187 ) );
-
- wxBoxSizer* bSizer183;
- bSizer183 = new wxBoxSizer( wxVERTICAL );
-
- m_panel39 = new wxPanel( m_panelDonate, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
- m_panel39->SetBackgroundColour( wxColour( 221, 221, 255 ) );
-
- wxBoxSizer* bSizer184;
- bSizer184 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapDonate = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
- bSizer184->Add( m_bitmapDonate, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
- wxBoxSizer* bSizer178;
- bSizer178 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText83 = new wxStaticText( m_panel39, wxID_ANY, _("If you like FreeFileSync:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText83->Wrap( -1 );
- m_staticText83->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
- m_staticText83->SetForegroundColour( wxColour( 0, 0, 0 ) );
-
- bSizer178->Add( m_staticText83, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
-
- m_buttonDonate = new wxButton( m_panel39, wxID_ANY, _("Donate with PayPal"), wxDefaultPosition, wxDefaultSize, 0 );
- m_buttonDonate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
- m_buttonDonate->SetToolTip( _("http://www.freefilesync.org/donate.php") );
-
- bSizer178->Add( m_buttonDonate, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
-
-
- bSizer184->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- m_panel39->SetSizer( bSizer184 );
- m_panel39->Layout();
- bSizer184->Fit( m_panel39 );
- bSizer183->Add( m_panel39, 0, wxEXPAND|wxALL, 5 );
-
-
- m_panelDonate->SetSizer( bSizer183 );
- m_panelDonate->Layout();
- bSizer183->Fit( m_panelDonate );
- bSizer181->Add( m_panelDonate, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
-
- wxBoxSizer* bSizer186;
- bSizer186 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText94 = new wxStaticText( m_panel41, wxID_ANY, _("Feedback and suggestions are welcome"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText94->Wrap( -1 );
- bSizer186->Add( m_staticText94, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer166;
- bSizer166 = new wxBoxSizer( wxHORIZONTAL );
-
-
- bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapHomepage = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmapHomepage->SetToolTip( _("Homepage") );
-
- bSizer166->Add( m_bitmapHomepage, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_hyperlink1 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("FreeFileSync.org"), wxT("http://www.freefilesync.org/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
- m_hyperlink1->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink1->SetToolTip( _("http://www.freefilesync.org") );
-
- bSizer166->Add( m_hyperlink1, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
-
- m_bitmapEmail = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_bitmapEmail->SetToolTip( _("Email") );
-
- bSizer166->Add( m_bitmapEmail, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
-
- m_hyperlink2 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zenju@gmx.de"), wxT("mailto:zenju@gmx.de"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
- m_hyperlink2->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_hyperlink2->SetToolTip( _("mailto:zenju@gmx.de") );
-
- bSizer166->Add( m_hyperlink2, 0, wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
- bSizer186->Add( bSizer166, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer181->Add( bSizer186, 0, wxALL|wxEXPAND, 5 );
-
- m_staticline34 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer181->Add( m_staticline34, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer185;
- bSizer185 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText93 = new wxStaticText( m_panel41, wxID_ANY, _("Published under the GNU General Public License"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText93->Wrap( -1 );
- bSizer185->Add( m_staticText93, 0, wxALL, 5 );
-
- wxBoxSizer* bSizer1671;
- bSizer1671 = new wxBoxSizer( wxHORIZONTAL );
-
- m_bitmapGpl = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
- bSizer1671->Add( m_bitmapGpl, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
-
- m_hyperlink5 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("http://www.gnu.org/licenses/gpl-3.0"), wxT("http://www.gnu.org/licenses/gpl-3.0"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
- m_hyperlink5->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
-
- bSizer1671->Add( m_hyperlink5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer185->Add( bSizer1671, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
-
-
- bSizer181->Add( bSizer185, 0, wxALL|wxEXPAND, 5 );
-
-
- bSizer174->Add( bSizer181, 0, 0, 5 );
-
- m_staticline37 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
- bSizer174->Add( m_staticline37, 0, wxEXPAND, 5 );
-
- wxBoxSizer* bSizer177;
- bSizer177 = new wxBoxSizer( wxVERTICAL );
-
- m_staticText54 = new wxStaticText( m_panel41, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText54->Wrap( 200 );
- m_staticText54->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
-
- bSizer177->Add( m_staticText54, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
-
-
- bSizer177->Add( 0, 5, 0, 0, 5 );
-
- m_scrolledWindowTranslators = new wxScrolledWindow( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxVSCROLL );
- m_scrolledWindowTranslators->SetScrollRate( 10, 10 );
- m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
- m_scrolledWindowTranslators->SetMinSize( wxSize( 220,-1 ) );
-
- fgSizerTranslators = new wxFlexGridSizer( 0, 2, 2, 10 );
- fgSizerTranslators->SetFlexibleDirection( wxBOTH );
- fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
-
-
- m_scrolledWindowTranslators->SetSizer( fgSizerTranslators );
- m_scrolledWindowTranslators->Layout();
- fgSizerTranslators->Fit( m_scrolledWindowTranslators );
- bSizer177->Add( m_scrolledWindowTranslators, 1, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxEXPAND, 5 );
-
-
- bSizer174->Add( bSizer177, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
-
-
- bSizer162->Add( bSizer174, 0, 0, 5 );
-
-
- m_panel41->SetSizer( bSizer162 );
- m_panel41->Layout();
- bSizer162->Fit( m_panel41 );
- bSizer31->Add( m_panel41, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
-
- m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bSizer31->Add( m_staticline36, 0, wxEXPAND, 5 );
-
- bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
-
- m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
- m_buttonClose->SetDefault();
- bSizerStdButtons->Add( m_buttonClose, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
-
-
- bSizer31->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
-
-
- this->SetSizer( bSizer31 );
- this->Layout();
- bSizer31->Fit( this );
-
- this->Centre( wxBOTH );
-
- // Connect Events
- this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
- m_buttonDonate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnDonate ), NULL, this );
- m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
+ this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
+
+ wxBoxSizer* bSizer31;
+ bSizer31 = new wxBoxSizer( wxVERTICAL );
+
+ m_panel41 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel41->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ wxBoxSizer* bSizer162;
+ bSizer162 = new wxBoxSizer( wxVERTICAL );
+
+ m_bitmapLogo = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer162->Add( m_bitmapLogo, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_staticline341 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer162->Add( m_staticline341, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer174;
+ bSizer174 = new wxBoxSizer( wxHORIZONTAL );
+
+ wxBoxSizer* bSizer181;
+ bSizer181 = new wxBoxSizer( wxVERTICAL );
+
+ wxBoxSizer* bSizer187;
+ bSizer187 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText96 = new wxStaticText( m_panel41, wxID_ANY, _("Source code written in C++ using:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText96->Wrap( -1 );
+ bSizer187->Add( m_staticText96, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer171;
+ bSizer171 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_hyperlink11 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("MS Visual C++"), wxT("http://www.visualstudio.com"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink11->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink11->SetToolTip( _("http://www.visualstudio.com") );
+
+ bSizer171->Add( m_hyperlink11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink7 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxWidgets"), wxT("http://www.wxwidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink7->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink7->SetToolTip( _("http://www.wxwidgets.org") );
+
+ bSizer171->Add( m_hyperlink7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink14 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("wxFormBuilder"), wxT("http://wxformbuilder.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink14->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink14->SetToolTip( _("http://wxformbuilder.org") );
+
+ bSizer171->Add( m_hyperlink14, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink16 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Artistic Style"), wxT("http://astyle.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink16->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink16->SetToolTip( _("http://astyle.sourceforge.net") );
+
+ bSizer171->Add( m_hyperlink16, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer187->Add( bSizer171, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer172;
+ bSizer172 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_hyperlink15 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zen::Xml"), wxT("http://zenxml.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink15->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink15->SetToolTip( _("http://zenxml.sourceforge.net") );
+
+ bSizer172->Add( m_hyperlink15, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink12 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Google Test"), wxT("http://code.google.com/p/googletest"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink12->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink12->SetToolTip( _("http://code.google.com/p/googletest") );
+
+ bSizer172->Add( m_hyperlink12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink13 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Boost"), wxT("http://www.boost.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink13->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink13->SetToolTip( _("http://www.boost.org") );
+
+ bSizer172->Add( m_hyperlink13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink10 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("libssh2"), wxT("http://www.libssh2.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink10->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink10->SetToolTip( _("http://www.libssh2.org") );
+
+ bSizer172->Add( m_hyperlink10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink18 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("NSIS"), wxT("http://nsis.sourceforge.net"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink18->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink18->SetToolTip( _("http://nsis.sourceforge.net") );
+
+ bSizer172->Add( m_hyperlink18, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink9 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("Inno Setup"), wxT("http://www.jrsoftware.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink9->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink9->SetToolTip( _("http://www.jrsoftware.org") );
+
+ bSizer172->Add( m_hyperlink9, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer187->Add( bSizer172, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer181->Add( bSizer187, 0, wxALL|wxEXPAND, 5 );
+
+ m_panelDonate = new wxPanel( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panelDonate->SetBackgroundColour( wxColour( 153, 170, 187 ) );
+
+ wxBoxSizer* bSizer183;
+ bSizer183 = new wxBoxSizer( wxVERTICAL );
+
+ m_panel39 = new wxPanel( m_panelDonate, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_panel39->SetBackgroundColour( wxColour( 221, 221, 255 ) );
+
+ wxBoxSizer* bSizer184;
+ bSizer184 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapDonate = new wxStaticBitmap( m_panel39, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer184->Add( m_bitmapDonate, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+ wxBoxSizer* bSizer178;
+ bSizer178 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText83 = new wxStaticText( m_panel39, wxID_ANY, _("If you like FreeFileSync:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText83->Wrap( -1 );
+ m_staticText83->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+ m_staticText83->SetForegroundColour( wxColour( 0, 0, 0 ) );
+
+ bSizer178->Add( m_staticText83, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+ m_buttonDonate = new wxButton( m_panel39, wxID_ANY, _("Donate with PayPal"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_buttonDonate->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );
+ m_buttonDonate->SetToolTip( _("http://www.freefilesync.org/donate.php") );
+
+ bSizer178->Add( m_buttonDonate, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
+
+
+ bSizer184->Add( bSizer178, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer184->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ m_panel39->SetSizer( bSizer184 );
+ m_panel39->Layout();
+ bSizer184->Fit( m_panel39 );
+ bSizer183->Add( m_panel39, 0, wxEXPAND|wxALL, 5 );
+
+
+ m_panelDonate->SetSizer( bSizer183 );
+ m_panelDonate->Layout();
+ bSizer183->Fit( m_panelDonate );
+ bSizer181->Add( m_panelDonate, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
+
+ wxBoxSizer* bSizer186;
+ bSizer186 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText94 = new wxStaticText( m_panel41, wxID_ANY, _("Feedback and suggestions are welcome"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText94->Wrap( -1 );
+ bSizer186->Add( m_staticText94, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer166;
+ bSizer166 = new wxBoxSizer( wxHORIZONTAL );
+
+
+ bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapHomepage = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapHomepage->SetToolTip( _("Homepage") );
+
+ bSizer166->Add( m_bitmapHomepage, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_hyperlink1 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("FreeFileSync.org"), wxT("http://www.freefilesync.org/"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink1->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
+ m_hyperlink1->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink1->SetToolTip( _("http://www.freefilesync.org") );
+
+ bSizer166->Add( m_hyperlink1, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
+
+ m_bitmapEmail = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_bitmapEmail->SetToolTip( _("Email") );
+
+ bSizer166->Add( m_bitmapEmail, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+
+ m_hyperlink2 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("zenju@gmx.de"), wxT("mailto:zenju@gmx.de"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, true, wxEmptyString ) );
+ m_hyperlink2->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_hyperlink2->SetToolTip( _("mailto:zenju@gmx.de") );
+
+ bSizer166->Add( m_hyperlink2, 0, wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer166->Add( 0, 0, 1, wxEXPAND, 5 );
+
+
+ bSizer186->Add( bSizer166, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer181->Add( bSizer186, 0, wxALL|wxEXPAND, 5 );
+
+ m_staticline34 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer181->Add( m_staticline34, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer185;
+ bSizer185 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText93 = new wxStaticText( m_panel41, wxID_ANY, _("Published under the GNU General Public License"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText93->Wrap( -1 );
+ bSizer185->Add( m_staticText93, 0, wxALL, 5 );
+
+ wxBoxSizer* bSizer1671;
+ bSizer1671 = new wxBoxSizer( wxHORIZONTAL );
+
+ m_bitmapGpl = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ bSizer1671->Add( m_bitmapGpl, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+
+ m_hyperlink5 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("http://www.gnu.org/licenses/gpl-3.0"), wxT("http://www.gnu.org/licenses/gpl-3.0"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ m_hyperlink5->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+
+ bSizer1671->Add( m_hyperlink5, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer185->Add( bSizer1671, 0, wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+
+ bSizer181->Add( bSizer185, 0, wxALL|wxEXPAND, 5 );
+
+
+ bSizer174->Add( bSizer181, 0, 0, 5 );
+
+ m_staticline37 = new wxStaticLine( m_panel41, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
+ bSizer174->Add( m_staticline37, 0, wxEXPAND, 5 );
+
+ wxBoxSizer* bSizer177;
+ bSizer177 = new wxBoxSizer( wxVERTICAL );
+
+ m_staticText54 = new wxStaticText( m_panel41, wxID_ANY, _("Many thanks for localization:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText54->Wrap( 200 );
+ m_staticText54->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) );
+
+ bSizer177->Add( m_staticText54, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
+
+
+ bSizer177->Add( 0, 5, 0, 0, 5 );
+
+ m_scrolledWindowTranslators = new wxScrolledWindow( m_panel41, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxVSCROLL );
+ m_scrolledWindowTranslators->SetScrollRate( 10, 10 );
+ m_scrolledWindowTranslators->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );
+ m_scrolledWindowTranslators->SetMinSize( wxSize( 220,-1 ) );
+
+ fgSizerTranslators = new wxFlexGridSizer( 0, 2, 2, 10 );
+ fgSizerTranslators->SetFlexibleDirection( wxBOTH );
+ fgSizerTranslators->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+
+ m_scrolledWindowTranslators->SetSizer( fgSizerTranslators );
+ m_scrolledWindowTranslators->Layout();
+ fgSizerTranslators->Fit( m_scrolledWindowTranslators );
+ bSizer177->Add( m_scrolledWindowTranslators, 1, wxALIGN_CENTER_HORIZONTAL|wxLEFT|wxEXPAND, 5 );
+
+
+ bSizer174->Add( bSizer177, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
+
+
+ bSizer162->Add( bSizer174, 0, 0, 5 );
+
+
+ m_panel41->SetSizer( bSizer162 );
+ m_panel41->Layout();
+ bSizer162->Fit( m_panel41 );
+ bSizer31->Add( m_panel41, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
+
+ m_staticline36 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bSizer31->Add( m_staticline36, 0, wxEXPAND, 5 );
+
+ bSizerStdButtons = new wxBoxSizer( wxHORIZONTAL );
+
+ m_buttonClose = new wxButton( this, wxID_OK, _("Close"), wxDefaultPosition, wxSize( -1,-1 ), 0 );
+ m_buttonClose->SetDefault();
+ bSizerStdButtons->Add( m_buttonClose, 0, wxALL|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5 );
+
+
+ bSizer31->Add( bSizerStdButtons, 0, wxALIGN_RIGHT, 5 );
+
+
+ this->SetSizer( bSizer31 );
+ this->Layout();
+ bSizer31->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( AboutDlgGenerated::OnClose ) );
+ m_buttonDonate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnDonate ), NULL, this );
+ m_buttonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDlgGenerated::OnOK ), NULL, this );
}
AboutDlgGenerated::~AboutDlgGenerated()
diff --git a/FreeFileSync/Source/ui/gui_generated.h b/FreeFileSync/Source/ui/gui_generated.h
index 036439e1..bb479d22 100644
--- a/FreeFileSync/Source/ui/gui_generated.h
+++ b/FreeFileSync/Source/ui/gui_generated.h
@@ -14,10 +14,10 @@
class FolderHistoryBox;
class OnCompletionBox;
class ToggleButton;
-namespace zen{ class BitmapTextButton; }
-namespace zen{ class Graph2D; }
-namespace zen{ class Grid; }
-namespace zen{ class TripleSplitter; }
+namespace zen { class BitmapTextButton; }
+namespace zen { class Graph2D; }
+namespace zen { class Grid; }
+namespace zen { class TripleSplitter; }
#include <wx/string.h>
#include <wx/bitmap.h>
@@ -62,935 +62,939 @@ namespace zen{ class TripleSplitter; }
///////////////////////////////////////////////////////////////////////////////
/// Class MainDialogGenerated
///////////////////////////////////////////////////////////////////////////////
-class MainDialogGenerated : public wxFrame
+class MainDialogGenerated : public wxFrame
{
- private:
-
- protected:
- wxMenuBar* m_menubar1;
- wxMenu* m_menuFile;
- wxMenuItem* m_menuItemNew;
- wxMenuItem* m_menuItemLoad;
- wxMenuItem* m_menuItemSave;
- wxMenuItem* m_menuItemSaveAs;
- wxMenuItem* m_menuItemSaveAsBatch;
- wxMenu* m_menu4;
- wxMenuItem* m_menuItemCompare;
- wxMenuItem* m_menuItemCompSettings;
- wxMenuItem* m_menuItemFilter;
- wxMenuItem* m_menuItemSyncSettings;
- wxMenuItem* m_menuItemSynchronize;
- wxMenu* m_menuTools;
- wxMenuItem* m_menuItemOptions;
- wxMenu* m_menuLanguages;
- wxMenu* m_menuHelp;
- wxMenuItem* m_menuItemHelp;
- wxMenu* m_menuCheckVersion;
- wxMenuItem* m_menuItemCheckVersionNow;
- wxMenuItem* m_menuItemCheckVersionAuto;
- wxMenuItem* m_menuItemAbout;
- wxBoxSizer* bSizerPanelHolder;
- wxPanel* m_panelTopButtons;
- wxBoxSizer* bSizerTopButtons;
- zen::BitmapTextButton* m_buttonCancel;
- zen::BitmapTextButton* m_buttonCompare;
- wxBitmapButton* m_bpButtonCmpConfig;
- wxBitmapButton* m_bpButtonCmpContext;
- wxBitmapButton* m_bpButtonFilter;
- wxBitmapButton* m_bpButtonFilterContext;
- wxBitmapButton* m_bpButtonSyncConfig;
- wxBitmapButton* m_bpButtonSyncContext;
- zen::BitmapTextButton* m_buttonSync;
- wxPanel* m_panelDirectoryPairs;
- wxStaticText* m_staticTextResolvedPathL;
- wxBitmapButton* m_bpButtonAddPair;
- wxButton* m_buttonSelectFolderLeft;
- wxPanel* m_panelTopCenter;
- wxBitmapButton* m_bpButtonSwapSides;
- wxStaticText* m_staticTextResolvedPathR;
- wxButton* m_buttonSelectFolderRight;
- wxScrolledWindow* m_scrolledWindowFolderPairs;
- wxBoxSizer* bSizerAddFolderPairs;
- zen::Grid* m_gridNavi;
- wxPanel* m_panelCenter;
- zen::TripleSplitter* m_splitterMain;
- zen::Grid* m_gridMainL;
- zen::Grid* m_gridMainC;
- zen::Grid* m_gridMainR;
- wxPanel* m_panelStatusBar;
- wxBoxSizer* bSizerFileStatus;
- wxBoxSizer* bSizerStatusLeft;
- wxBoxSizer* bSizerStatusLeftDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryLeft;
- wxStaticText* m_staticTextStatusLeftDirs;
- wxBoxSizer* bSizerStatusLeftFiles;
- wxStaticBitmap* m_bitmapSmallFileLeft;
- wxStaticText* m_staticTextStatusLeftFiles;
- wxStaticText* m_staticTextStatusLeftBytes;
- wxStaticLine* m_staticline9;
- wxStaticText* m_staticTextStatusCenter;
- wxBoxSizer* bSizerStatusRight;
- wxStaticLine* m_staticline10;
- wxBoxSizer* bSizerStatusRightDirectories;
- wxStaticBitmap* m_bitmapSmallDirectoryRight;
- wxStaticText* m_staticTextStatusRightDirs;
- wxBoxSizer* bSizerStatusRightFiles;
- wxStaticBitmap* m_bitmapSmallFileRight;
- wxStaticText* m_staticTextStatusRightFiles;
- wxStaticText* m_staticTextStatusRightBytes;
- wxStaticText* m_staticTextFullStatus;
- wxPanel* m_panelSearch;
- wxBitmapButton* m_bpButtonHideSearch;
- wxStaticText* m_staticText101;
- wxTextCtrl* m_textCtrlSearchTxt;
- wxCheckBox* m_checkBoxMatchCase;
- wxPanel* m_panelConfig;
- wxBoxSizer* bSizerConfig;
- wxBitmapButton* m_bpButtonNew;
- wxStaticText* m_staticText951;
- wxBitmapButton* m_bpButtonOpen;
- wxStaticText* m_staticText95;
- wxBitmapButton* m_bpButtonSave;
- wxStaticText* m_staticText961;
- wxBitmapButton* m_bpButtonSaveAs;
- wxBitmapButton* m_bpButtonSaveAsBatch;
- wxStaticText* m_staticText97;
- wxListBox* m_listBoxHistory;
- wxPanel* m_panelViewFilter;
- wxBoxSizer* bSizerViewFilter;
- wxStaticText* m_staticTextViewType;
- ToggleButton* m_bpButtonViewTypeSyncAction;
- ToggleButton* m_bpButtonShowExcluded;
- wxStaticText* m_staticTextSelectView;
- ToggleButton* m_bpButtonShowDeleteLeft;
- ToggleButton* m_bpButtonShowUpdateLeft;
- ToggleButton* m_bpButtonShowCreateLeft;
- ToggleButton* m_bpButtonShowLeftOnly;
- ToggleButton* m_bpButtonShowLeftNewer;
- ToggleButton* m_bpButtonShowEqual;
- ToggleButton* m_bpButtonShowDoNothing;
- ToggleButton* m_bpButtonShowDifferent;
- ToggleButton* m_bpButtonShowRightNewer;
- ToggleButton* m_bpButtonShowRightOnly;
- ToggleButton* m_bpButtonShowCreateRight;
- ToggleButton* m_bpButtonShowUpdateRight;
- ToggleButton* m_bpButtonShowDeleteRight;
- ToggleButton* m_bpButtonShowConflict;
- wxStaticText* m_staticText96;
- wxPanel* m_panelStatistics;
- wxBoxSizer* bSizer1801;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticText* m_staticTextData;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticText* m_staticTextCreateRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticText* m_staticTextDeleteRight;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnConfigNew( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigLoad( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigSave( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigSaveAs( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSaveAsBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuQuit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCompare( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCmpSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuOptions( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuFindItem( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuResetLayout( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuExportFileList( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnShowHelp( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnMenuAbout( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCompSettingsContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnCompSettingsContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnGlobalFilterContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnGlobalFilterContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncSettingsContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncSettingsContext( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopFolderPairAdd( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopFolderPairRemove( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSwapSides( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopLocalCompCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopLocalFilterCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTopLocalSyncCfg( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHideSearchPanel( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSearchGridEnter( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCfgHistoryKeyEvent( wxKeyEvent& event ) { event.Skip(); }
- virtual void OnLoadFromHistory( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLoadFromHistoryDoubleClick( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCfgHistoryRightClick( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnToggleViewType( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleViewButton( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnViewButtonRightClick( wxMouseEvent& event ) { event.Skip(); }
-
-
- public:
- wxPanel* m_panelTopLeft;
- wxBitmapButton* m_bpButtonRemovePair;
- FolderHistoryBox* m_folderPathLeft;
- wxBitmapButton* m_bpButtonSelectAltFolderLeft;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
- wxPanel* m_panelTopRight;
- FolderHistoryBox* m_folderPathRight;
- wxBitmapButton* m_bpButtonSelectAltFolderRight;
- wxBoxSizer* bSizerStatistics;
- wxBoxSizer* bSizerData;
-
- MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 900,600 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
-
- ~MainDialogGenerated();
-
+private:
+
+protected:
+ wxMenuBar* m_menubar1;
+ wxMenu* m_menuFile;
+ wxMenuItem* m_menuItemNew;
+ wxMenuItem* m_menuItemLoad;
+ wxMenuItem* m_menuItemSave;
+ wxMenuItem* m_menuItemSaveAs;
+ wxMenuItem* m_menuItemSaveAsBatch;
+ wxMenu* m_menu4;
+ wxMenuItem* m_menuItemCompare;
+ wxMenuItem* m_menuItemCompSettings;
+ wxMenuItem* m_menuItemFilter;
+ wxMenuItem* m_menuItemSyncSettings;
+ wxMenuItem* m_menuItemSynchronize;
+ wxMenu* m_menuTools;
+ wxMenuItem* m_menuItemOptions;
+ wxMenu* m_menuLanguages;
+ wxMenu* m_menuHelp;
+ wxMenuItem* m_menuItemHelp;
+ wxMenu* m_menuCheckVersion;
+ wxMenuItem* m_menuItemCheckVersionNow;
+ wxMenuItem* m_menuItemCheckVersionAuto;
+ wxMenuItem* m_menuItemAbout;
+ wxBoxSizer* bSizerPanelHolder;
+ wxPanel* m_panelTopButtons;
+ wxBoxSizer* bSizerTopButtons;
+ zen::BitmapTextButton* m_buttonCancel;
+ zen::BitmapTextButton* m_buttonCompare;
+ wxBitmapButton* m_bpButtonCmpConfig;
+ wxBitmapButton* m_bpButtonCmpContext;
+ wxBitmapButton* m_bpButtonFilter;
+ wxBitmapButton* m_bpButtonFilterContext;
+ wxBitmapButton* m_bpButtonSyncConfig;
+ wxBitmapButton* m_bpButtonSyncContext;
+ zen::BitmapTextButton* m_buttonSync;
+ wxPanel* m_panelDirectoryPairs;
+ wxStaticText* m_staticTextResolvedPathL;
+ wxBitmapButton* m_bpButtonAddPair;
+ wxButton* m_buttonSelectFolderLeft;
+ wxPanel* m_panelTopCenter;
+ wxBitmapButton* m_bpButtonSwapSides;
+ wxStaticText* m_staticTextResolvedPathR;
+ wxButton* m_buttonSelectFolderRight;
+ wxScrolledWindow* m_scrolledWindowFolderPairs;
+ wxBoxSizer* bSizerAddFolderPairs;
+ zen::Grid* m_gridNavi;
+ wxPanel* m_panelCenter;
+ zen::TripleSplitter* m_splitterMain;
+ zen::Grid* m_gridMainL;
+ zen::Grid* m_gridMainC;
+ zen::Grid* m_gridMainR;
+ wxPanel* m_panelStatusBar;
+ wxBoxSizer* bSizerFileStatus;
+ wxBoxSizer* bSizerStatusLeft;
+ wxBoxSizer* bSizerStatusLeftDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryLeft;
+ wxStaticText* m_staticTextStatusLeftDirs;
+ wxBoxSizer* bSizerStatusLeftFiles;
+ wxStaticBitmap* m_bitmapSmallFileLeft;
+ wxStaticText* m_staticTextStatusLeftFiles;
+ wxStaticText* m_staticTextStatusLeftBytes;
+ wxStaticLine* m_staticline9;
+ wxStaticText* m_staticTextStatusCenter;
+ wxBoxSizer* bSizerStatusRight;
+ wxStaticLine* m_staticline10;
+ wxBoxSizer* bSizerStatusRightDirectories;
+ wxStaticBitmap* m_bitmapSmallDirectoryRight;
+ wxStaticText* m_staticTextStatusRightDirs;
+ wxBoxSizer* bSizerStatusRightFiles;
+ wxStaticBitmap* m_bitmapSmallFileRight;
+ wxStaticText* m_staticTextStatusRightFiles;
+ wxStaticText* m_staticTextStatusRightBytes;
+ wxStaticText* m_staticTextFullStatus;
+ wxPanel* m_panelSearch;
+ wxBitmapButton* m_bpButtonHideSearch;
+ wxStaticText* m_staticText101;
+ wxTextCtrl* m_textCtrlSearchTxt;
+ wxCheckBox* m_checkBoxMatchCase;
+ wxPanel* m_panelConfig;
+ wxBoxSizer* bSizerConfig;
+ wxBitmapButton* m_bpButtonNew;
+ wxStaticText* m_staticText951;
+ wxBitmapButton* m_bpButtonOpen;
+ wxStaticText* m_staticText95;
+ wxBitmapButton* m_bpButtonSave;
+ wxStaticText* m_staticText961;
+ wxBitmapButton* m_bpButtonSaveAs;
+ wxBitmapButton* m_bpButtonSaveAsBatch;
+ wxStaticText* m_staticText97;
+ wxListBox* m_listBoxHistory;
+ wxPanel* m_panelViewFilter;
+ wxBoxSizer* bSizerViewFilter;
+ wxStaticText* m_staticTextViewType;
+ ToggleButton* m_bpButtonViewTypeSyncAction;
+ ToggleButton* m_bpButtonShowExcluded;
+ wxStaticText* m_staticTextSelectView;
+ ToggleButton* m_bpButtonShowDeleteLeft;
+ ToggleButton* m_bpButtonShowUpdateLeft;
+ ToggleButton* m_bpButtonShowCreateLeft;
+ ToggleButton* m_bpButtonShowLeftOnly;
+ ToggleButton* m_bpButtonShowLeftNewer;
+ ToggleButton* m_bpButtonShowEqual;
+ ToggleButton* m_bpButtonShowDoNothing;
+ ToggleButton* m_bpButtonShowDifferent;
+ ToggleButton* m_bpButtonShowRightNewer;
+ ToggleButton* m_bpButtonShowRightOnly;
+ ToggleButton* m_bpButtonShowCreateRight;
+ ToggleButton* m_bpButtonShowUpdateRight;
+ ToggleButton* m_bpButtonShowDeleteRight;
+ ToggleButton* m_bpButtonShowConflict;
+ wxStaticText* m_staticText96;
+ wxPanel* m_panelStatistics;
+ wxBoxSizer* bSizer1801;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticText* m_staticTextData;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticText* m_staticTextCreateRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticText* m_staticTextDeleteRight;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnConfigNew( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigLoad( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigSave( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigSaveAs( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSaveAsBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuQuit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompare( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCmpSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuOptions( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuFindItem( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuResetLayout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuExportFileList( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnShowHelp( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnMenuAbout( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompSettingsContext( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompSettingsContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnGlobalFilterContext( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnGlobalFilterContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncSettingsContext( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncSettingsContext( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopFolderPairAdd( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopFolderPairRemove( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSwapSides( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopLocalCompCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopLocalFilterCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnTopLocalSyncCfg( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHideSearchPanel( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSearchGridEnter( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCfgHistoryKeyEvent( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnLoadFromHistory( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLoadFromHistoryDoubleClick( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCfgHistoryRightClick( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnToggleViewType( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleViewButton( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnViewButtonRightClick( wxMouseEvent& event ) { event.Skip(); }
+
+
+public:
+ wxPanel* m_panelTopLeft;
+ wxBitmapButton* m_bpButtonRemovePair;
+ FolderHistoryBox* m_folderPathLeft;
+ wxBitmapButton* m_bpButtonSelectAltFolderLeft;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+ wxPanel* m_panelTopRight;
+ FolderHistoryBox* m_folderPathRight;
+ wxBitmapButton* m_bpButtonSelectAltFolderRight;
+ wxBoxSizer* bSizerStatistics;
+ wxBoxSizer* bSizerData;
+
+ MainDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 900,600 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
+
+ ~MainDialogGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class ConfigDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class ConfigDlgGenerated : public wxDialog
+class ConfigDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticText* m_staticTextFolderPairLabel;
- wxListBox* m_listBoxFolderPair;
- wxNotebook* m_notebook;
- wxPanel* m_panelCompSettingsHolder;
- wxBoxSizer* bSizerLocalCompSettings;
- wxCheckBox* m_checkBoxUseLocalCmpOptions;
- wxStaticLine* m_staticline59;
- wxPanel* m_panelComparisonSettings;
- wxStaticText* m_staticText91;
- wxStaticBitmap* m_bitmapByTime;
- wxToggleButton* m_toggleBtnTimeSize;
- wxStaticBitmap* m_bitmapByContent;
- wxToggleButton* m_toggleBtnContent;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlCompVarDescription;
- wxStaticLine* m_staticline33;
- wxCheckBox* m_checkBoxSymlinksInclude;
- wxRadioButton* m_radioBtnSymlinksFollow;
- wxRadioButton* m_radioBtnSymlinksDirect;
- wxHyperlinkCtrl* m_hyperlink24;
- wxStaticLine* m_staticline44;
- wxStaticText* m_staticText112;
- wxTextCtrl* m_textCtrlTimeShift;
- wxStaticText* m_staticText1381;
- wxStaticText* m_staticText13811;
- wxHyperlinkCtrl* m_hyperlink241;
- wxStaticLine* m_staticline441;
- wxStaticLine* m_staticline331;
- wxPanel* m_panelFilterSettingsHolder;
- wxBoxSizer* bSizerLocalFilterSettings;
- wxStaticText* m_staticText144;
- wxStaticLine* m_staticline61;
- wxPanel* m_panelFilterSettings;
- wxStaticBitmap* m_bitmapInclude;
- wxStaticText* m_staticText78;
- wxTextCtrl* m_textCtrlInclude;
- wxStaticLine* m_staticline22;
- wxStaticBitmap* m_bitmapExclude;
- wxStaticText* m_staticText77;
- wxHyperlinkCtrl* m_hyperlink171;
- wxTextCtrl* m_textCtrlExclude;
- wxStaticLine* m_staticline24;
- wxStaticBitmap* m_bitmapFilterDate;
- wxStaticText* m_staticText79;
- wxSpinCtrl* m_spinCtrlTimespan;
- wxChoice* m_choiceUnitTimespan;
- wxStaticLine* m_staticline23;
- wxStaticBitmap* m_bitmapFilterSize;
- wxStaticText* m_staticText80;
- wxStaticText* m_staticText101;
- wxSpinCtrl* m_spinCtrlMinSize;
- wxChoice* m_choiceUnitMinSize;
- wxStaticText* m_staticText102;
- wxSpinCtrl* m_spinCtrlMaxSize;
- wxChoice* m_choiceUnitMaxSize;
- wxStaticLine* m_staticline62;
- wxStaticText* m_staticText44;
- wxStaticLine* m_staticline46;
- wxButton* m_buttonClear;
- wxPanel* m_panelSyncSettingsHolder;
- wxBoxSizer* bSizerLocalSyncSettings;
- wxCheckBox* m_checkBoxUseLocalSyncOptions;
- wxStaticLine* m_staticline60;
- wxPanel* m_panelSyncSettings;
- wxStaticText* m_staticText86;
- wxToggleButton* m_toggleBtnTwoWay;
- wxToggleButton* m_toggleBtnMirror;
- wxToggleButton* m_toggleBtnUpdate;
- wxToggleButton* m_toggleBtnCustom;
- wxCheckBox* m_checkBoxDetectMove;
- wxStaticLine* m_staticline53;
- wxTextCtrl* m_textCtrlSyncVarDescription;
- wxStaticLine* m_staticline43;
- wxBoxSizer* bSizerSyncConfig;
- wxStaticText* m_staticText119;
- wxStaticText* m_staticText120;
- wxFlexGridSizer* fgSizerSyncDirections;
- wxStaticBitmap* m_bitmapLeftOnly;
- wxStaticBitmap* m_bitmapLeftNewer;
- wxStaticBitmap* m_bitmapDifferent;
- wxStaticBitmap* m_bitmapConflict;
- wxStaticBitmap* m_bitmapRightNewer;
- wxStaticBitmap* m_bitmapRightOnly;
- wxBitmapButton* m_bpButtonLeftOnly;
- wxBitmapButton* m_bpButtonLeftNewer;
- wxBitmapButton* m_bpButtonDifferent;
- wxBitmapButton* m_bpButtonConflict;
- wxBitmapButton* m_bpButtonRightNewer;
- wxBitmapButton* m_bpButtonRightOnly;
- wxStaticBitmap* m_bitmapDatabase;
- wxStaticLine* m_staticline54;
- wxStaticText* m_staticText87;
- wxRadioButton* m_radioBtnPermanent;
- wxRadioButton* m_radioBtnRecycler;
- wxRadioButton* m_radioBtnVersioning;
- wxBoxSizer* bSizerVersioning;
- wxBitmapButton* m_bpButtonDeletionType;
- wxPanel* m_panelVersioning;
- FolderHistoryBox* m_versioningFolderPath;
- wxButton* m_buttonSelectVersioningFolder;
- wxBoxSizer* bSizer192;
- wxStaticText* m_staticText93;
- wxChoice* m_choiceVersioningStyle;
- wxStaticText* m_staticTextNamingCvtPart1;
- wxStaticText* m_staticTextNamingCvtPart2Bold;
- wxStaticText* m_staticTextNamingCvtPart3;
- wxHyperlinkCtrl* m_hyperlink17;
- wxBoxSizer* bSizerMiscConfig;
- wxStaticLine* m_staticline582;
- wxStaticText* m_staticText88;
- wxRadioButton* m_radioBtnIgnoreErrors;
- wxRadioButton* m_radioBtnPopupOnErrors;
- wxStaticLine* m_staticline57;
- wxBoxSizer* bSizerOnCompletion;
- wxStaticText* m_staticText89;
- OnCompletionBox* m_comboBoxOnCompletion;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void onListBoxKeyEvent( wxKeyEvent& event ) { event.Skip(); }
- virtual void OnSelectFolderPair( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleLocalCompSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnTimeSize( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnContentDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnContent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnChangeCompOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpComparisonSettings( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void onlTimeShiftKeyDown( wxKeyEvent& event ) { event.Skip(); }
- virtual void OnHelpTimeShift( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnChangeFilterOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnFilterReset( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleLocalSyncSettings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncTwoWayDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncTwoWay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncMirrorDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncMirror( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncUpdateDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncUpdate( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnSyncCustomDouble( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncCustom( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleDetectMovedFiles( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnLeftNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDifferent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnConflict( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRightNewer( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleDeletionType( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnChangeSyncOption( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpVersioning( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
- wxBitmapButton* m_bpButtonSelectAltFolder;
-
- ConfigDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~ConfigDlgGenerated();
-
+private:
+
+protected:
+ wxStaticText* m_staticTextFolderPairLabel;
+ wxListBox* m_listBoxFolderPair;
+ wxNotebook* m_notebook;
+ wxPanel* m_panelCompSettingsHolder;
+ wxBoxSizer* bSizerLocalCompSettings;
+ wxCheckBox* m_checkBoxUseLocalCmpOptions;
+ wxStaticLine* m_staticline59;
+ wxPanel* m_panelComparisonSettings;
+ wxStaticText* m_staticText91;
+ wxStaticBitmap* m_bitmapByTimeSize;
+ wxToggleButton* m_toggleBtnByTimeSize;
+ wxStaticBitmap* m_bitmapByContent;
+ wxToggleButton* m_toggleBtnByContent;
+ wxStaticBitmap* m_bitmapBySize;
+ wxToggleButton* m_toggleBtnBySize;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlCompVarDescription;
+ wxStaticLine* m_staticline33;
+ wxCheckBox* m_checkBoxSymlinksInclude;
+ wxRadioButton* m_radioBtnSymlinksFollow;
+ wxRadioButton* m_radioBtnSymlinksDirect;
+ wxHyperlinkCtrl* m_hyperlink24;
+ wxStaticLine* m_staticline44;
+ wxStaticText* m_staticText112;
+ wxTextCtrl* m_textCtrlTimeShift;
+ wxStaticText* m_staticText1381;
+ wxStaticText* m_staticText13811;
+ wxHyperlinkCtrl* m_hyperlink241;
+ wxStaticLine* m_staticline441;
+ wxStaticLine* m_staticline331;
+ wxPanel* m_panelFilterSettingsHolder;
+ wxBoxSizer* bSizerLocalFilterSettings;
+ wxStaticText* m_staticText144;
+ wxStaticLine* m_staticline61;
+ wxPanel* m_panelFilterSettings;
+ wxStaticBitmap* m_bitmapInclude;
+ wxStaticText* m_staticText78;
+ wxTextCtrl* m_textCtrlInclude;
+ wxStaticLine* m_staticline22;
+ wxStaticBitmap* m_bitmapExclude;
+ wxStaticText* m_staticText77;
+ wxHyperlinkCtrl* m_hyperlink171;
+ wxTextCtrl* m_textCtrlExclude;
+ wxStaticLine* m_staticline24;
+ wxStaticBitmap* m_bitmapFilterDate;
+ wxStaticText* m_staticText79;
+ wxSpinCtrl* m_spinCtrlTimespan;
+ wxChoice* m_choiceUnitTimespan;
+ wxStaticLine* m_staticline23;
+ wxStaticBitmap* m_bitmapFilterSize;
+ wxStaticText* m_staticText80;
+ wxStaticText* m_staticText101;
+ wxSpinCtrl* m_spinCtrlMinSize;
+ wxChoice* m_choiceUnitMinSize;
+ wxStaticText* m_staticText102;
+ wxSpinCtrl* m_spinCtrlMaxSize;
+ wxChoice* m_choiceUnitMaxSize;
+ wxStaticLine* m_staticline62;
+ wxStaticText* m_staticText44;
+ wxStaticLine* m_staticline46;
+ wxButton* m_buttonClear;
+ wxPanel* m_panelSyncSettingsHolder;
+ wxBoxSizer* bSizerLocalSyncSettings;
+ wxCheckBox* m_checkBoxUseLocalSyncOptions;
+ wxStaticLine* m_staticline60;
+ wxPanel* m_panelSyncSettings;
+ wxStaticText* m_staticText86;
+ wxToggleButton* m_toggleBtnTwoWay;
+ wxToggleButton* m_toggleBtnMirror;
+ wxToggleButton* m_toggleBtnUpdate;
+ wxToggleButton* m_toggleBtnCustom;
+ wxCheckBox* m_checkBoxDetectMove;
+ wxStaticLine* m_staticline53;
+ wxTextCtrl* m_textCtrlSyncVarDescription;
+ wxStaticLine* m_staticline43;
+ wxBoxSizer* bSizerSyncConfig;
+ wxStaticText* m_staticText119;
+ wxStaticText* m_staticText120;
+ wxFlexGridSizer* fgSizerSyncDirections;
+ wxStaticBitmap* m_bitmapLeftOnly;
+ wxStaticBitmap* m_bitmapLeftNewer;
+ wxStaticBitmap* m_bitmapDifferent;
+ wxStaticBitmap* m_bitmapConflict;
+ wxStaticBitmap* m_bitmapRightNewer;
+ wxStaticBitmap* m_bitmapRightOnly;
+ wxBitmapButton* m_bpButtonLeftOnly;
+ wxBitmapButton* m_bpButtonLeftNewer;
+ wxBitmapButton* m_bpButtonDifferent;
+ wxBitmapButton* m_bpButtonConflict;
+ wxBitmapButton* m_bpButtonRightNewer;
+ wxBitmapButton* m_bpButtonRightOnly;
+ wxStaticBitmap* m_bitmapDatabase;
+ wxStaticLine* m_staticline54;
+ wxStaticText* m_staticText87;
+ wxRadioButton* m_radioBtnPermanent;
+ wxRadioButton* m_radioBtnRecycler;
+ wxRadioButton* m_radioBtnVersioning;
+ wxBoxSizer* bSizerVersioning;
+ wxBitmapButton* m_bpButtonDeletionType;
+ wxPanel* m_panelVersioning;
+ FolderHistoryBox* m_versioningFolderPath;
+ wxButton* m_buttonSelectVersioningFolder;
+ wxBoxSizer* bSizer192;
+ wxStaticText* m_staticText93;
+ wxChoice* m_choiceVersioningStyle;
+ wxStaticText* m_staticTextNamingCvtPart1;
+ wxStaticText* m_staticTextNamingCvtPart2Bold;
+ wxStaticText* m_staticTextNamingCvtPart3;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxBoxSizer* bSizerMiscConfig;
+ wxStaticLine* m_staticline582;
+ wxStaticText* m_staticText88;
+ wxRadioButton* m_radioBtnIgnoreErrors;
+ wxRadioButton* m_radioBtnPopupOnErrors;
+ wxStaticLine* m_staticline57;
+ wxBoxSizer* bSizerOnCompletion;
+ wxStaticText* m_staticText89;
+ OnCompletionBox* m_comboBoxOnCompletion;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void onListBoxKeyEvent( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnSelectFolderPair( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleLocalCompSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompByTimeSizeDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompByTimeSize( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompByContentDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompByContent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCompBySizeDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnCompBySize( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnChangeCompOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpComparisonSettings( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void onlTimeShiftKeyDown( wxKeyEvent& event ) { event.Skip(); }
+ virtual void OnHelpTimeShift( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnChangeFilterOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnFilterReset( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleLocalSyncSettings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncTwoWayDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncTwoWay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncMirrorDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncMirror( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncUpdateDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncUpdate( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnSyncCustomDouble( wxMouseEvent& event ) { event.Skip(); }
+ virtual void OnSyncCustom( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleDetectMovedFiles( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnExLeftSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnLeftNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDifferent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnConflict( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRightNewer( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnExRightSideOnly( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionPermanent( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDeletionVersioning( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleDeletionType( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnChangeSyncOption( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpVersioning( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+ wxBitmapButton* m_bpButtonSelectAltFolder;
+
+ ConfigDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("dummy"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~ConfigDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class FolderPairPanelGenerated
///////////////////////////////////////////////////////////////////////////////
-class FolderPairPanelGenerated : public wxPanel
+class FolderPairPanelGenerated : public wxPanel
{
- private:
-
- protected:
- wxButton* m_buttonSelectFolderLeft;
- wxButton* m_buttonSelectFolderRight;
-
- public:
- wxPanel* m_panelLeft;
- wxBitmapButton* m_bpButtonFolderPairOptions;
- wxBitmapButton* m_bpButtonRemovePair;
- FolderHistoryBox* m_folderPathLeft;
- wxBitmapButton* m_bpButtonSelectAltFolderLeft;
- wxPanel* m_panel20;
- wxBitmapButton* m_bpButtonAltCompCfg;
- wxBitmapButton* m_bpButtonLocalFilter;
- wxBitmapButton* m_bpButtonAltSyncCfg;
- wxPanel* m_panelRight;
- FolderHistoryBox* m_folderPathRight;
- wxBitmapButton* m_bpButtonSelectAltFolderRight;
-
- FolderPairPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0 );
- ~FolderPairPanelGenerated();
-
+private:
+
+protected:
+ wxButton* m_buttonSelectFolderLeft;
+ wxButton* m_buttonSelectFolderRight;
+
+public:
+ wxPanel* m_panelLeft;
+ wxBitmapButton* m_bpButtonFolderPairOptions;
+ wxBitmapButton* m_bpButtonRemovePair;
+ FolderHistoryBox* m_folderPathLeft;
+ wxBitmapButton* m_bpButtonSelectAltFolderLeft;
+ wxPanel* m_panel20;
+ wxBitmapButton* m_bpButtonAltCompCfg;
+ wxBitmapButton* m_bpButtonLocalFilter;
+ wxBitmapButton* m_bpButtonAltSyncCfg;
+ wxPanel* m_panelRight;
+ FolderHistoryBox* m_folderPathRight;
+ wxBitmapButton* m_bpButtonSelectAltFolderRight;
+
+ FolderPairPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0 );
+ ~FolderPairPanelGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SftpSetupDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SftpSetupDlgGenerated : public wxDialog
+class SftpSetupDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticBitmap* m_bitmapSftp;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline371;
- wxPanel* m_panel41;
- wxStaticText* m_staticText12311;
- wxTextCtrl* m_textCtrlServer;
- wxStaticText* m_staticText1233;
- wxTextCtrl* m_textCtrlPort;
- wxStaticText* m_staticText1381;
- wxStaticText* m_staticText1382;
- wxStaticText* m_staticText138;
- wxStaticText* m_staticText123;
- wxTextCtrl* m_textCtrlUserName;
- wxStaticText* m_staticText1231;
- wxTextCtrl* m_textCtrlPasswordVisible;
- wxTextCtrl* m_textCtrlPasswordHidden;
- wxCheckBox* m_checkBoxShowPassword;
- wxStaticText* m_staticText1232;
- wxTextCtrl* m_textCtrlServerPath;
- wxButton* m_buttonSelectFolder;
- wxStaticLine* m_staticline12;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnToggleShowPassword( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnBrowseSftpFolder( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- SftpSetupDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~SftpSetupDlgGenerated();
-
+private:
+
+protected:
+ wxStaticBitmap* m_bitmapSftp;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panel41;
+ wxStaticText* m_staticText12311;
+ wxTextCtrl* m_textCtrlServer;
+ wxStaticText* m_staticText1233;
+ wxTextCtrl* m_textCtrlPort;
+ wxStaticText* m_staticText1381;
+ wxStaticText* m_staticText1382;
+ wxStaticText* m_staticText138;
+ wxStaticText* m_staticText123;
+ wxTextCtrl* m_textCtrlUserName;
+ wxStaticText* m_staticText1231;
+ wxTextCtrl* m_textCtrlPasswordVisible;
+ wxTextCtrl* m_textCtrlPasswordHidden;
+ wxCheckBox* m_checkBoxShowPassword;
+ wxStaticText* m_staticText1232;
+ wxTextCtrl* m_textCtrlServerPath;
+ wxButton* m_buttonSelectFolder;
+ wxStaticLine* m_staticline12;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnToggleShowPassword( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnBrowseSftpFolder( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ SftpSetupDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~SftpSetupDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SftpFolderPickerGenerated
///////////////////////////////////////////////////////////////////////////////
-class SftpFolderPickerGenerated : public wxDialog
+class SftpFolderPickerGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticBitmap* m_bitmapSftp;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline371;
- wxPanel* m_panel41;
- wxTreeCtrl* m_treeCtrlFileSystem;
- wxStaticLine* m_staticline12;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnExpandNode( wxTreeEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- SftpFolderPickerGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~SftpFolderPickerGenerated();
-
+private:
+
+protected:
+ wxStaticBitmap* m_bitmapSftp;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panel41;
+ wxTreeCtrl* m_treeCtrlFileSystem;
+ wxStaticLine* m_staticline12;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnExpandNode( wxTreeEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ SftpFolderPickerGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("SSH File Transfer Protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~SftpFolderPickerGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SyncConfirmationDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SyncConfirmationDlgGenerated : public wxDialog
+class SyncConfirmationDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticBitmap* m_bitmapSync;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline371;
- wxPanel* m_panelStatistics;
- wxStaticLine* m_staticline38;
- wxStaticText* m_staticText84;
- wxStaticText* m_staticTextVariant;
- wxStaticLine* m_staticline14;
- wxStaticText* m_staticText83;
- wxStaticBitmap* m_bitmapDeleteLeft;
- wxStaticBitmap* m_bitmapUpdateLeft;
- wxStaticBitmap* m_bitmapCreateLeft;
- wxStaticBitmap* m_bitmapData;
- wxStaticBitmap* m_bitmapCreateRight;
- wxStaticBitmap* m_bitmapUpdateRight;
- wxStaticBitmap* m_bitmapDeleteRight;
- wxStaticText* m_staticTextDeleteLeft;
- wxStaticText* m_staticTextUpdateLeft;
- wxStaticText* m_staticTextCreateLeft;
- wxStaticText* m_staticTextData;
- wxStaticText* m_staticTextCreateRight;
- wxStaticText* m_staticTextUpdateRight;
- wxStaticText* m_staticTextDeleteRight;
- wxStaticLine* m_staticline381;
- wxStaticLine* m_staticline12;
- wxCheckBox* m_checkBoxDontShowAgain;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonStartSync;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("FreeFileSync"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~SyncConfirmationDlgGenerated();
-
+private:
+
+protected:
+ wxStaticBitmap* m_bitmapSync;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline371;
+ wxPanel* m_panelStatistics;
+ wxStaticLine* m_staticline38;
+ wxStaticText* m_staticText84;
+ wxStaticText* m_staticTextVariant;
+ wxStaticLine* m_staticline14;
+ wxStaticText* m_staticText83;
+ wxStaticBitmap* m_bitmapDeleteLeft;
+ wxStaticBitmap* m_bitmapUpdateLeft;
+ wxStaticBitmap* m_bitmapCreateLeft;
+ wxStaticBitmap* m_bitmapData;
+ wxStaticBitmap* m_bitmapCreateRight;
+ wxStaticBitmap* m_bitmapUpdateRight;
+ wxStaticBitmap* m_bitmapDeleteRight;
+ wxStaticText* m_staticTextDeleteLeft;
+ wxStaticText* m_staticTextUpdateLeft;
+ wxStaticText* m_staticTextCreateLeft;
+ wxStaticText* m_staticTextData;
+ wxStaticText* m_staticTextCreateRight;
+ wxStaticText* m_staticTextUpdateRight;
+ wxStaticText* m_staticTextDeleteRight;
+ wxStaticLine* m_staticline381;
+ wxStaticLine* m_staticline12;
+ wxCheckBox* m_checkBoxDontShowAgain;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonStartSync;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnStartSync( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ SyncConfirmationDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("FreeFileSync"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~SyncConfirmationDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class CompareProgressDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class CompareProgressDlgGenerated : public wxPanel
+class CompareProgressDlgGenerated : public wxPanel
{
- private:
-
- protected:
- wxPanel* m_panelStatistics;
- wxStaticText* m_staticTextItemsFoundLabel;
- wxStaticText* m_staticTextItemsFound;
- wxStaticText* m_staticTextItemsRemainingLabel;
- wxBoxSizer* bSizerItemsRemaining;
- wxStaticText* m_staticTextItemsRemaining;
- wxStaticText* m_staticTextDataRemaining;
- wxStaticText* m_staticTextTimeRemainingLabel;
- wxStaticText* m_staticTextTimeRemaining;
- wxStaticText* m_staticTextTimeElapsed;
- wxStaticText* m_staticTextStatus;
- wxGauge* m_gauge2;
- wxStaticText* m_staticTextSpeed;
-
- public:
-
- CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxRAISED_BORDER );
- ~CompareProgressDlgGenerated();
-
+private:
+
+protected:
+ wxPanel* m_panelStatistics;
+ wxStaticText* m_staticTextItemsFoundLabel;
+ wxStaticText* m_staticTextItemsFound;
+ wxStaticText* m_staticTextItemsRemainingLabel;
+ wxBoxSizer* bSizerItemsRemaining;
+ wxStaticText* m_staticTextItemsRemaining;
+ wxStaticText* m_staticTextDataRemaining;
+ wxStaticText* m_staticTextTimeRemainingLabel;
+ wxStaticText* m_staticTextTimeRemaining;
+ wxStaticText* m_staticTextTimeElapsed;
+ wxStaticText* m_staticTextStatus;
+ wxGauge* m_gauge2;
+ wxStaticText* m_staticTextSpeed;
+
+public:
+
+ CompareProgressDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxRAISED_BORDER );
+ ~CompareProgressDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SyncProgressPanelGenerated
///////////////////////////////////////////////////////////////////////////////
-class SyncProgressPanelGenerated : public wxPanel
+class SyncProgressPanelGenerated : public wxPanel
{
- private:
-
- protected:
- wxBoxSizer* bSizer42;
- wxBoxSizer* bSizer171;
- wxStaticText* m_staticText87;
-
- public:
- wxBoxSizer* bSizerRoot;
- wxStaticBitmap* m_bitmapStatus;
- wxStaticText* m_staticTextPhase;
- wxAnimationCtrl* m_animCtrlSyncing;
- wxBitmapButton* m_bpButtonMinimizeToTray;
- wxBoxSizer* bSizerStatusText;
- wxStaticText* m_staticTextStatus;
- wxPanel* m_panelProgress;
- wxPanel* m_panelItemsProcessed;
- wxStaticText* m_staticTextProcessedObj;
- wxStaticText* m_staticTextDataProcessed;
- wxPanel* m_panelItemsRemaining;
- wxStaticText* m_staticTextRemainingObj;
- wxStaticText* m_staticTextDataRemaining;
- wxPanel* m_panelTimeRemaining;
- wxStaticText* m_staticTextRemTime;
- wxStaticText* m_staticTextTimeElapsed;
- wxStaticBitmap* m_bitmapGraphKeyBytes;
- zen::Graph2D* m_panelGraphBytes;
- wxStaticBitmap* m_bitmapGraphKeyItems;
- zen::Graph2D* m_panelGraphItems;
- wxNotebook* m_notebookResult;
- wxStaticLine* m_staticlineFooter;
- wxBoxSizer* bSizerStdButtons;
- wxBoxSizer* bSizerOnCompletion;
- OnCompletionBox* m_comboBoxOnCompletion;
- wxButton* m_buttonClose;
- wxButton* m_buttonPause;
- wxButton* m_buttonStop;
-
- SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
- ~SyncProgressPanelGenerated();
-
+private:
+
+protected:
+ wxBoxSizer* bSizer42;
+ wxBoxSizer* bSizer171;
+ wxStaticText* m_staticText87;
+
+public:
+ wxBoxSizer* bSizerRoot;
+ wxStaticBitmap* m_bitmapStatus;
+ wxStaticText* m_staticTextPhase;
+ wxAnimationCtrl* m_animCtrlSyncing;
+ wxBitmapButton* m_bpButtonMinimizeToTray;
+ wxBoxSizer* bSizerStatusText;
+ wxStaticText* m_staticTextStatus;
+ wxPanel* m_panelProgress;
+ wxPanel* m_panelItemsProcessed;
+ wxStaticText* m_staticTextProcessedObj;
+ wxStaticText* m_staticTextDataProcessed;
+ wxPanel* m_panelItemsRemaining;
+ wxStaticText* m_staticTextRemainingObj;
+ wxStaticText* m_staticTextDataRemaining;
+ wxPanel* m_panelTimeRemaining;
+ wxStaticText* m_staticTextRemTime;
+ wxStaticText* m_staticTextTimeElapsed;
+ wxStaticBitmap* m_bitmapGraphKeyBytes;
+ zen::Graph2D* m_panelGraphBytes;
+ wxStaticBitmap* m_bitmapGraphKeyItems;
+ zen::Graph2D* m_panelGraphItems;
+ wxNotebook* m_notebookResult;
+ wxStaticLine* m_staticlineFooter;
+ wxBoxSizer* bSizerStdButtons;
+ wxBoxSizer* bSizerOnCompletion;
+ OnCompletionBox* m_comboBoxOnCompletion;
+ wxButton* m_buttonClose;
+ wxButton* m_buttonPause;
+ wxButton* m_buttonStop;
+
+ SyncProgressPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL );
+ ~SyncProgressPanelGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class LogPanelGenerated
///////////////////////////////////////////////////////////////////////////////
-class LogPanelGenerated : public wxPanel
+class LogPanelGenerated : public wxPanel
{
- private:
-
- protected:
- ToggleButton* m_bpButtonErrors;
- ToggleButton* m_bpButtonWarnings;
- ToggleButton* m_bpButtonInfo;
- wxStaticLine* m_staticline13;
- zen::Grid* m_gridMessages;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnErrors( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnWarnings( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnInfo( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- LogPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL );
- ~LogPanelGenerated();
-
+private:
+
+protected:
+ ToggleButton* m_bpButtonErrors;
+ ToggleButton* m_bpButtonWarnings;
+ ToggleButton* m_bpButtonInfo;
+ wxStaticLine* m_staticline13;
+ zen::Grid* m_gridMessages;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnErrors( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnWarnings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnInfo( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ LogPanelGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL );
+ ~LogPanelGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class BatchDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class BatchDlgGenerated : public wxDialog
+class BatchDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticBitmap* m_bitmapBatchJob;
- wxStaticText* m_staticTextDescr;
- wxStaticLine* m_staticline18;
- wxPanel* m_panel35;
- wxStaticText* m_staticText82;
- wxRadioButton* m_radioBtnIgnoreErrors;
- wxRadioButton* m_radioBtnPopupOnErrors;
- wxRadioButton* m_radioBtnStopOnError;
- wxStaticLine* m_staticline26;
- wxCheckBox* m_checkBoxRunMinimized;
- wxStaticText* m_staticText81;
- OnCompletionBox* m_comboBoxOnCompletion;
- wxStaticLine* m_staticline25;
- wxCheckBox* m_checkBoxGenerateLogfile;
- wxPanel* m_panelLogfile;
- wxButton* m_buttonSelectLogFolder;
- wxCheckBox* m_checkBoxLogfilesLimit;
- wxSpinCtrl* m_spinCtrlLogfileLimit;
- wxHyperlinkCtrl* m_hyperlink17;
- wxStaticLine* m_staticline13;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonSaveAs;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnErrorStop( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleGenerateLogfile( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpScheduleBatch( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
- FolderHistoryBox* m_logFolderPath;
- wxBitmapButton* m_bpButtonSelectAltLogFolder;
-
- BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save as Batch Job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~BatchDlgGenerated();
-
+private:
+
+protected:
+ wxStaticBitmap* m_bitmapBatchJob;
+ wxStaticText* m_staticTextDescr;
+ wxStaticLine* m_staticline18;
+ wxPanel* m_panel35;
+ wxStaticText* m_staticText82;
+ wxRadioButton* m_radioBtnIgnoreErrors;
+ wxRadioButton* m_radioBtnPopupOnErrors;
+ wxRadioButton* m_radioBtnStopOnError;
+ wxStaticLine* m_staticline26;
+ wxCheckBox* m_checkBoxRunMinimized;
+ wxStaticText* m_staticText81;
+ OnCompletionBox* m_comboBoxOnCompletion;
+ wxStaticLine* m_staticline25;
+ wxCheckBox* m_checkBoxGenerateLogfile;
+ wxPanel* m_panelLogfile;
+ wxButton* m_buttonSelectLogFolder;
+ wxCheckBox* m_checkBoxLogfilesLimit;
+ wxSpinCtrl* m_spinCtrlLogfileLimit;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxStaticLine* m_staticline13;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonSaveAs;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnErrorIgnore( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorPopup( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnErrorStop( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleGenerateLogfile( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnToggleLogfilesLimit( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpScheduleBatch( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnSaveBatchJob( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+ FolderHistoryBox* m_logFolderPath;
+ wxBitmapButton* m_bpButtonSelectAltLogFolder;
+
+ BatchDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Save as Batch Job"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~BatchDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class DeleteDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class DeleteDlgGenerated : public wxDialog
+class DeleteDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticBitmap* m_bitmapDeleteType;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline91;
- wxPanel* m_panel31;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlFileList;
- wxStaticLine* m_staticline9;
- wxBoxSizer* bSizerStdButtons;
- wxCheckBox* m_checkBoxUseRecycler;
- wxButton* m_buttonOK;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- DeleteDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Delete Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~DeleteDlgGenerated();
-
+private:
+
+protected:
+ wxStaticBitmap* m_bitmapDeleteType;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline91;
+ wxPanel* m_panel31;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlFileList;
+ wxStaticLine* m_staticline9;
+ wxBoxSizer* bSizerStdButtons;
+ wxCheckBox* m_checkBoxUseRecycler;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ DeleteDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Delete Items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~DeleteDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class CopyToDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class CopyToDlgGenerated : public wxDialog
+class CopyToDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticBitmap* m_bitmapCopyTo;
- wxStaticText* m_staticTextHeader;
- wxStaticLine* m_staticline91;
- wxPanel* m_panel31;
- wxStaticLine* m_staticline42;
- wxTextCtrl* m_textCtrlFileList;
- wxButton* m_buttonSelectTargetFolder;
- wxStaticLine* m_staticline9;
- wxBoxSizer* bSizerStdButtons;
- wxCheckBox* m_checkBoxKeepRelPath;
- wxCheckBox* m_checkBoxOverwriteIfExists;
- wxButton* m_buttonOK;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
- FolderHistoryBox* m_targetFolderPath;
- wxBitmapButton* m_bpButtonSelectAltTargetFolder;
-
- CopyToDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Copy items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
- ~CopyToDlgGenerated();
-
+private:
+
+protected:
+ wxStaticBitmap* m_bitmapCopyTo;
+ wxStaticText* m_staticTextHeader;
+ wxStaticLine* m_staticline91;
+ wxPanel* m_panel31;
+ wxStaticLine* m_staticline42;
+ wxTextCtrl* m_textCtrlFileList;
+ wxButton* m_buttonSelectTargetFolder;
+ wxStaticLine* m_staticline9;
+ wxBoxSizer* bSizerStdButtons;
+ wxCheckBox* m_checkBoxKeepRelPath;
+ wxCheckBox* m_checkBoxOverwriteIfExists;
+ wxButton* m_buttonOK;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnUseRecycler( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+ FolderHistoryBox* m_targetFolderPath;
+ wxBitmapButton* m_bpButtonSelectAltTargetFolder;
+
+ CopyToDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Copy items"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER );
+ ~CopyToDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class OptionsDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class OptionsDlgGenerated : public wxDialog
+class OptionsDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxStaticBitmap* m_bitmapSettings;
- wxStaticText* m_staticText44;
- wxStaticLine* m_staticline20;
- wxPanel* m_panel39;
- wxCheckBox* m_checkBoxFailSafe;
- wxStaticText* m_staticText91;
- wxBoxSizer* bSizerLockedFiles;
- wxCheckBox* m_checkBoxCopyLocked;
- wxStaticText* m_staticText92;
- wxCheckBox* m_checkBoxCopyPermissions;
- wxStaticText* m_staticText93;
- wxStaticLine* m_staticline39;
- wxStaticText* m_staticText95;
- wxStaticText* m_staticText96;
- wxSpinCtrl* m_spinCtrlAutoRetryCount;
- wxStaticText* m_staticTextAutoRetryDelay;
- wxSpinCtrl* m_spinCtrlAutoRetryDelay;
- wxStaticLine* m_staticline191;
- wxStaticText* m_staticText85;
- wxGrid* m_gridCustomCommand;
- wxBitmapButton* m_bpButtonAddRow;
- wxBitmapButton* m_bpButtonRemoveRow;
- wxHyperlinkCtrl* m_hyperlink17;
- wxStaticLine* m_staticline192;
- zen::BitmapTextButton* m_buttonResetDialogs;
- wxStaticLine* m_staticline40;
- wxStaticLine* m_staticline36;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonDefault;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnToggleAutoRetryCount( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnAddRow( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnRemoveRow( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
- virtual void OnResetDialogs( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnDefault( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- OptionsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
- ~OptionsDlgGenerated();
-
+private:
+
+protected:
+ wxStaticBitmap* m_bitmapSettings;
+ wxStaticText* m_staticText44;
+ wxStaticLine* m_staticline20;
+ wxPanel* m_panel39;
+ wxCheckBox* m_checkBoxFailSafe;
+ wxStaticText* m_staticText91;
+ wxBoxSizer* bSizerLockedFiles;
+ wxCheckBox* m_checkBoxCopyLocked;
+ wxStaticText* m_staticText92;
+ wxCheckBox* m_checkBoxCopyPermissions;
+ wxStaticText* m_staticText93;
+ wxStaticLine* m_staticline39;
+ wxStaticText* m_staticText95;
+ wxStaticText* m_staticText96;
+ wxSpinCtrl* m_spinCtrlAutoRetryCount;
+ wxStaticText* m_staticTextAutoRetryDelay;
+ wxSpinCtrl* m_spinCtrlAutoRetryDelay;
+ wxStaticLine* m_staticline191;
+ wxStaticText* m_staticText85;
+ wxGrid* m_gridCustomCommand;
+ wxBitmapButton* m_bpButtonAddRow;
+ wxBitmapButton* m_bpButtonRemoveRow;
+ wxHyperlinkCtrl* m_hyperlink17;
+ wxStaticLine* m_staticline192;
+ zen::BitmapTextButton* m_buttonResetDialogs;
+ wxStaticLine* m_staticline40;
+ wxStaticLine* m_staticline36;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonDefault;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnToggleAutoRetryCount( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnAddRow( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnRemoveRow( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnHelpShowExamples( wxHyperlinkEvent& event ) { event.Skip(); }
+ virtual void OnResetDialogs( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnDefault( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ OptionsDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ ~OptionsDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class TooltipDialogGenerated
///////////////////////////////////////////////////////////////////////////////
-class TooltipDialogGenerated : public wxDialog
+class TooltipDialogGenerated : public wxDialog
{
- private:
-
- protected:
-
- public:
- wxStaticBitmap* m_bitmapLeft;
- wxStaticText* m_staticTextMain;
-
- TooltipDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~TooltipDialogGenerated();
-
+private:
+
+protected:
+
+public:
+ wxStaticBitmap* m_bitmapLeft;
+ wxStaticText* m_staticTextMain;
+
+ TooltipDialogGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~TooltipDialogGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class SelectTimespanDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class SelectTimespanDlgGenerated : public wxDialog
+class SelectTimespanDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxPanel* m_panel35;
- wxCalendarCtrl* m_calendarFrom;
- wxCalendarCtrl* m_calendarTo;
- wxStaticLine* m_staticline21;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonOkay;
- wxButton* m_buttonCancel;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnChangeSelectionFrom( wxCalendarEvent& event ) { event.Skip(); }
- virtual void OnChangeSelectionTo( wxCalendarEvent& event ) { event.Skip(); }
- virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- SelectTimespanDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Time Span"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~SelectTimespanDlgGenerated();
-
+private:
+
+protected:
+ wxPanel* m_panel35;
+ wxCalendarCtrl* m_calendarFrom;
+ wxCalendarCtrl* m_calendarTo;
+ wxStaticLine* m_staticline21;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonOkay;
+ wxButton* m_buttonCancel;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnChangeSelectionFrom( wxCalendarEvent& event ) { event.Skip(); }
+ virtual void OnChangeSelectionTo( wxCalendarEvent& event ) { event.Skip(); }
+ virtual void OnOkay( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ SelectTimespanDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Time Span"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~SelectTimespanDlgGenerated();
+
};
///////////////////////////////////////////////////////////////////////////////
/// Class AboutDlgGenerated
///////////////////////////////////////////////////////////////////////////////
-class AboutDlgGenerated : public wxDialog
+class AboutDlgGenerated : public wxDialog
{
- private:
-
- protected:
- wxPanel* m_panel41;
- wxStaticBitmap* m_bitmapLogo;
- wxStaticLine* m_staticline341;
- wxStaticText* m_staticText96;
- wxHyperlinkCtrl* m_hyperlink11;
- wxHyperlinkCtrl* m_hyperlink7;
- wxHyperlinkCtrl* m_hyperlink14;
- wxHyperlinkCtrl* m_hyperlink16;
- wxHyperlinkCtrl* m_hyperlink15;
- wxHyperlinkCtrl* m_hyperlink12;
- wxHyperlinkCtrl* m_hyperlink13;
- wxHyperlinkCtrl* m_hyperlink10;
- wxHyperlinkCtrl* m_hyperlink18;
- wxHyperlinkCtrl* m_hyperlink9;
- wxPanel* m_panelDonate;
- wxPanel* m_panel39;
- wxStaticBitmap* m_bitmapDonate;
- wxStaticText* m_staticText83;
- wxButton* m_buttonDonate;
- wxStaticText* m_staticText94;
- wxStaticBitmap* m_bitmapHomepage;
- wxHyperlinkCtrl* m_hyperlink1;
- wxStaticBitmap* m_bitmapEmail;
- wxHyperlinkCtrl* m_hyperlink2;
- wxStaticLine* m_staticline34;
- wxStaticText* m_staticText93;
- wxStaticBitmap* m_bitmapGpl;
- wxHyperlinkCtrl* m_hyperlink5;
- wxStaticLine* m_staticline37;
- wxStaticText* m_staticText54;
- wxScrolledWindow* m_scrolledWindowTranslators;
- wxFlexGridSizer* fgSizerTranslators;
- wxStaticLine* m_staticline36;
- wxBoxSizer* bSizerStdButtons;
- wxButton* m_buttonClose;
-
- // Virtual event handlers, overide them in your derived class
- virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
- virtual void OnDonate( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
-
-
- public:
-
- AboutDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~AboutDlgGenerated();
-
+private:
+
+protected:
+ wxPanel* m_panel41;
+ wxStaticBitmap* m_bitmapLogo;
+ wxStaticLine* m_staticline341;
+ wxStaticText* m_staticText96;
+ wxHyperlinkCtrl* m_hyperlink11;
+ wxHyperlinkCtrl* m_hyperlink7;
+ wxHyperlinkCtrl* m_hyperlink14;
+ wxHyperlinkCtrl* m_hyperlink16;
+ wxHyperlinkCtrl* m_hyperlink15;
+ wxHyperlinkCtrl* m_hyperlink12;
+ wxHyperlinkCtrl* m_hyperlink13;
+ wxHyperlinkCtrl* m_hyperlink10;
+ wxHyperlinkCtrl* m_hyperlink18;
+ wxHyperlinkCtrl* m_hyperlink9;
+ wxPanel* m_panelDonate;
+ wxPanel* m_panel39;
+ wxStaticBitmap* m_bitmapDonate;
+ wxStaticText* m_staticText83;
+ wxButton* m_buttonDonate;
+ wxStaticText* m_staticText94;
+ wxStaticBitmap* m_bitmapHomepage;
+ wxHyperlinkCtrl* m_hyperlink1;
+ wxStaticBitmap* m_bitmapEmail;
+ wxHyperlinkCtrl* m_hyperlink2;
+ wxStaticLine* m_staticline34;
+ wxStaticText* m_staticText93;
+ wxStaticBitmap* m_bitmapGpl;
+ wxHyperlinkCtrl* m_hyperlink5;
+ wxStaticLine* m_staticline37;
+ wxStaticText* m_staticText54;
+ wxScrolledWindow* m_scrolledWindowTranslators;
+ wxFlexGridSizer* fgSizerTranslators;
+ wxStaticLine* m_staticline36;
+ wxBoxSizer* bSizerStdButtons;
+ wxButton* m_buttonClose;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnDonate( wxCommandEvent& event ) { event.Skip(); }
+ virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }
+
+
+public:
+
+ AboutDlgGenerated( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~AboutDlgGenerated();
+
};
#endif //__GUI_GENERATED_H__
diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp
index ebc88ca8..9335560b 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
+++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
@@ -236,9 +236,10 @@ StatusHandlerFloatingDialog::StatusHandlerFloatingDialog(wxFrame* parentDlg,
size_t automaticRetryCount,
size_t automaticRetryDelay,
const std::wstring& jobName,
+ const Zstring& soundFileSyncComplete,
const Zstring& onCompletion,
std::vector<Zstring>& onCompletionHistory) :
- progressDlg(createProgressDialog(*this, [this] { this->onProgressDialogTerminate(); }, *this, parentDlg, true, jobName, onCompletion, onCompletionHistory)),
+ progressDlg(createProgressDialog(*this, [this] { this->onProgressDialogTerminate(); }, *this, parentDlg, true, jobName, soundFileSyncComplete, onCompletion, onCompletionHistory)),
lastSyncsLogFileSizeMax_(lastSyncsLogFileSizeMax),
handleError_(handleError),
automaticRetryCount_(automaticRetryCount),
diff --git a/FreeFileSync/Source/ui/gui_status_handler.h b/FreeFileSync/Source/ui/gui_status_handler.h
index 61dad51e..d8931cbf 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.h
+++ b/FreeFileSync/Source/ui/gui_status_handler.h
@@ -55,6 +55,7 @@ public:
size_t automaticRetryCount,
size_t automaticRetryDelay,
const std::wstring& jobName,
+ const Zstring& soundFileSyncComplete,
const Zstring& onCompletion,
std::vector<Zstring>& onCompletionHistory);
~StatusHandlerFloatingDialog();
diff --git a/FreeFileSync/Source/ui/main_dlg.cpp b/FreeFileSync/Source/ui/main_dlg.cpp
index 1fbb6dd4..3a8ed8ad 100644
--- a/FreeFileSync/Source/ui/main_dlg.cpp
+++ b/FreeFileSync/Source/ui/main_dlg.cpp
@@ -92,6 +92,16 @@ bool isComponentOf(const wxWindow* child, const wxWindow* top)
return true;
return false;
}
+
+
+bool acceptDialogFileDrop(const std::vector<Zstring>& shellItemPaths)
+{
+ return std::any_of(shellItemPaths.begin(), shellItemPaths.end(), [](const Zstring& shellItemPath)
+ {
+ return pathEndsWith(shellItemPath, Zstr(".ffs_gui")) ||
+ pathEndsWith(shellItemPath, Zstr(".ffs_batch"));
+ });
+}
}
@@ -108,34 +118,14 @@ public:
FolderSelector(dropWindow1, selectFolderButton, selectSftpButton, dirpath, staticText, dropWindow2),
mainDlg_(mainDlg) {}
- bool canSetDroppedShellPaths(const std::vector<Zstring>& shellItemPaths) override
- {
- if (std::any_of(shellItemPaths.begin(), shellItemPaths.end(), [](const Zstring& shellItemPath)
+ bool shouldSetDroppedPaths(const std::vector<Zstring>& shellItemPaths) override
{
- using namespace xmlAccess;
- try
- {
- switch (getXmlType(shellItemPath)) //throw FileError
- {
- case XML_TYPE_GUI:
- case XML_TYPE_BATCH:
- return true;
- case XML_TYPE_GLOBAL:
- case XML_TYPE_OTHER:
- break;
- }
- }
- catch (const FileError&) {}
-
- return false;
- }))
+ if (acceptDialogFileDrop(shellItemPaths))
{
mainDlg_.loadConfiguration(shellItemPaths);
return false;
}
-
- //=> return true: change directory selection via drag and drop
- return true;
+ return true; //=> return true: change directory selection via drag and drop
}
private:
@@ -752,9 +742,13 @@ MainDialog::MainDialog(const Zstring& globalConfigFile,
//enable dialog-specific key local events
Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(MainDialog::onLocalKeyEvent), nullptr, this);
- //drag & drop on navi panel
- setupFileDrop(*m_gridNavi);
- m_gridNavi->Connect(EVENT_DROP_FILE, FileDropEventHandler(MainDialog::onNaviPanelFilesDropped), nullptr, this);
+ //drag and drop .ffs_gui and .ffs_batch on main dialog
+#ifdef ZEN_WIN_VISTA_AND_LATER
+ setupShellItemDrop(*this, acceptDialogFileDrop);
+#else
+ setupFileDrop(*this);
+#endif
+ Connect(EVENT_DROP_FILE, FileDropEventHandler(MainDialog::onDialogFilesDropped), nullptr, this);
//Connect(wxEVT_SIZE, wxSizeEventHandler(MainDialog::OnResize), nullptr, this);
//Connect(wxEVT_MOVE, wxSizeEventHandler(MainDialog::OnResize), nullptr, this);
@@ -915,31 +909,31 @@ void MainDialog::setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSe
//set dialog size and position:
// - width/height are invalid if the window is minimized (eg x,y == -32000; height = 28, width = 160)
// - multi-monitor setups: dialog may be placed on second monitor which is currently turned off
- if (globalSettings.gui.dlgSize.GetWidth () > 0 &&
- globalSettings.gui.dlgSize.GetHeight() > 0)
+ if (globalSettings.gui.mainDlg.dlgSize.GetWidth () > 0 &&
+ globalSettings.gui.mainDlg.dlgSize.GetHeight() > 0)
{
//calculate how much of the dialog will be visible on screen
- const int dialogAreaTotal = globalSettings.gui.dlgSize.GetWidth() * globalSettings.gui.dlgSize.GetHeight();
+ const int dialogAreaTotal = globalSettings.gui.mainDlg.dlgSize.GetWidth() * globalSettings.gui.mainDlg.dlgSize.GetHeight();
int dialogAreaVisible = 0;
const int monitorCount = wxDisplay::GetCount();
for (int i = 0; i < monitorCount; ++i)
{
- wxRect intersection = wxDisplay(i).GetClientArea().Intersect(wxRect(globalSettings.gui.dlgPos, globalSettings.gui.dlgSize));
+ wxRect intersection = wxDisplay(i).GetClientArea().Intersect(wxRect(globalSettings.gui.mainDlg.dlgPos, globalSettings.gui.mainDlg.dlgSize));
dialogAreaVisible = std::max(dialogAreaVisible, intersection.GetWidth() * intersection.GetHeight());
}
//wxGTK's wxWindow::SetSize seems unreliable and behaves like a wxWindow::SetClientSize
//=> use wxWindow::SetClientSize instead (for the record: no such issue on Windows/OS X)
- SetClientSize(globalSettings.gui.dlgSize);
+ SetClientSize(globalSettings.gui.mainDlg.dlgSize);
if (dialogAreaVisible > 0.1 * dialogAreaTotal //at least 10% of the dialog should be visible!
#ifdef ZEN_MAC
- && globalSettings.gui.dlgPos.y > 0 //unlike Windows/Ubuntu, OS X does not correct invalid y-positions
+ && globalSettings.gui.mainDlg.dlgPos.y > 0 //unlike Windows/Ubuntu, OS X does not correct invalid y-positions
//worse: OS X seems to treat them as client positions and sets the dialog so that the title bar is unreachable!
#endif
)
- SetPosition(globalSettings.gui.dlgPos);
+ SetPosition(globalSettings.gui.mainDlg.dlgPos);
else
Center();
}
@@ -947,13 +941,13 @@ void MainDialog::setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSe
Center();
#ifdef ZEN_MAC
- //OS X 10.10 and later: http://osxdaily.com/2014/10/28/maximize-zoom-windows-os-x-mac/
- //enlarging a window will set full screen by default, not maximize (latter is still available by holding ALT or titel bar double-click)
- //=> no real need to support both maximize and full screen functions, we just follow the OS X 10.10 design:
- const bool fullScreenApiSupported = EnableFullScreenView(true); //http://stackoverflow.com/questions/26500481/os-x-fullscreen-in-wxwidgets-3-0
- assert(fullScreenApiSupported); //available since 10.7
+ //OS X 10.10 and later: http://osxdaily.com/2014/10/28/maximize-zoom-windows-os-x-mac/
+ //enlarging a window will set full screen by default, not maximize (latter is still available by holding ALT or titel bar double-click)
+ //=> no real need to support both maximize and full screen functions, we just follow the OS X 10.10 design:
+ const bool fullScreenApiSupported = EnableFullScreenView(true); //http://stackoverflow.com/questions/26500481/os-x-fullscreen-in-wxwidgets-3-0
+ assert(fullScreenApiSupported); //available since 10.7
#endif
- if (globalSettings.gui.isMaximized)
+ if (globalSettings.gui.mainDlg.isMaximized)
{
#ifdef ZEN_MAC
if (fullScreenApiSupported)
@@ -964,14 +958,14 @@ void MainDialog::setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSe
}
//set column attributes
- m_gridMainL ->setColumnConfig(gridview::convertConfig(globalSettings.gui.columnAttribLeft));
- m_gridMainR ->setColumnConfig(gridview::convertConfig(globalSettings.gui.columnAttribRight));
- m_splitterMain->setSashOffset(globalSettings.gui.sashOffset);
+ m_gridMainL ->setColumnConfig(gridview::convertConfig(globalSettings.gui.mainDlg.columnAttribLeft));
+ m_gridMainR ->setColumnConfig(gridview::convertConfig(globalSettings.gui.mainDlg.columnAttribRight));
+ m_splitterMain->setSashOffset(globalSettings.gui.mainDlg.sashOffset);
- m_gridNavi->setColumnConfig(treeview::convertConfig(globalSettings.gui.columnAttribNavi));
- treeview::setShowPercentage(*m_gridNavi, globalSettings.gui.showPercentBar);
+ m_gridNavi->setColumnConfig(treeview::convertConfig(globalSettings.gui.mainDlg.columnAttribNavi));
+ treeview::setShowPercentage(*m_gridNavi, globalSettings.gui.mainDlg.showPercentBar);
- treeDataView->setSortDirection(globalSettings.gui.naviLastSortColumn, globalSettings.gui.naviLastSortAscending);
+ treeDataView->setSortDirection(globalSettings.gui.mainDlg.naviLastSortColumn, globalSettings.gui.mainDlg.naviLastSortAscending);
//--------------------------------------------------------------------------------
//load list of last used configuration files
@@ -992,10 +986,10 @@ void MainDialog::setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSe
*folderHistoryRight = FolderHistory(globalSettings.gui.folderHistoryRight, globalSettings.gui.folderHistMax);
//show/hide file icons
- gridview::setupIcons(*m_gridMainL, *m_gridMainC, *m_gridMainR, globalSettings.gui.showIcons, convert(globalSettings.gui.iconSize));
+ gridview::setupIcons(*m_gridMainL, *m_gridMainC, *m_gridMainR, globalSettings.gui.mainDlg.showIcons, convert(globalSettings.gui.mainDlg.iconSize));
//------------------------------------------------------------------------------------------------
- m_checkBoxMatchCase->SetValue(globalCfg.gui.textSearchRespectCase);
+ m_checkBoxMatchCase->SetValue(globalCfg.gui.mainDlg.textSearchRespectCase);
//wxAuiManager erroneously loads panel captions, we don't want that
typedef std::vector<std::pair<wxString, wxString>> CaptionNameMapping;
@@ -1004,7 +998,7 @@ void MainDialog::setGlobalCfgOnInit(const xmlAccess::XmlGlobalSettings& globalSe
for (size_t i = 0; i < paneArray.size(); ++i)
captionNameMap.emplace_back(paneArray[i].caption, paneArray[i].name);
- auiMgr.LoadPerspective(globalSettings.gui.guiPerspectiveLast);
+ auiMgr.LoadPerspective(globalSettings.gui.mainDlg.guiPerspectiveLast);
//restore original captions
for (const auto& item : captionNameMap)
@@ -1030,16 +1024,16 @@ xmlAccess::XmlGlobalSettings MainDialog::getGlobalCfgBeforeExit()
globalSettings.programLanguage = getLanguage();
//retrieve column attributes
- globalSettings.gui.columnAttribLeft = gridview::convertConfig(m_gridMainL->getColumnConfig());
- globalSettings.gui.columnAttribRight = gridview::convertConfig(m_gridMainR->getColumnConfig());
- globalSettings.gui.sashOffset = m_splitterMain->getSashOffset();
+ globalSettings.gui.mainDlg.columnAttribLeft = gridview::convertConfig(m_gridMainL->getColumnConfig());
+ globalSettings.gui.mainDlg.columnAttribRight = gridview::convertConfig(m_gridMainR->getColumnConfig());
+ globalSettings.gui.mainDlg.sashOffset = m_splitterMain->getSashOffset();
- globalSettings.gui.columnAttribNavi = treeview::convertConfig(m_gridNavi->getColumnConfig());
- globalSettings.gui.showPercentBar = treeview::getShowPercentage(*m_gridNavi);
+ globalSettings.gui.mainDlg.columnAttribNavi = treeview::convertConfig(m_gridNavi->getColumnConfig());
+ globalSettings.gui.mainDlg.showPercentBar = treeview::getShowPercentage(*m_gridNavi);
const std::pair<ColumnTypeNavi, bool> sortInfo = treeDataView->getSortDirection();
- globalSettings.gui.naviLastSortColumn = sortInfo.first;
- globalSettings.gui.naviLastSortAscending = sortInfo.second;
+ globalSettings.gui.mainDlg.naviLastSortColumn = sortInfo.first;
+ globalSettings.gui.mainDlg.naviLastSortAscending = sortInfo.second;
//--------------------------------------------------------------------------------
//write list of last used configuration files
@@ -1069,40 +1063,40 @@ xmlAccess::XmlGlobalSettings MainDialog::getGlobalCfgBeforeExit()
globalSettings.gui.folderHistoryLeft = folderHistoryLeft ->getList();
globalSettings.gui.folderHistoryRight = folderHistoryRight->getList();
- globalSettings.gui.textSearchRespectCase = m_checkBoxMatchCase->GetValue();
+ globalSettings.gui.mainDlg.textSearchRespectCase = m_checkBoxMatchCase->GetValue();
- globalSettings.gui.guiPerspectiveLast = auiMgr.SavePerspective();
+ globalSettings.gui.mainDlg.guiPerspectiveLast = auiMgr.SavePerspective();
//we need to portably retrieve non-iconized, non-maximized size and position (non-portable: GetWindowPlacement())
//call *after* wxAuiManager::SavePerspective()!
if (IsIconized())
Iconize(false);
- globalSettings.gui.isMaximized = false;
+ globalSettings.gui.mainDlg.isMaximized = false;
#ifdef ZEN_MAC
if (IsFullScreen())
{
- globalSettings.gui.isMaximized = true;
+ globalSettings.gui.mainDlg.isMaximized = true;
ShowFullScreen(false);
}
#endif
- if (IsMaximized()) //evaluate AFTER uniconizing!
- {
- globalSettings.gui.isMaximized = true;
- Maximize(false);
- }
+ if (IsMaximized()) //evaluate AFTER uniconizing!
+ {
+ globalSettings.gui.mainDlg.isMaximized = true;
+ Maximize(false);
+ }
- globalSettings.gui.dlgSize = GetClientSize();
- globalSettings.gui.dlgPos = GetPosition();
+ globalSettings.gui.mainDlg.dlgSize = GetClientSize();
+ globalSettings.gui.mainDlg.dlgPos = GetPosition();
#if defined ZEN_LINUX || defined ZEN_MAC //sometimes retrieving position and size afer un-maximize does not work:
//wxGTK: returns full screen size and strange position (65/-4)
//OS X 10.9 (but NO issue on 10.11!) returns full screen size and strange position (0/-22)
- if (globalSettings.gui.isMaximized)
- if (globalSettings.gui.dlgPos.y < 0)
+ if (globalSettings.gui.mainDlg.isMaximized)
+ if (globalSettings.gui.mainDlg.dlgPos.y < 0)
{
- globalSettings.gui.dlgSize = wxSize();
- globalSettings.gui.dlgPos = wxPoint();
+ globalSettings.gui.mainDlg.dlgSize = wxSize();
+ globalSettings.gui.mainDlg.dlgPos = wxPoint();
}
#endif
@@ -1255,11 +1249,11 @@ void MainDialog::copyToAlternateFolder(const std::vector<zen::FileSystemObject*>
if (zen::showCopyToDialog(this,
itemSelectionLeft, itemSelectionRight,
- globalCfg.gui.copyToCfg.lastUsedPath,
- globalCfg.gui.copyToCfg.folderHistory,
- globalCfg.gui.copyToCfg.historySizeMax,
- globalCfg.gui.copyToCfg.keepRelPaths,
- globalCfg.gui.copyToCfg.overwriteIfExists) != ReturnSmallDlg::BUTTON_OKAY)
+ globalCfg.gui.mainDlg.copyToCfg.lastUsedPath,
+ globalCfg.gui.mainDlg.copyToCfg.folderHistory,
+ globalCfg.gui.mainDlg.copyToCfg.historySizeMax,
+ globalCfg.gui.mainDlg.copyToCfg.keepRelPaths,
+ globalCfg.gui.mainDlg.copyToCfg.overwriteIfExists) != ReturnSmallDlg::BUTTON_OKAY)
return;
try
@@ -1271,9 +1265,9 @@ void MainDialog::copyToAlternateFolder(const std::vector<zen::FileSystemObject*>
StatusHandlerTemporaryPanel statusHandler(*this); //handle status display and error messages
zen::copyToAlternateFolder(itemSelectionLeft, itemSelectionRight,
- globalCfg.gui.copyToCfg.lastUsedPath,
- globalCfg.gui.copyToCfg.keepRelPaths,
- globalCfg.gui.copyToCfg.overwriteIfExists,
+ globalCfg.gui.mainDlg.copyToCfg.lastUsedPath,
+ globalCfg.gui.mainDlg.copyToCfg.keepRelPaths,
+ globalCfg.gui.mainDlg.copyToCfg.overwriteIfExists,
statusHandler);
//"clearSelection" not needed/desired
@@ -1299,7 +1293,7 @@ void MainDialog::deleteSelectedFiles(const std::vector<FileSystemObject*>& selec
if (zen::showDeleteDialog(this,
itemSelectionLeft, itemSelectionRight,
- globalCfg.gui.manualDeletionUseRecycler) != ReturnSmallDlg::BUTTON_OKAY)
+ globalCfg.gui.mainDlg.manualDeletionUseRecycler) != ReturnSmallDlg::BUTTON_OKAY)
return;
disableAllElements(true); //StatusHandlerTemporaryPanel will internally process Window messages, so avoid unexpected callbacks!
@@ -1314,7 +1308,7 @@ void MainDialog::deleteSelectedFiles(const std::vector<FileSystemObject*>& selec
zen::deleteFromGridAndHD(itemSelectionLeft, itemSelectionRight,
folderCmp,
extractDirectionCfg(getConfig().mainCfg),
- globalCfg.gui.manualDeletionUseRecycler,
+ globalCfg.gui.mainDlg.manualDeletionUseRecycler,
globalCfg.optDialogs.warningRecyclerMissing,
statusHandler);
@@ -2137,13 +2131,13 @@ void MainDialog::onNaviGridContext(GridClickEvent& event)
//menu.addSeparator();
- //menu.addItem(_("Copy to...") + L"\tCtrl+T", [&] { copyToAlternateFolder(selection, selection); }, nullptr, haveNonEmptyItems);
+ //menu.addItem(_("&Copy to...") + L"\tCtrl+T", [&] { copyToAlternateFolder(selection, selection); }, nullptr, haveNonEmptyItems);
//----------------------------------------------------------------------------------------------------
menu.addSeparator();
- menu.addItem(_("Delete") + L"\tDel", [&] { deleteSelectedFiles(selection, selection); }, nullptr, haveNonEmptyItems);
+ menu.addItem(_("&Delete") + L"\tDel", [&] { deleteSelectedFiles(selection, selection); }, nullptr, haveNonEmptyItems);
menu.popup(*this);
}
@@ -2304,14 +2298,14 @@ void MainDialog::onMainGridContextRim(bool leftSide)
menu.addSeparator();
- menu.addItem(_("Copy to...") + L"\tCtrl+T", [&] { copyToAlternateFolder(itemSelectionLeft, itemSelectionRight); }, nullptr,
+ menu.addItem(_("&Copy to...") + L"\tCtrl+T", [&] { copyToAlternateFolder(itemSelectionLeft, itemSelectionRight); }, nullptr,
!itemSelectionLeft.empty() || !itemSelectionRight.empty());
//----------------------------------------------------------------------------------------------------
menu.addSeparator();
- menu.addItem(_("Delete") + L"\tDel", [&] { deleteSelectedFiles(itemSelectionLeft, itemSelectionRight); }, nullptr,
+ menu.addItem(_("&Delete") + L"\tDel", [&] { deleteSelectedFiles(itemSelectionLeft, itemSelectionRight); }, nullptr,
!itemSelectionLeft.empty() || !itemSelectionRight.empty());
menu.popup(*this);
@@ -2457,20 +2451,20 @@ void MainDialog::onGridLabelContext(Grid& grid, ColumnTypeRim type, const std::v
menu.addSeparator();
menu.addCheckBox(_("Show icons:"), [&]
{
- globalCfg.gui.showIcons = !globalCfg.gui.showIcons;
- gridview::setupIcons(*m_gridMainL, *m_gridMainC, *m_gridMainR, globalCfg.gui.showIcons, convert(globalCfg.gui.iconSize));
+ globalCfg.gui.mainDlg.showIcons = !globalCfg.gui.mainDlg.showIcons;
+ gridview::setupIcons(*m_gridMainL, *m_gridMainC, *m_gridMainR, globalCfg.gui.mainDlg.showIcons, convert(globalCfg.gui.mainDlg.iconSize));
- }, globalCfg.gui.showIcons);
+ }, globalCfg.gui.mainDlg.showIcons);
auto setIconSize = [&](xmlAccess::FileIconSize sz)
{
- globalCfg.gui.iconSize = sz;
- gridview::setupIcons(*m_gridMainL, *m_gridMainC, *m_gridMainR, globalCfg.gui.showIcons, convert(sz));
+ globalCfg.gui.mainDlg.iconSize = sz;
+ gridview::setupIcons(*m_gridMainL, *m_gridMainC, *m_gridMainR, globalCfg.gui.mainDlg.showIcons, convert(sz));
};
auto addSizeEntry = [&](const wxString& label, xmlAccess::FileIconSize sz)
{
auto setIconSize2 = setIconSize; //bring into scope
- menu.addRadio(label, [sz, setIconSize2] { setIconSize2(sz); }, globalCfg.gui.iconSize == sz, globalCfg.gui.showIcons);
+ menu.addRadio(label, [sz, setIconSize2] { setIconSize2(sz); }, globalCfg.gui.mainDlg.iconSize == sz, globalCfg.gui.mainDlg.showIcons);
};
addSizeEntry(L" " + _("Small" ), xmlAccess::ICON_SIZE_SMALL );
addSizeEntry(L" " + _("Medium"), xmlAccess::ICON_SIZE_MEDIUM);
@@ -2550,10 +2544,21 @@ void MainDialog::OnCompSettingsContext(wxEvent& event)
applyCompareConfig(true /*setDefaultViewType*/);
};
- auto currentVar = getConfig().mainCfg.cmpConfig.compareVar;
+ const CompareVariant activeCmpVar = getConfig().mainCfg.cmpConfig.compareVar;
+
+ auto addVariantItem = [&](CompareVariant cmpVar, const wchar_t* iconName)
+ {
+ const wxBitmap& iconNormal = getResourceImage(iconName);
+ const wxBitmap iconGrey = greyScale(iconNormal);
+ menu.addItem(getVariantName(cmpVar), [&setVariant, cmpVar] { setVariant(cmpVar); }, activeCmpVar == cmpVar ? &iconNormal : &iconGrey);
+ };
+ addVariantItem(CMP_BY_TIME_SIZE, L"file-time-small");
+ addVariantItem(CMP_BY_CONTENT, L"file-content-small");
+ addVariantItem(CMP_BY_SIZE, L"file-size-small");
- menu.addRadio(getVariantName(CMP_BY_TIME_SIZE), [&] { setVariant(CMP_BY_TIME_SIZE); }, currentVar == CMP_BY_TIME_SIZE);
- menu.addRadio(getVariantName(CMP_BY_CONTENT ), [&] { setVariant(CMP_BY_CONTENT); }, currentVar == CMP_BY_CONTENT);
+ //menu.addRadio(getVariantName(CMP_BY_TIME_SIZE), [&] { setVariant(CMP_BY_TIME_SIZE); }, activeCmpVar == CMP_BY_TIME_SIZE);
+ //menu.addRadio(getVariantName(CMP_BY_CONTENT ), [&] { setVariant(CMP_BY_CONTENT); }, activeCmpVar == CMP_BY_CONTENT);
+ //menu.addRadio(getVariantName(CMP_BY_SIZE ), [&] { setVariant(CMP_BY_SIZE); }, activeCmpVar == CMP_BY_SIZE);
wxPoint pos = m_bpButtonCmpContext->GetPosition();
pos.x += m_bpButtonCmpContext->GetSize().GetWidth();
@@ -2584,10 +2589,10 @@ void MainDialog::OnSyncSettingsContext(wxEvent& event)
}
-void MainDialog::onNaviPanelFilesDropped(FileDropEvent& event)
+void MainDialog::onDialogFilesDropped(FileDropEvent& event)
{
loadConfiguration(event.getPaths());
- event.Skip();
+ //event.Skip();
}
@@ -3142,7 +3147,7 @@ bool MainDialog::loadConfiguration(const std::vector<Zstring>& filepaths)
}
setConfig(newGuiCfg, filepaths);
- //flashStatusInformation(("Configuration loaded")); -> irrelevant!?
+ //flashStatusInformation("Configuration loaded"); -> irrelevant!?
return true;
}
@@ -3568,7 +3573,7 @@ void MainDialog::setViewFilterDefault()
{
auto setButton = [](ToggleButton* tb, bool value) { tb->setActive(value); };
- const auto& def = globalCfg.gui.viewFilterDefault;
+ const auto& def = globalCfg.gui.mainDlg.viewFilterDefault;
setButton(m_bpButtonShowExcluded, def.excluded);
setButton(m_bpButtonShowEqual, def.equal);
setButton(m_bpButtonShowConflict, def.conflict);
@@ -3599,7 +3604,7 @@ void MainDialog::OnViewButtonRightClick(wxMouseEvent& event)
auto saveDefault = [&]
{
- auto& def = globalCfg.gui.viewFilterDefault;
+ auto& def = globalCfg.gui.mainDlg.viewFilterDefault;
setButtonDefault(m_bpButtonShowExcluded, def.excluded);
setButtonDefault(m_bpButtonShowEqual, def.equal);
setButtonDefault(m_bpButtonShowConflict, def.conflict);
@@ -3680,6 +3685,7 @@ void MainDialog::OnCompare(wxCommandEvent& event)
folderCmp = compare(globalCfg.optDialogs,
true, //allowUserInteraction
globalCfg.runWithBackgroundPriority,
+ globalCfg.folderAccessTimeout,
globalCfg.createLockFile,
dirLocks,
cmpConfig,
@@ -3805,8 +3811,10 @@ void MainDialog::applyCompareConfig(bool setDefaultViewType)
switch (currentCfg.mainCfg.cmpConfig.compareVar)
{
case CMP_BY_TIME_SIZE:
+ case CMP_BY_SIZE:
setViewTypeSyncAction(true);
break;
+
case CMP_BY_CONTENT:
setViewTypeSyncAction(false);
break;
@@ -3858,6 +3866,7 @@ void MainDialog::OnStartSync(wxCommandEvent& event)
globalCfg.automaticRetryCount,
globalCfg.automaticRetryDelay,
xmlAccess::extractJobName(activeCfgFilename),
+ globalCfg.soundFileSyncComplete,
guiCfg.mainCfg.onCompletion,
globalCfg.gui.onCompletionHistory);
@@ -3894,6 +3903,7 @@ void MainDialog::OnStartSync(wxCommandEvent& event)
globalCfg.copyFilePermissions,
globalCfg.failsafeFileCopy,
globalCfg.runWithBackgroundPriority,
+ globalCfg.folderAccessTimeout,
syncProcessCfg,
folderCmp,
statusHandler);
@@ -4499,7 +4509,7 @@ void MainDialog::updateGuiForFolderPair()
{
const int pairHeight = additionalFolderPairs[0]->GetSize().GetHeight();
addPairMinimalHeight = std::min<double>(1.5, additionalFolderPairs.size()) * pairHeight; //have 1.5 * height indicate that more folders are there
- addPairOptimalHeight = std::min<double>(globalCfg.gui.maxFolderPairsVisible - 1 + 0.5, //subtract first/main folder pair and add 0.5 to indicate additional folders
+ addPairOptimalHeight = std::min<double>(globalCfg.gui.mainDlg.maxFolderPairsVisible - 1 + 0.5, //subtract first/main folder pair and add 0.5 to indicate additional folders
additionalFolderPairs.size()) * pairHeight;
addPairOptimalHeight = std::max(addPairOptimalHeight, addPairMinimalHeight); //implicitly handle corrupted values for "maxFolderPairsVisible"
diff --git a/FreeFileSync/Source/ui/main_dlg.h b/FreeFileSync/Source/ui/main_dlg.h
index f3e1923e..25106545 100644
--- a/FreeFileSync/Source/ui/main_dlg.h
+++ b/FreeFileSync/Source/ui/main_dlg.h
@@ -165,7 +165,7 @@ private:
void onNaviSelection(zen::GridRangeSelectEvent& event);
- void onNaviPanelFilesDropped(zen::FileDropEvent& event);
+ void onDialogFilesDropped(zen::FileDropEvent& event);
void onDirSelected(wxCommandEvent& event);
void onDirManualCorrection(wxCommandEvent& event);
diff --git a/FreeFileSync/Source/ui/progress_indicator.cpp b/FreeFileSync/Source/ui/progress_indicator.cpp
index 22099337..8961c0a4 100644
--- a/FreeFileSync/Source/ui/progress_indicator.cpp
+++ b/FreeFileSync/Source/ui/progress_indicator.cpp
@@ -1128,6 +1128,7 @@ public:
wxFrame* parentFrame,
bool showProgress,
const wxString& jobName,
+ const Zstring& soundFileSyncComplete,
const Zstring& onCompletion,
std::vector<Zstring>& onCompletionHistory);
~SyncProgressDialogImpl() override;
@@ -1176,6 +1177,7 @@ private:
SyncProgressPanelGenerated& pnl; //wxPanel containing the GUI controls of *this
const wxString jobName_;
+ const Zstring soundFileSyncComplete_;
StopWatch timeElapsed;
wxFrame* parentFrame_; //optional
@@ -1219,11 +1221,13 @@ SyncProgressDialogImpl<TopLevelDialog>::SyncProgressDialogImpl(long style, //wxF
wxFrame* parentFrame,
bool showProgress,
const wxString& jobName,
+ const Zstring& soundFileSyncComplete,
const Zstring& onCompletion,
std::vector<Zstring>& onCompletionHistory) :
TopLevelDialog(parentFrame, wxID_ANY, wxString(), wxDefaultPosition, wxDefaultSize, style), //title is overwritten anyway in setExternalStatus()
pnl(*new SyncProgressPanelGenerated(this)), //ownership passed to "this"
jobName_ (jobName),
+ soundFileSyncComplete_(soundFileSyncComplete),
parentFrame_(parentFrame),
notifyWindowTerminate_(notifyWindowTerminate),
syncStat_ (&syncStat),
@@ -1965,12 +1969,13 @@ void SyncProgressDialogImpl<TopLevelDialog>::processHasFinished(SyncResult resul
case SyncProgressDialog::RESULT_FINISHED_WITH_ERROR:
case SyncProgressDialog::RESULT_FINISHED_WITH_WARNINGS:
case SyncProgressDialog::RESULT_FINISHED_WITH_SUCCESS:
- {
- const Zstring soundFile = getResourceDir() + Zstr("Sync_Complete.wav");
- if (fileExists(soundFile))
- wxSound::Play(utfCvrtTo<wxString>(soundFile), wxSOUND_ASYNC); //warning: this may fail and show a wxWidgets error message! => must not play when running FFS as a service!
- }
- break;
+ if (!soundFileSyncComplete_.empty())
+ {
+ const Zstring soundFile = getResourceDir() + soundFileSyncComplete_;
+ if (fileExists(soundFile))
+ wxSound::Play(utfCvrtTo<wxString>(soundFile), wxSOUND_ASYNC); //warning: this may fail and show a wxWidgets error message! => must not play when running FFS as batch!
+ }
+ break;
}
//Raise(); -> don't! user may be watching a movie in the meantime ;) note: resumeFromSystray() also calls Raise()!
@@ -2127,6 +2132,7 @@ SyncProgressDialog* createProgressDialog(zen::AbortCallback& abortCb,
wxFrame* parentWindow, //may be nullptr
bool showProgress,
const wxString& jobName,
+ const Zstring& soundFileSyncComplete,
const Zstring& onCompletion,
std::vector<Zstring>& onCompletionHistory)
{
@@ -2137,18 +2143,18 @@ SyncProgressDialog* createProgressDialog(zen::AbortCallback& abortCb,
#ifdef ZEN_MAC
return new SyncProgressDialogImpl<wxFrame>(wxDEFAULT_FRAME_STYLE | wxFRAME_FLOAT_ON_PARENT,
[&](wxFrame& progDlg) { return parentWindow; },
- abortCb, notifyWindowTerminate, syncStat, parentWindow, showProgress, jobName, onCompletion, onCompletionHistory);
+ abortCb, notifyWindowTerminate, syncStat, parentWindow, showProgress, jobName, soundFileSyncComplete, onCompletion, onCompletionHistory);
#else
return new SyncProgressDialogImpl<wxDialog>(wxDEFAULT_DIALOG_STYLE | wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxRESIZE_BORDER,
[&](wxDialog& progDlg) { return parentWindow; },
- abortCb, notifyWindowTerminate, syncStat, parentWindow, showProgress, jobName, onCompletion, onCompletionHistory);
+ abortCb, notifyWindowTerminate, syncStat, parentWindow, showProgress, jobName, soundFileSyncComplete, onCompletion, onCompletionHistory);
#endif
}
else //FFS batch job
{
auto dlg = new SyncProgressDialogImpl<wxFrame>(wxDEFAULT_FRAME_STYLE,
[](wxFrame& progDlg) { return &progDlg; },
- abortCb, notifyWindowTerminate, syncStat, parentWindow, showProgress, jobName, onCompletion, onCompletionHistory);
+ abortCb, notifyWindowTerminate, syncStat, parentWindow, showProgress, jobName, soundFileSyncComplete, onCompletion, onCompletionHistory);
//only top level windows should have an icon:
dlg->SetIcon(getFfsIcon());
diff --git a/FreeFileSync/Source/ui/progress_indicator.h b/FreeFileSync/Source/ui/progress_indicator.h
index dfc686c0..b02c6ad9 100644
--- a/FreeFileSync/Source/ui/progress_indicator.h
+++ b/FreeFileSync/Source/ui/progress_indicator.h
@@ -73,6 +73,7 @@ SyncProgressDialog* createProgressDialog(zen::AbortCallback& abortCb,
wxFrame* parentWindow, //may be nullptr
bool showProgress,
const wxString& jobName,
+ const Zstring& soundFileSyncComplete,
const Zstring& onCompletion,
std::vector<Zstring>& onCompletionHistory); //changing parameter!
//DON'T delete the pointer! it will be deleted by the user clicking "OK/Cancel"/wxWindow::Destroy() after processHasFinished() or closeWindowDirectly()
diff --git a/FreeFileSync/Source/ui/small_dlgs.cpp b/FreeFileSync/Source/ui/small_dlgs.cpp
index 2e5f1c93..b7c572cd 100644
--- a/FreeFileSync/Source/ui/small_dlgs.cpp
+++ b/FreeFileSync/Source/ui/small_dlgs.cpp
@@ -479,7 +479,7 @@ void DeleteDialog::updateGui()
header = _P("Do you really want to delete the following item?",
"Do you really want to delete the following %x items?", delInfo.second);
m_bitmapDeleteType->SetBitmap(getResourceImage(L"delete_permanently"));
- m_buttonOK->SetLabel(_("Delete"));
+ m_buttonOK->SetLabel(replaceCpy(_("&Delete"), L"&", L""));
}
m_staticTextHeader->SetLabel(header);
m_staticTextHeader->Wrap(460); //needs to be reapplied after SetLabel()
diff --git a/FreeFileSync/Source/ui/sync_cfg.cpp b/FreeFileSync/Source/ui/sync_cfg.cpp
index 014dde8f..ae55cea7 100644
--- a/FreeFileSync/Source/ui/sync_cfg.cpp
+++ b/FreeFileSync/Source/ui/sync_cfg.cpp
@@ -69,10 +69,12 @@ private:
void OnHelpTimeShift (wxHyperlinkEvent& event) override { displayHelpEntry(L"html/daylight-saving-time.html", this); }
void OnToggleLocalCompSettings(wxCommandEvent& event) override { updateCompGui(); updateSyncGui(); /*affects sync settings, too!*/ }
- void OnTimeSize (wxCommandEvent& event) override { localCmpVar = CMP_BY_TIME_SIZE; updateCompGui(); updateSyncGui(); /*affects sync settings, too!*/ }
- void OnContent (wxCommandEvent& event) override { localCmpVar = CMP_BY_CONTENT; updateCompGui(); updateSyncGui(); /*affects sync settings, too!*/ }
- void OnTimeSizeDouble (wxMouseEvent& event) override;
- void OnContentDouble (wxMouseEvent& event) override;
+ void OnCompByTimeSize (wxCommandEvent& event) override { localCmpVar = CMP_BY_TIME_SIZE; updateCompGui(); updateSyncGui(); } //
+ void OnCompByContent (wxCommandEvent& event) override { localCmpVar = CMP_BY_CONTENT; updateCompGui(); updateSyncGui(); } //affects sync settings, too!
+ void OnCompBySize (wxCommandEvent& event) override { localCmpVar = CMP_BY_SIZE; updateCompGui(); updateSyncGui(); } //
+ void OnCompByTimeSizeDouble (wxMouseEvent& event) override;
+ void OnCompBySizeDouble (wxMouseEvent& event) override;
+ void OnCompByContentDouble (wxMouseEvent& event) override;
void OnChangeCompOption (wxCommandEvent& event) override { updateCompGui(); }
void onlTimeShiftKeyDown (wxKeyEvent& event) override;
@@ -180,6 +182,8 @@ std::wstring getCompVariantDescription(CompareVariant var)
return _("Identify equal files by comparing modification time and size.");
case CMP_BY_CONTENT:
return _("Identify equal files by comparing the file content.");
+ case CMP_BY_SIZE:
+ return _("Identify equal files by comparing their file size.");
}
assert(false);
return _("Error");
@@ -252,12 +256,17 @@ ConfigDialog::ConfigDialog(wxWindow* parent,
m_notebook->ChangeSelection(static_cast<size_t>(panelToShow));
//------------- comparison panel ----------------------
- setRelativeFontSize(*m_toggleBtnTimeSize, 1.25);
- setRelativeFontSize(*m_toggleBtnContent, 1.25);
+ setRelativeFontSize(*m_toggleBtnByTimeSize, 1.25);
+ setRelativeFontSize(*m_toggleBtnBySize, 1.25);
+ setRelativeFontSize(*m_toggleBtnByContent, 1.25);
- m_toggleBtnTimeSize->SetToolTip(getCompVariantDescription(CMP_BY_TIME_SIZE));
- m_toggleBtnContent ->SetToolTip(getCompVariantDescription(CMP_BY_CONTENT));
+ m_toggleBtnByTimeSize->SetToolTip(getCompVariantDescription(CMP_BY_TIME_SIZE));
+ m_toggleBtnByContent ->SetToolTip(getCompVariantDescription(CMP_BY_CONTENT));
+ m_toggleBtnBySize ->SetToolTip(getCompVariantDescription(CMP_BY_SIZE));
+ m_bitmapByTimeSize->SetToolTip(getCompVariantDescription(CMP_BY_TIME_SIZE));
+ m_bitmapByContent ->SetToolTip(getCompVariantDescription(CMP_BY_CONTENT));
+ m_bitmapBySize ->SetToolTip(getCompVariantDescription(CMP_BY_SIZE));
//------------- filter panel --------------------------
#ifndef __WXGTK__ //wxWidgets breaks portability promise once again
@@ -437,18 +446,26 @@ void ConfigDialog::OnSelectFolderPair(wxCommandEvent& event)
}
-void ConfigDialog::OnTimeSizeDouble(wxMouseEvent& event)
+void ConfigDialog::OnCompByTimeSizeDouble(wxMouseEvent& event)
{
wxCommandEvent dummy;
- OnTimeSize(dummy);
+ OnCompByTimeSize(dummy);
OnOkay(dummy);
}
-void ConfigDialog::OnContentDouble(wxMouseEvent& event)
+void ConfigDialog::OnCompBySizeDouble(wxMouseEvent& event)
{
wxCommandEvent dummy;
- OnContent(dummy);
+ OnCompBySize(dummy);
+ OnOkay(dummy);
+}
+
+
+void ConfigDialog::OnCompByContentDouble(wxMouseEvent& event)
+{
+ wxCommandEvent dummy;
+ OnCompByContent(dummy);
OnOkay(dummy);
}
@@ -518,17 +535,21 @@ void ConfigDialog::updateCompGui()
static_cast<int>(m_checkBoxUseLocalCmpOptions->GetValue() ? ConfigTypeImage::COMPARISON : ConfigTypeImage::COMPARISON_GREY));
//update toggle buttons -> they have no parameter-ownership at all!
- m_toggleBtnTimeSize->SetValue(false);
- m_toggleBtnContent ->SetValue(false);
+ m_toggleBtnByTimeSize->SetValue(false);
+ m_toggleBtnBySize ->SetValue(false);
+ m_toggleBtnByContent ->SetValue(false);
if (m_checkBoxUseLocalCmpOptions->GetValue()) //help wxWidgets a little to render inactive config state (need on Windows, NOT on Linux!)
switch (localCmpVar)
{
case CMP_BY_TIME_SIZE:
- m_toggleBtnTimeSize->SetValue(true);
+ m_toggleBtnByTimeSize->SetValue(true);
break;
case CMP_BY_CONTENT:
- m_toggleBtnContent->SetValue(true);
+ m_toggleBtnByContent->SetValue(true);
+ break;
+ case CMP_BY_SIZE:
+ m_toggleBtnBySize->SetValue(true);
break;
}
@@ -540,8 +561,9 @@ void ConfigDialog::updateCompGui()
else
bmpCtrl.SetBitmap(greyScale(bmp));
};
- setBitmap(*m_bitmapByTime, localCmpVar == CMP_BY_TIME_SIZE, getResourceImage(L"clock"));
- setBitmap(*m_bitmapByContent, localCmpVar == CMP_BY_CONTENT, getResourceImage(L"cmpByContent"));
+ setBitmap(*m_bitmapByTimeSize, localCmpVar == CMP_BY_TIME_SIZE, getResourceImage(L"file-time"));
+ setBitmap(*m_bitmapByContent, localCmpVar == CMP_BY_CONTENT, getResourceImage(L"file-content"));
+ setBitmap(*m_bitmapBySize, localCmpVar == CMP_BY_SIZE, getResourceImage(L"file-size"));
//active variant description:
setText(*m_textCtrlCompVarDescription, L"\n" + getCompVariantDescription(localCmpVar));
@@ -614,8 +636,8 @@ void ConfigDialog::updateFilterGui()
};
setStatusBitmap(*m_bitmapInclude, L"filter_include", !NameFilter::isNull(activeCfg.includeFilter, FilterConfig().excludeFilter));
setStatusBitmap(*m_bitmapExclude, L"filter_exclude", !NameFilter::isNull(FilterConfig().includeFilter, activeCfg.excludeFilter));
- setStatusBitmap(*m_bitmapFilterDate, L"clock", activeCfg.unitTimeSpan != UTIME_NONE);
- setStatusBitmap(*m_bitmapFilterSize, L"size", activeCfg.unitSizeMin != USIZE_NONE || activeCfg.unitSizeMax != USIZE_NONE);
+ setStatusBitmap(*m_bitmapFilterDate, L"file-time", activeCfg.unitTimeSpan != UTIME_NONE);
+ setStatusBitmap(*m_bitmapFilterSize, L"file-size", activeCfg.unitSizeMin != USIZE_NONE || activeCfg.unitSizeMax != USIZE_NONE);
m_spinCtrlTimespan->Enable(activeCfg.unitTimeSpan == UTIME_LAST_X_DAYS);
m_spinCtrlMinSize ->Enable(activeCfg.unitSizeMin != USIZE_NONE);
@@ -914,13 +936,13 @@ void ConfigDialog::updateSyncGui()
{
const CompareVariant activeCmpVar = m_checkBoxUseLocalCmpOptions->GetValue() ? localCmpVar : globalCfg_.cmpConfig.compareVar;
- m_bitmapDifferent ->Show(activeCmpVar != CMP_BY_TIME_SIZE);
- m_bpButtonDifferent->Show(activeCmpVar != CMP_BY_TIME_SIZE);
-
m_bitmapLeftNewer ->Show(activeCmpVar == CMP_BY_TIME_SIZE);
m_bpButtonLeftNewer ->Show(activeCmpVar == CMP_BY_TIME_SIZE);
m_bitmapRightNewer ->Show(activeCmpVar == CMP_BY_TIME_SIZE);
m_bpButtonRightNewer->Show(activeCmpVar == CMP_BY_TIME_SIZE);
+
+ m_bitmapDifferent ->Show(activeCmpVar == CMP_BY_CONTENT || activeCmpVar == CMP_BY_SIZE);
+ m_bpButtonDifferent->Show(activeCmpVar == CMP_BY_CONTENT || activeCmpVar == CMP_BY_SIZE);
}
//active variant description:
diff --git a/FreeFileSync/Source/ui/version_check.cpp b/FreeFileSync/Source/ui/version_check.cpp
index 53e9b787..b98c68ed 100644
--- a/FreeFileSync/Source/ui/version_check.cpp
+++ b/FreeFileSync/Source/ui/version_check.cpp
@@ -481,12 +481,12 @@ void zen::checkForUpdateNow(wxWindow* parent, std::wstring& lastOnlineVersion)
case GET_VER_NO_CONNECTION:
showNotificationDialog(parent, DialogInfoType::ERROR2, PopupDialogCfg().
- setTitle(("Check for Program Updates")).
+ setTitle(_("Check for Program Updates")).
setMainInstructions(_("Unable to connect to www.freefilesync.org.")));
break;
case GET_VER_PAGE_NOT_FOUND:
- lastOnlineVersion = L"unknown";
+ lastOnlineVersion = L"Unknown";
switch (showConfirmationDialog(parent, DialogInfoType::ERROR2, PopupDialogCfg().
setTitle(_("Check for Program Updates")).
setMainInstructions(_("Cannot find current FreeFileSync version number online. Do you want to check manually?")),
@@ -577,7 +577,7 @@ void zen::evalPeriodicUpdateCheck(wxWindow* parent, time_t& lastUpdateCheck, std
break; //ignore this error
case GET_VER_PAGE_NOT_FOUND:
- lastOnlineVersion = L"unknown";
+ lastOnlineVersion = L"Unknown";
switch (showConfirmationDialog(parent, DialogInfoType::ERROR2, PopupDialogCfg().
setTitle(_("Check for Program Updates")).
setMainInstructions(_("Cannot find current FreeFileSync version number online. Do you want to check manually?")),
diff --git a/FreeFileSync/Source/version/version.h b/FreeFileSync/Source/version/version.h
index 1276c2b6..e3e7c41d 100644
--- a/FreeFileSync/Source/version/version.h
+++ b/FreeFileSync/Source/version/version.h
@@ -3,7 +3,7 @@
namespace zen
{
-const wchar_t ffsVersion[] = L"7.8"; //internal linkage!
+const wchar_t ffsVersion[] = L"7.9"; //internal linkage!
const wchar_t FFS_VERSION_SEPARATOR = L'.';
}
diff --git a/wx+/grid.cpp b/wx+/grid.cpp
index 56556797..a6c71600 100644
--- a/wx+/grid.cpp
+++ b/wx+/grid.cpp
@@ -989,16 +989,17 @@ private:
if (wxWindow::FindFocus() != this) //doesn't seem to happen automatically for right mouse button
SetFocus();
- const wxPoint absPos = refParent().CalcUnscrolledPosition(event.GetPosition());
- const ptrdiff_t row = rowLabelWin_.getRowAtPos(absPos.y); //return -1 for invalid position; >= rowCount if out of range
- const ColumnPosInfo cpi = refParent().getColumnAtPos(absPos.x); //returns ColumnType::NONE if no column at x position!
- assert(row >= 0);
- if (row >= 0)
- if (auto prov = refParent().getDataProvider())
- {
- const HoverArea rowHover = prov->getRowMouseHover(row, cpi.colType, cpi.cellRelativePosX, cpi.colWidth);
- GridClickEvent mouseEvent(event.RightDown() ? EVENT_GRID_MOUSE_RIGHT_DOWN : EVENT_GRID_MOUSE_LEFT_DOWN, event, row, rowHover);
+ if (auto prov = refParent().getDataProvider())
+ {
+ const wxPoint absPos = refParent().CalcUnscrolledPosition(event.GetPosition());
+ const ptrdiff_t row = rowLabelWin_.getRowAtPos(absPos.y); //return -1 for invalid position; >= rowCount if out of range
+ const ColumnPosInfo cpi = refParent().getColumnAtPos(absPos.x); //returns ColumnType::NONE if no column at x position!
+ const HoverArea rowHover = prov->getRowMouseHover(row, cpi.colType, cpi.cellRelativePosX, cpi.colWidth);
+ //row < 0 possible!!! Pressing "Menu key" simulates Mouse Right Down + Up at position 0xffff/0xffff!
+
+ GridClickEvent mouseEvent(event.RightDown() ? EVENT_GRID_MOUSE_RIGHT_DOWN : EVENT_GRID_MOUSE_LEFT_DOWN, event, row, rowHover);
+ if (row >= 0)
if (!event.RightDown() || !refParent().isSelected(row)) //do NOT start a new selection if user right-clicks on a selected area!
{
if (event.ControlDown())
@@ -1014,12 +1015,12 @@ private:
refParent().clearSelection(ALLOW_GRID_EVENT);
}
}
- //notify event *after* potential "clearSelection(true)" above: a client should first receive a GridRangeSelectEvent for clearing the grid, if necessary,
- //then GridClickEvent and the associated GridRangeSelectEvent one after the other
- sendEventNow(mouseEvent);
+ //notify event *after* potential "clearSelection(true)" above: a client should first receive a GridRangeSelectEvent for clearing the grid, if necessary,
+ //then GridClickEvent and the associated GridRangeSelectEvent one after the other
+ sendEventNow(mouseEvent);
- Refresh();
- }
+ Refresh();
+ }
event.Skip(); //allow changing focus
}
@@ -1092,7 +1093,7 @@ private:
const std::wstring toolTip = [&]
{
if (cpi.colType != ColumnType::NONE && 0 <= row && row < rowCount)
- return prov->getToolTip(row, cpi.colType);
+ return prov->getToolTip(row, cpi.colType);
return std::wstring();
}();
setToolTip(toolTip); //show even during mouse selection!
diff --git a/zen/dir_watcher.cpp b/zen/dir_watcher.cpp
index 97ecafe5..e7748519 100644
--- a/zen/dir_watcher.cpp
+++ b/zen/dir_watcher.cpp
@@ -39,7 +39,7 @@ class SharedData
{
public:
//context of worker thread
- void addChanges(const char* buffer, DWORD bytesWritten, const Zstring& dirpath) //throw ()
+ bool tryAddChanges(const char* buffer, DWORD bytesWritten, const Zstring& dirPathPf) //noexcept; return false on failure (already reported!)
{
std::lock_guard<std::mutex> dummy(lockAccess);
@@ -47,12 +47,20 @@ public:
changedFiles.emplace_back(DirWatcher::ACTION_CREATE, L"Overflow.");
else
{
- const char* bufPos = &buffer[0];
+ size_t offset = 0;
for (;;)
{
- const FILE_NOTIFY_INFORMATION& notifyInfo = reinterpret_cast<const FILE_NOTIFY_INFORMATION&>(*bufPos);
+ const FILE_NOTIFY_INFORMATION& notifyInfo = *reinterpret_cast<const FILE_NOTIFY_INFORMATION*>(buffer + offset);
- const Zstring fullpath = dirpath + Zstring(notifyInfo.FileName, notifyInfo.FileNameLength / sizeof(WCHAR));
+ //access-violation crash dumps suggest that the buffer can be corrupt, so let's validate:
+ if (offset + sizeof(FILE_NOTIFY_INFORMATION) > bytesWritten ||
+ offset + offsetof(FILE_NOTIFY_INFORMATION, FileName) + notifyInfo.FileNameLength > bytesWritten)
+ {
+ reportError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(dirPathPf)), L"ReadDirectoryChangesW: corrupt data returned");
+ return false;
+ }
+
+ const Zstring fullpath = dirPathPf + Zstring(notifyInfo.FileName, notifyInfo.FileNameLength / sizeof(WCHAR));
[&]
{
@@ -85,16 +93,17 @@ public:
if (notifyInfo.NextEntryOffset == 0)
break;
- bufPos += notifyInfo.NextEntryOffset;
+ offset += notifyInfo.NextEntryOffset;
}
}
+ return true;
}
////context of main thread
- //void addChange(const Zstring& dirpath) //throw ()
+ //void addChange(const Zstring& dirPath) //throw ()
//{
// std::lock_guard<std::mutex> dummy(lockAccess);
- // changedFiles.insert(dirpath);
+ // changedFiles.insert(dirPath);
//}
@@ -105,11 +114,8 @@ public:
//first check whether errors occurred in thread
if (errorInfo)
- {
- const std::wstring msg = copyStringTo<std::wstring>(errorInfo->msg);
- const std::wstring descr = copyStringTo<std::wstring>(errorInfo->descr);
- throw FileError(msg, descr);
- }
+ throw FileError(copyStringTo<std::wstring>(errorInfo->msg),
+ copyStringTo<std::wstring>(errorInfo->descr));
output.swap(changedFiles);
changedFiles.clear();
@@ -117,10 +123,10 @@ public:
//context of worker thread
- void reportError(const std::wstring& msg, const std::wstring& description, DWORD errorCode) //throw()
+ void reportError(const std::wstring& msg, const std::wstring& description) //throw()
{
std::lock_guard<std::mutex> dummy(lockAccess);
- errorInfo = ErrorInfo({ copyStringTo<BasicWString>(msg), copyStringTo<BasicWString>(description), errorCode });
+ errorInfo = ErrorInfo({ copyStringTo<BasicWString>(msg), copyStringTo<BasicWString>(description) });
}
private:
@@ -133,7 +139,6 @@ private:
{
BasicWString msg;
BasicWString descr;
- DWORD errorCode;
};
Opt<ErrorInfo> errorInfo; //non-empty if errors occurred in thread
};
@@ -146,9 +151,9 @@ public:
ReadChangesAsync(const Zstring& directory, //make sure to not leak-in thread-unsafe types!
const std::shared_ptr<SharedData>& shared) :
shared_(shared),
- dirpathPf(appendSeparator(directory))
+ dirPathPf(appendSeparator(directory))
{
- hDir = ::CreateFile(applyLongPathPrefix(dirpathPf).c_str(), //_In_ LPCTSTR lpFileName,
+ hDir = ::CreateFile(applyLongPathPrefix(dirPathPf).c_str(), //_In_ LPCTSTR lpFileName,
FILE_LIST_DIRECTORY, //_In_ DWORD dwDesiredAccess,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, //_In_ DWORD dwShareMode,
nullptr, //_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
@@ -163,7 +168,7 @@ public:
}
ReadChangesAsync(ReadChangesAsync&& other) : shared_(std::move(other.shared_)),
- dirpathPf(std::move(other.dirpathPf)),
+ dirPathPf(std::move(other.dirPathPf)),
hDir(other.hDir)
{
other.hDir = INVALID_HANDLE_VALUE;
@@ -192,7 +197,7 @@ public:
if (overlapped.hEvent == nullptr)
{
const DWORD ec = ::GetLastError(); //copy before directly/indirectly making other system calls!
- return shared_->reportError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(dirpathPf)), formatSystemError(L"CreateEvent", ec), ec);
+ return shared_->reportError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(dirPathPf)), formatSystemError(L"CreateEvent", ec));
}
ZEN_ON_SCOPE_EXIT(::CloseHandle(overlapped.hEvent));
@@ -212,7 +217,7 @@ public:
nullptr)) // __in_opt LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
{
const DWORD ec = ::GetLastError(); //copy before directly/indirectly making other system calls!
- return shared_->reportError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(dirpathPf)), formatSystemError(L"ReadDirectoryChangesW", ec), ec);
+ return shared_->reportError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(dirPathPf)), formatSystemError(L"ReadDirectoryChangesW", ec));
}
//async I/O is a resource that needs to be guarded since it will write to local variable "buffer"!
@@ -239,7 +244,7 @@ public:
{
const DWORD ec = ::GetLastError(); //copy before directly/indirectly making other system calls!
if (ec != ERROR_IO_INCOMPLETE)
- return shared_->reportError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(dirpathPf)), formatSystemError(L"GetOverlappedResult", ec), ec);
+ return shared_->reportError(replaceCpy(_("Cannot monitor directory %x."), L"%x", fmtPath(dirPathPf)), formatSystemError(L"GetOverlappedResult", ec));
//execute asynchronous procedure calls (APC) queued on this thread
::SleepEx(50, // __in DWORD dwMilliseconds,
@@ -249,7 +254,8 @@ public:
}
guardAio.dismiss();
- shared_->addChanges(&buffer[0], bytesWritten, dirpathPf); //throw ()
+ if (!shared_->tryAddChanges(&buffer[0], bytesWritten, dirPathPf)) //noexcept
+ return;
}
}
@@ -262,7 +268,7 @@ private:
//shared between main and worker:
std::shared_ptr<SharedData> shared_;
//worker thread only:
- Zstring dirpathPf; //thread safe!
+ Zstring dirPathPf; //thread safe!
HANDLE hDir = INVALID_HANDLE_VALUE;
};
@@ -275,7 +281,7 @@ public:
InterruptibleThread& worker) :
notificationHandle(registerFolderRemovalNotification(hDir, //throw FileError
displayPath,
- [this]{ this->onRequestRemoval (); }, //noexcept!
+ [this] { this->onRequestRemoval (); }, //noexcept!
[this](bool successful) { this->onRemovalFinished(); })), //
worker_(worker) {}
@@ -549,7 +555,7 @@ void eventCallback(ConstFSEventStreamRef streamRef,
struct DirWatcher::Pimpl
{
- FSEventStreamRef eventStream = nullptr;
+ FSEventStreamRef eventStream = nullptr;
std::vector<DirWatcher::Entry> changedFiles;
};
diff --git a/zen/dir_watcher.h b/zen/dir_watcher.h
index 1d6d53cc..ddb3dbb9 100644
--- a/zen/dir_watcher.h
+++ b/zen/dir_watcher.h
@@ -50,10 +50,10 @@ public:
struct Entry
{
- Entry() : action_(ACTION_CREATE) {}
+ Entry() {}
Entry(ActionType action, const Zstring& filepath) : action_(action), filepath_(filepath) {}
- ActionType action_;
+ ActionType action_ = ACTION_CREATE;
Zstring filepath_;
};
diff --git a/zen/file_access.cpp b/zen/file_access.cpp
index d093d7ff..009d60b2 100644
--- a/zen/file_access.cpp
+++ b/zen/file_access.cpp
@@ -1279,7 +1279,7 @@ void copyItemPermissions(const Zstring& sourcePath, const Zstring& targetPath, P
if (procSl == ProcSymlink::DIRECT)
flags |= COPYFILE_NOFOLLOW;
- if (::copyfile(sourcePath.c_str(), targetPath.c_str(), 0, flags) != 0)
+ if (::copyfile(sourcePath.c_str(), targetPath.c_str(), nullptr, flags) != 0)
THROW_LAST_FILE_ERROR(replaceCpy(replaceCpy(_("Cannot copy permissions from %x to %y."), L"%x", L"\n" + fmtPath(sourcePath)), L"%y", L"\n" + fmtPath(targetPath)), L"copyfile");
//owner is *not* copied with ::copyfile():
@@ -1498,7 +1498,7 @@ void zen::copyNewDirectory(const Zstring& sourcePath, const Zstring& targetPath,
}
#elif defined ZEN_MAC
- /*int rv =*/ ::copyfile(sourcePath.c_str(), targetPath.c_str(), 0, COPYFILE_XATTR);
+ /*int rv =*/ ::copyfile(sourcePath.c_str(), targetPath.c_str(), nullptr, COPYFILE_XATTR);
#endif
ZEN_ON_SCOPE_FAIL(try { removeDirectorySimple(targetPath); }
@@ -1578,7 +1578,7 @@ void zen::copySymlink(const Zstring& sourceLink, const Zstring& targetLink, bool
if (::lstat(sourceLink.c_str(), &sourceInfo) != 0)
THROW_LAST_FILE_ERROR(replaceCpy(_("Cannot read file attributes of %x."), L"%x", fmtPath(sourceLink)), L"lstat");
- if (::copyfile(sourceLink.c_str(), targetLink.c_str(), 0, COPYFILE_XATTR | COPYFILE_NOFOLLOW) != 0)
+ if (::copyfile(sourceLink.c_str(), targetLink.c_str(), nullptr, COPYFILE_XATTR | COPYFILE_NOFOLLOW) != 0)
THROW_LAST_FILE_ERROR(replaceCpy(replaceCpy(_("Cannot copy attributes from %x to %y."), L"%x", L"\n" + fmtPath(sourceLink)), L"%y", L"\n" + fmtPath(targetLink)), L"copyfile");
setFileTimeRaw(targetLink, &sourceInfo.st_birthtimespec, sourceInfo.st_mtimespec, ProcSymlink::DIRECT); //throw FileError
@@ -2284,8 +2284,15 @@ InSyncAttributes copyFileOsSpecific(const Zstring& sourceFile, //throw FileError
//http://blog.plasticsfuture.org/2006/03/05/the-state-of-backup-and-cloning-tools-under-mac-os-x/
//docs: http://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/copyfile.3.html
//source: http://www.opensource.apple.com/source/copyfile/copyfile-103.92.1/copyfile.c
- if (::fcopyfile(fileIn.getHandle(), fileOut.getHandle(), 0, COPYFILE_XATTR) != 0)
- THROW_LAST_FILE_ERROR(replaceCpy(replaceCpy(_("Cannot copy attributes from %x to %y."), L"%x", L"\n" + fmtPath(sourceFile)), L"%y", L"\n" + fmtPath(targetFile)), L"copyfile");
+ if (::fcopyfile(fileIn.getHandle(), fileOut.getHandle(), nullptr, COPYFILE_XATTR) != 0)
+ {
+ /*
+ extended attributes are only optional here => ignore error
+ E2BIG - reference email: "FFS V7.8 on Mac with 10.11.2 ElCapitan"
+ EINVAL - reference email: "Error Code 22: Invalid argument (copyfile)"
+ */
+ //THROW_LAST_FILE_ERROR(replaceCpy(replaceCpy(_("Cannot copy attributes from %x to %y."), L"%x", L"\n" + fmtPath(sourceFile)), L"%y", L"\n" + fmtPath(targetFile)), L"fcopyfile");
+ }
#endif
fileOut.close(); //throw FileError -> optional, but good place to catch errors when closing stream!
@@ -2309,10 +2316,10 @@ InSyncAttributes copyFileOsSpecific(const Zstring& sourceFile, //throw FileError
#endif
/*
- ------------------
- |File Copy Layers|
- ------------------
- copyNewFile
+ ------------------
+ |File Copy Layers|
+ ------------------
+ copyNewFile
|
copyFileOsSpecific (solve 8.3 issue on Windows)
|
diff --git a/zen/i18n.h b/zen/i18n.h
index e58542c2..3f10ec81 100644
--- a/zen/i18n.h
+++ b/zen/i18n.h
@@ -28,7 +28,7 @@
namespace zen
{
-//implement handler to enable program wide localizations:
+//implement handler to enable program-wide localizations:
struct TranslationHandler
{
//THREAD-SAFETY: "const" member must model thread-safe access!
@@ -44,7 +44,7 @@ private:
TranslationHandler& operator=(const TranslationHandler&) = delete;
};
-void setTranslator(std::unique_ptr<const TranslationHandler>&& newHandler = nullptr); //take ownership
+void setTranslator(std::unique_ptr<const TranslationHandler>&& newHandler); //take ownership
const TranslationHandler* getTranslator();
@@ -99,20 +99,41 @@ std::wstring translate(const std::wstring& singular, const std::wstring& plural,
inline
-std::unique_ptr<const TranslationHandler>& globalTranslationHandler()
+const TranslationHandler*& getTranslationInstance()
{
- static std::unique_ptr<const TranslationHandler> inst; //external linkage even in header!
+ //avoid static destruction order fiasco: there may be accesses to "getTranslator()" during process shutdown e.g. show message in debug_minidump.cpp!
+ //=> use POD instead of a std::unique_ptr<>!!!
+ static const TranslationHandler* inst = nullptr; //external linkage even in header!
return inst;
}
+
+
+struct CleanUpTranslationHandler
+{
+ ~CleanUpTranslationHandler()
+ {
+ const TranslationHandler*& handler = getTranslationInstance();
+ assert(!handler); //clean up at a better time rather than during static destruction! potential MT issues!?
+ delete handler;
+ handler = nullptr; //getTranslator() may be called even after static objects of this translation unit are destroyed!
+ }
+};
}
inline
-void setTranslator(std::unique_ptr<const TranslationHandler>&& newHandler) { implementation::globalTranslationHandler() = std::move(newHandler); }
+void setTranslator(std::unique_ptr<const TranslationHandler>&& newHandler)
+{
+ static implementation::CleanUpTranslationHandler cuth; //external linkage even in header!
+
+ const TranslationHandler*& handler = implementation::getTranslationInstance();
+ delete handler;
+ handler = newHandler.release();
+}
inline
-const TranslationHandler* getTranslator() { return implementation::globalTranslationHandler().get(); }
+const TranslationHandler* getTranslator() { return implementation::getTranslationInstance(); }
}
#endif //I18_N_H_3843489325044253425456
bgstack15