summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FreeFileSync/Build/Changelog.txt19
-rw-r--r--FreeFileSync/Build/Help/html/Comparison Settings.html8
-rw-r--r--FreeFileSync/Build/Help/html/FreeFileSync.html2
-rw-r--r--FreeFileSync/Build/Help/img/comparison_settings.pngbin37133 -> 37039 bytes
-rw-r--r--FreeFileSync/Build/Help/img/time_shift.pngbin26074 -> 26529 bytes
-rw-r--r--FreeFileSync/Build/Languages/arabic.lng209
-rw-r--r--FreeFileSync/Build/Languages/bulgarian.lng213
-rw-r--r--FreeFileSync/Build/Languages/chinese_simple.lng209
-rw-r--r--FreeFileSync/Build/Languages/chinese_traditional.lng207
-rw-r--r--FreeFileSync/Build/Languages/croatian.lng209
-rw-r--r--FreeFileSync/Build/Languages/czech.lng203
-rw-r--r--FreeFileSync/Build/Languages/danish.lng209
-rw-r--r--FreeFileSync/Build/Languages/dutch.lng258
-rw-r--r--FreeFileSync/Build/Languages/english_uk.lng205
-rw-r--r--FreeFileSync/Build/Languages/finnish.lng203
-rw-r--r--FreeFileSync/Build/Languages/french.lng207
-rw-r--r--FreeFileSync/Build/Languages/german.lng194
-rw-r--r--FreeFileSync/Build/Languages/greek.lng209
-rw-r--r--FreeFileSync/Build/Languages/hebrew.lng205
-rw-r--r--FreeFileSync/Build/Languages/hungarian.lng207
-rw-r--r--FreeFileSync/Build/Languages/italian.lng209
-rw-r--r--FreeFileSync/Build/Languages/japanese.lng211
-rw-r--r--FreeFileSync/Build/Languages/korean.lng217
-rw-r--r--FreeFileSync/Build/Languages/lithuanian.lng199
-rw-r--r--FreeFileSync/Build/Languages/norwegian.lng213
-rw-r--r--FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng (renamed from FreeFileSync/Build/Languages/scottish_gaelic.lng)209
-rw-r--r--FreeFileSync/Build/Languages/outdated/slovenian.lng (renamed from FreeFileSync/Build/Languages/slovenian.lng)209
-rw-r--r--FreeFileSync/Build/Languages/outdated/ukrainian.lng329
-rw-r--r--FreeFileSync/Build/Languages/polish.lng193
-rw-r--r--FreeFileSync/Build/Languages/portuguese.lng209
-rw-r--r--FreeFileSync/Build/Languages/portuguese_br.lng209
-rw-r--r--FreeFileSync/Build/Languages/romanian.lng213
-rw-r--r--FreeFileSync/Build/Languages/russian.lng213
-rw-r--r--FreeFileSync/Build/Languages/serbian.lng206
-rw-r--r--FreeFileSync/Build/Languages/spanish.lng216
-rw-r--r--FreeFileSync/Build/Languages/swedish.lng211
-rw-r--r--FreeFileSync/Build/Languages/turkish.lng191
-rw-r--r--FreeFileSync/Source/RealtimeSync/app_icon.h2
-rw-r--r--FreeFileSync/Source/RealtimeSync/application.cpp10
-rw-r--r--FreeFileSync/Source/RealtimeSync/application.h2
-rw-r--r--FreeFileSync/Source/RealtimeSync/gui_generated.cpp2
-rw-r--r--FreeFileSync/Source/RealtimeSync/main_dlg.cpp14
-rw-r--r--FreeFileSync/Source/RealtimeSync/main_dlg.h2
-rw-r--r--FreeFileSync/Source/RealtimeSync/monitor.cpp2
-rw-r--r--FreeFileSync/Source/RealtimeSync/monitor.h2
-rw-r--r--FreeFileSync/Source/RealtimeSync/tray_menu.cpp2
-rw-r--r--FreeFileSync/Source/RealtimeSync/tray_menu.h2
-rw-r--r--FreeFileSync/Source/RealtimeSync/xml_proc.cpp2
-rw-r--r--FreeFileSync/Source/RealtimeSync/xml_proc.h2
-rw-r--r--FreeFileSync/Source/algorithm.cpp7
-rw-r--r--FreeFileSync/Source/algorithm.h2
-rw-r--r--FreeFileSync/Source/application.cpp58
-rw-r--r--FreeFileSync/Source/application.h2
-rw-r--r--FreeFileSync/Source/comparison.cpp8
-rw-r--r--FreeFileSync/Source/comparison.h2
-rw-r--r--FreeFileSync/Source/file_hierarchy.cpp6
-rw-r--r--FreeFileSync/Source/file_hierarchy.h8
-rw-r--r--FreeFileSync/Source/lib/binary.cpp2
-rw-r--r--FreeFileSync/Source/lib/binary.h2
-rw-r--r--FreeFileSync/Source/lib/db_file.cpp6
-rw-r--r--FreeFileSync/Source/lib/db_file.h2
-rw-r--r--FreeFileSync/Source/lib/dir_exist_async.h2
-rw-r--r--FreeFileSync/Source/lib/dir_lock.cpp30
-rw-r--r--FreeFileSync/Source/lib/dir_lock.h2
-rw-r--r--FreeFileSync/Source/lib/error_log.h2
-rw-r--r--FreeFileSync/Source/lib/ffs_paths.cpp18
-rw-r--r--FreeFileSync/Source/lib/ffs_paths.h2
-rw-r--r--FreeFileSync/Source/lib/generate_logfile.h4
-rw-r--r--FreeFileSync/Source/lib/hard_filter.cpp2
-rw-r--r--FreeFileSync/Source/lib/hard_filter.h2
-rw-r--r--FreeFileSync/Source/lib/help_provider.h8
-rw-r--r--FreeFileSync/Source/lib/icon_buffer.cpp26
-rw-r--r--FreeFileSync/Source/lib/icon_buffer.h2
-rw-r--r--FreeFileSync/Source/lib/localization.cpp12
-rw-r--r--FreeFileSync/Source/lib/localization.h2
-rw-r--r--FreeFileSync/Source/lib/norm_filter.h2
-rw-r--r--FreeFileSync/Source/lib/parallel_scan.cpp2
-rw-r--r--FreeFileSync/Source/lib/parallel_scan.h2
-rw-r--r--FreeFileSync/Source/lib/parse_lng.h74
-rw-r--r--FreeFileSync/Source/lib/parse_plural.h2
-rw-r--r--FreeFileSync/Source/lib/perf_check.cpp2
-rw-r--r--FreeFileSync/Source/lib/perf_check.h2
-rw-r--r--FreeFileSync/Source/lib/process_xml.cpp2
-rw-r--r--FreeFileSync/Source/lib/process_xml.h2
-rw-r--r--FreeFileSync/Source/lib/resolve_path.cpp20
-rw-r--r--FreeFileSync/Source/lib/resolve_path.h6
-rw-r--r--FreeFileSync/Source/lib/return_codes.h2
-rw-r--r--FreeFileSync/Source/lib/soft_filter.h2
-rw-r--r--FreeFileSync/Source/lib/status_handler.cpp2
-rw-r--r--FreeFileSync/Source/lib/status_handler.h2
-rw-r--r--FreeFileSync/Source/lib/status_handler_impl.h2
-rw-r--r--FreeFileSync/Source/lib/versioning.h2
-rw-r--r--FreeFileSync/Source/process_callback.h2
-rw-r--r--FreeFileSync/Source/structures.cpp4
-rw-r--r--FreeFileSync/Source/structures.h2
-rw-r--r--FreeFileSync/Source/synchronization.cpp23
-rw-r--r--FreeFileSync/Source/synchronization.h2
-rw-r--r--FreeFileSync/Source/ui/app_icon.h2
-rw-r--r--FreeFileSync/Source/ui/batch_config.cpp4
-rw-r--r--FreeFileSync/Source/ui/batch_config.h2
-rw-r--r--FreeFileSync/Source/ui/batch_status_handler.cpp8
-rw-r--r--FreeFileSync/Source/ui/batch_status_handler.h4
-rw-r--r--FreeFileSync/Source/ui/check_version.cpp98
-rw-r--r--FreeFileSync/Source/ui/check_version.h2
-rw-r--r--FreeFileSync/Source/ui/column_attr.h2
-rw-r--r--FreeFileSync/Source/ui/custom_grid.cpp2
-rw-r--r--FreeFileSync/Source/ui/custom_grid.h2
-rw-r--r--FreeFileSync/Source/ui/dir_name.cpp8
-rw-r--r--FreeFileSync/Source/ui/dir_name.h2
-rw-r--r--FreeFileSync/Source/ui/folder_history_box.cpp4
-rw-r--r--FreeFileSync/Source/ui/folder_history_box.h2
-rw-r--r--FreeFileSync/Source/ui/folder_history_types.h2
-rw-r--r--FreeFileSync/Source/ui/folder_pair.h2
-rw-r--r--FreeFileSync/Source/ui/grid_view.cpp2
-rw-r--r--FreeFileSync/Source/ui/grid_view.h2
-rw-r--r--FreeFileSync/Source/ui/gui_generated.cpp95
-rw-r--r--FreeFileSync/Source/ui/gui_generated.h18
-rw-r--r--FreeFileSync/Source/ui/gui_status_handler.cpp4
-rw-r--r--FreeFileSync/Source/ui/gui_status_handler.h6
-rw-r--r--FreeFileSync/Source/ui/main_dlg.cpp119
-rw-r--r--FreeFileSync/Source/ui/main_dlg.h2
-rw-r--r--FreeFileSync/Source/ui/on_completion_box.cpp4
-rw-r--r--FreeFileSync/Source/ui/on_completion_box.h2
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.cpp32
-rw-r--r--FreeFileSync/Source/ui/progress_indicator.h2
-rw-r--r--FreeFileSync/Source/ui/search.cpp2
-rw-r--r--FreeFileSync/Source/ui/search.h2
-rw-r--r--FreeFileSync/Source/ui/small_dlgs.cpp4
-rw-r--r--FreeFileSync/Source/ui/small_dlgs.h2
-rw-r--r--FreeFileSync/Source/ui/sorting.h2
-rw-r--r--FreeFileSync/Source/ui/switch_to_gui.h2
-rw-r--r--FreeFileSync/Source/ui/sync_cfg.cpp33
-rw-r--r--FreeFileSync/Source/ui/sync_cfg.h2
-rw-r--r--FreeFileSync/Source/ui/taskbar.cpp18
-rw-r--r--FreeFileSync/Source/ui/taskbar.h2
-rw-r--r--FreeFileSync/Source/ui/tray_icon.cpp2
-rw-r--r--FreeFileSync/Source/ui/tray_icon.h2
-rw-r--r--FreeFileSync/Source/ui/tree_view.cpp2
-rw-r--r--FreeFileSync/Source/ui/tree_view.h2
-rw-r--r--FreeFileSync/Source/ui/triple_splitter.cpp2
-rw-r--r--FreeFileSync/Source/ui/triple_splitter.h2
-rw-r--r--FreeFileSync/Source/ui/wx_form_build_hide_warnings.h12
-rw-r--r--FreeFileSync/Source/version/version.h2
-rw-r--r--FreeFileSync/Source/version/version.iss1
-rw-r--r--wx+/app_main.h2
-rw-r--r--wx+/bitmap_button.h2
-rw-r--r--wx+/choice_enum.h2
-rw-r--r--wx+/context_menu.h2
-rw-r--r--wx+/dc.h4
-rw-r--r--wx+/file_drop.h2
-rw-r--r--wx+/font_size.h10
-rw-r--r--wx+/graph.cpp2
-rw-r--r--wx+/graph.h2
-rw-r--r--wx+/grid.cpp4
-rw-r--r--wx+/grid.h2
-rw-r--r--wx+/image_resources.cpp2
-rw-r--r--wx+/image_resources.h2
-rw-r--r--wx+/image_tools.cpp2
-rw-r--r--wx+/image_tools.h2
-rw-r--r--wx+/key_event.h118
-rw-r--r--wx+/no_flicker.h2
-rw-r--r--wx+/popup_dlg.cpp4
-rw-r--r--wx+/popup_dlg.h2
-rw-r--r--wx+/rtl.h2
-rw-r--r--wx+/std_button_layout.h2
-rw-r--r--wx+/string_conv.h2
-rw-r--r--wx+/timespan.h2
-rw-r--r--wx+/toggle_button.h2
-rw-r--r--wx+/tooltip.cpp2
-rw-r--r--wx+/tooltip.h2
-rw-r--r--wx+/zlib_wrap.cpp6
-rw-r--r--wx+/zlib_wrap.h2
-rw-r--r--zen/async_task.h2
-rw-r--r--zen/basic_math.h18
-rw-r--r--zen/build_info.h2
-rw-r--r--zen/deprecate.h8
-rw-r--r--zen/dir_watcher.cpp18
-rw-r--r--zen/dir_watcher.h2
-rw-r--r--zen/dll.h121
-rw-r--r--zen/error_log.h2
-rw-r--r--zen/file_access.cpp70
-rw-r--r--zen/file_access.h2
-rw-r--r--zen/file_error.h2
-rw-r--r--zen/file_id_def.h6
-rw-r--r--zen/file_io.cpp14
-rw-r--r--zen/file_io.h16
-rw-r--r--zen/file_io_base.h2
-rw-r--r--zen/file_traverser.cpp22
-rw-r--r--zen/file_traverser.h2
-rw-r--r--zen/fixed_list.h10
-rw-r--r--zen/format_unit.cpp10
-rw-r--r--zen/format_unit.h2
-rw-r--r--zen/guid.h10
-rw-r--r--zen/i18n.h10
-rw-r--r--zen/int64.h4
-rw-r--r--zen/long_path_prefix.h2
-rw-r--r--zen/notify_removal.cpp2
-rw-r--r--zen/notify_removal.h2
-rw-r--r--zen/optional.h2
-rw-r--r--zen/perf.h6
-rw-r--r--zen/process_priority.cpp8
-rw-r--r--zen/process_priority.h2
-rw-r--r--zen/recycler.cpp20
-rw-r--r--zen/recycler.h2
-rw-r--r--zen/scope_guard.h2
-rw-r--r--zen/serialize.h42
-rw-r--r--zen/shell_execute.h10
-rw-r--r--zen/stl_tools.h6
-rw-r--r--zen/string_base.h20
-rw-r--r--zen/string_tools.h2
-rw-r--r--zen/string_traits.h10
-rw-r--r--zen/symlink_target.h18
-rw-r--r--zen/sys_error.h14
-rw-r--r--zen/thread.h28
-rw-r--r--zen/tick_count.h8
-rw-r--r--zen/time.h2
-rw-r--r--zen/type_tools.h2
-rw-r--r--zen/type_traits.h2
-rw-r--r--zen/utf.h2
-rw-r--r--zen/warn_static.h2
-rw-r--r--zen/win.h22
-rw-r--r--zen/win_ver.h31
-rw-r--r--zen/xml_io.cpp2
-rw-r--r--zen/xml_io.h2
-rw-r--r--zen/zstring.cpp23
-rw-r--r--zen/zstring.h18
226 files changed, 5376 insertions, 3270 deletions
diff --git a/FreeFileSync/Build/Changelog.txt b/FreeFileSync/Build/Changelog.txt
index 497ce39f..b6a748c5 100644
--- a/FreeFileSync/Build/Changelog.txt
+++ b/FreeFileSync/Build/Changelog.txt
@@ -1,3 +1,20 @@
+FreeFileSync 6.12 [2014-12-01]
+------------------------------
+New "Actions" menu bar entry with basic operations
+Fixed crash after comparison while needlessly copying traveral results
+Support auto-updater URL redirection (Linux, OS X)
+Merged installer translations into .lng files
+Fully translated FreeFileSync context menu options and file types in Windows Explorer
+More structured symlink handling options
+Scroll to active selection in config list box on startup
+Fixed delete key to remove items in config history panel (OS X)
+Fixed language file parser showing incorrect row on error
+Fixed crash during sync due to unsupported SSE instructions (Server 2003, XP 64-bit)
+Fixed startup error due to invalid handle type
+Always log folder pair paths even if there is nothing to sync
+Updated translation files
+
+
FreeFileSync 6.11 [2014-11-03]
------------------------------
Updated Recycle Bin access for Windows 10
@@ -16,7 +33,7 @@ Fixed async error evaluation when creating volume shadow copies
Keep user interface responsive while creating a volume shadow copy
Fixed error when starting asynchronously from a batch script
Show progress of writing log files
-Fixed updated file being left deleted when copying permission failed
+Fixed updated file being left deleted when copying permissions failed
New Project website: http://www.freefilesync.org/
diff --git a/FreeFileSync/Build/Help/html/Comparison Settings.html b/FreeFileSync/Build/Help/html/Comparison Settings.html
index 49e137a2..4b1a44d3 100644
--- a/FreeFileSync/Build/Help/html/Comparison Settings.html
+++ b/FreeFileSync/Build/Help/html/Comparison Settings.html
@@ -15,12 +15,9 @@
<H3>Symbolic Link Handling</H3>
-<P>FreeFileSync offers three options to configure handling of symbolic links (also called symlinks or soft links):</P>
+<P>FreeFileSync let's you choose to include symbolic links (also called symlinks or soft links) when scanning directories rather than skipping over them. When included, you can select between two ways to handle them:</P>
<OL>
- <LI><B>Exclude:</B>
- Skip symbolic links while scanning directories.<BR>&nbsp;
-
<LI><B>Direct:</B>
Evaluate the symbolic link object
directly. Symbolic links will be shown as separate entities.
@@ -83,8 +80,7 @@ time <B>and</B> file size match. The following categories are distinguished:</P>
<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 it is naturally slower. The file
-modification time is not taken into account at all.
+rather than backup operations since a bitwise comparison can be slow.
</P>
<OL TYPE=i>
diff --git a/FreeFileSync/Build/Help/html/FreeFileSync.html b/FreeFileSync/Build/Help/html/FreeFileSync.html
index ad176beb..c88f9d90 100644
--- a/FreeFileSync/Build/Help/html/FreeFileSync.html
+++ b/FreeFileSync/Build/Help/html/FreeFileSync.html
@@ -61,7 +61,7 @@
<div class="bluebox">
<div class="bluebox_inner">
<B>Homepage:</B><BR>
- <A HREF="http://www.freefilesync.org/">http://www.freefilesync.org/</A> - feedback, suggestions, bug-reports, official download mirrors<BR>
+ <A HREF="http://www.freefilesync.org">http://www.freefilesync.org</A> - feedback, suggestions, bug-reports, official download mirrors<BR>
<BR>
diff --git a/FreeFileSync/Build/Help/img/comparison_settings.png b/FreeFileSync/Build/Help/img/comparison_settings.png
index 06fd2f91..8fb95a7f 100644
--- a/FreeFileSync/Build/Help/img/comparison_settings.png
+++ b/FreeFileSync/Build/Help/img/comparison_settings.png
Binary files differ
diff --git a/FreeFileSync/Build/Help/img/time_shift.png b/FreeFileSync/Build/Help/img/time_shift.png
index 1f5ec846..2970cdaf 100644
--- a/FreeFileSync/Build/Help/img/time_shift.png
+++ b/FreeFileSync/Build/Help/img/time_shift.png
Binary files differ
diff --git a/FreeFileSync/Build/Languages/arabic.lng b/FreeFileSync/Build/Languages/arabic.lng
index ceb27cba..8e654b06 100644
--- a/FreeFileSync/Build/Languages/arabic.lng
+++ b/FreeFileSync/Build/Languages/arabic.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>أي عدد من أزواج المسارات البديلة من أجل مل٠خيارات واحد</target>
+<source>Open configuration for edit without executing.</source>
+<target>Ùتح التضبيطات من أجل التعديل من دون تنÙيذ الملÙ.</target>
+
<source>Cannot find the following folders:</source>
<target>تعذر العثور على المجلدات التالية:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>نقل مل٠على اليسار</target>
-<source>Overwrite left item</source>
-<target>الكتابة Ùوق العنصر الأيمن</target>
+<source>Update left item</source>
+<target>تحديث العنصر اليميني</target>
-<source>Overwrite right item</source>
-<target>الكتابة Ùوق العنصر الأيسر</target>
+<source>Update right item</source>
+<target>تحديث العنصر اليساري</target>
<source>Do nothing</source>
<target>لا تÙعل شيئا</target>
@@ -221,6 +224,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>لا يمكن Ùتح المل٠%x.</target>
+
<source>Database file %x is incompatible.</source>
<target>مل٠قاعدة البيانات %x غير متواÙÙ‚.</target>
@@ -276,6 +282,9 @@
<source>Creating file %x</source>
<target>إنشاء المل٠%x</target>
+<source>Saving file %x...</source>
+<target>جاري Ø­Ùظ المل٠%x...</target>
+
<source>Items processed:</source>
<target>معالجة العناصر:</target>
@@ -307,9 +316,6 @@
<pluralform>%x بند</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>ترميز المعلومات الموسعة للوقت: %x</target>
-
<source>/sec</source>
<target>\ثانية</target>
@@ -331,9 +337,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>الرجاء استخدام إصدار الـ 64-bit للبرنامج لإنشاء ملÙات الظل الاحتياطية على هذا النظام.</target>
-<source>Cannot load file %x.</source>
-<target>لا يمكن Ùتح المل٠%x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>تعذر تحديد اسم الوسط %x</target>
@@ -352,8 +355,8 @@
<source>Save &as...</source>
<target>&Ø­Ùظ باسم...</target>
-<source>&Quit</source>
-<target>إ&نهاء</target>
+<source>E&xit</source>
+<target>&إغلاق</target>
<source>&File</source>
<target>&ملÙ</target>
@@ -447,6 +450,9 @@ The command is triggered if:
<source>&Show error</source>
<target>إ&ظهار الخطأ</target>
+<source>&Quit</source>
+<target>إ&نهاء</target>
+
<source>Incorrect command line:</source>
<target>سطر أوامر خاطئ:</target>
@@ -492,11 +498,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>إنشاء مجلد %x</target>
-<source>Overwriting file %x</source>
-<target>الكتابة Ùوق المل٠%x</target>
+<source>Updating file %x</source>
+<target>جاري تحديث المل٠%x</target>
-<source>Overwriting symbolic link %x</source>
-<target>الكتابة Ùوق الارتباط الرمزي %x</target>
+<source>Updating symbolic link %x</source>
+<target>جاري تحديث المسار الرمزي %x</target>
<source>Verifying file %x</source>
<target>التحقق من المل٠%x</target>
@@ -510,21 +516,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>خطأ ÙÙŠ التحقق من البيانات: يحتوي %x Ùˆ %y بيانات مختلÙØ©.</target>
-<source>Cannot find folder %x.</source>
-<target>تعذر العثور على المجلد %x.</target>
-
<source>Target folder %x already existing.</source>
<target>المجلد الهد٠%x موجود سابقاً.</target>
+<source>Cannot find folder %x.</source>
+<target>تعذر العثور على المجلد %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>يجب أن لا يكون حقل إدخال المجلد الهد٠Ùارغاً.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>الرجاء تحديد مجلد هد٠من أجل الوسم حسب الإصدار.</target>
-
<source>Source folder %x not found.</source>
<target>لم يتم العثور على المجلد المصدر %x.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>الرجاء تحديد مجلد هد٠من أجل الوسم حسب الإصدار.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>العناصر التالية لم تحل اختلاÙاتها، Ùˆ لن يتم مزامنتها:</target>
@@ -567,8 +573,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>تمت المزامنة بنجاح</target>
-<source>Saving log file %x...</source>
-<target>Ø­Ùظ مل٠السجل %x...</target>
+<source>Cleaning up old log files...</source>
+<target>جاري تنظي٠ملÙات المتابعة القديمة...</target>
<source>Stopped</source>
<target>توقÙ</target>
@@ -625,8 +631,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>البرنامج هو الأحدث حتى الآن.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>تعذر الاتصال بـ sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>تعذر الاتصال بـ FreeFileSync.org</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>لم نستطع العثور على على رقم إصدار FreeFileSync على الشبكة. هل تريد التحقق يدوياً؟</target>
@@ -712,9 +718,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>بدأ الم&قارنة</target>
+<source>C&omparison settings</source>
+<target>&مقارنة</target>
+
+<source>&Filter settings</source>
+<target>إعدادات ال&Ùلتر</target>
+
+<source>S&ynchronization settings</source>
+<target>إ&عدادات</target>
+
<source>Start &synchronization</source>
<target>بدأ الم&زامنة</target>
+<source>&Actions</source>
+<target>&مهام</target>
+
<source>&Options</source>
<target>&خيارات</target>
@@ -793,8 +811,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>عدد الملÙات Ùˆ المجلدات التي سيتم حذÙها</target>
-<source>Number of files that will be overwritten</source>
-<target>عدد الملÙات التي سيتم استبدالها</target>
+<source>Number of files that will be updated</source>
+<target>عدد الملÙات التي سيتم تحديثها</target>
<source>Number of files and folders that will be created</source>
<target>عدد الملÙات Ùˆ المجلدات التي سيتم إنشاؤها</target>
@@ -823,8 +841,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>تعامل مع التوقيت الصيÙÙŠ</target>
-<source>Symbolic links:</source>
-<target>ارتباطات رمزية:</target>
+<source>Include symbolic links:</source>
+<target>تضمن السارات الرمزية:</target>
+
+<source>Direct</source>
+<target>مباشر</target>
+
+<source>Follow</source>
+<target>اتبع</target>
<source>More information</source>
<target>المزيد من المعلومات</target>
@@ -853,24 +877,24 @@ The command is triggered if:
<source>Maximum:</source>
<target>الحد الأقصى:</target>
-<source>C&lear</source>
-<target>إ&زالة</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>اختيار قوانين Ùلترة لاستثناء ملÙات معينة من المزامنة. أدخل مسارات الملÙات منسوبة إلى زوج المجلدات المقابل.</target>
+<source>C&lear</source>
+<target>إ&زالة</target>
+
<source>Detect moved files</source>
<target>اكتشا٠الملÙات المنقولة</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- بحاجة لإنشاء قواعد بيانات لجميع الملÙات
-- يبدأ التعر٠على التغيرات بعد المزامنة الأولية
-- غير مدعوم من قبل جميع أنطمة الملÙات (file systems)
+- تÙعيل التحقق بعد المزامنة
+- يحتاج Ùˆ ينشئ ملÙات قواعد معطيات
+- غير مدعوم لجميع أنظمة الملÙات
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1083,27 +1107,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>عرض الإعدادات</target>
-<source>Overview</source>
-<target>نظرة عامة</target>
-
<source>Configuration</source>
<target>التكوين</target>
+<source>Overview</source>
+<target>نظرة عامة</target>
+
<source>Main Bar</source>
<target>الشريط الرئيسي</target>
-<source>Start comparison</source>
-<target>بدأ المقارنة</target>
-
-<source>Comparison settings</source>
-<target>إعدادات المقارنة</target>
-
-<source>Synchronization settings</source>
-<target>إعدادات المزامنة</target>
-
-<source>Start synchronization</source>
-<target>بدء المزامنة</target>
-
<source>Confirm</source>
<target>تأكيد</target>
@@ -1270,11 +1282,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>إظهار الملÙات التي سيتم حذÙها من الجانب الأيسر</target>
-<source>Show files that will be overwritten on left side</source>
-<target>إظهار الملÙات التي سيتم الكتابة Ùوقها ÙÙŠ الجانب الأيمن</target>
+<source>Show files that will be updated on the left side</source>
+<target>إظهار الملÙات التي سيتم تحديثها ÙÙŠ الجانب الأيسر</target>
-<source>Show files that will be overwritten on right side</source>
-<target>إظهار الملÙات التي سيتم الكتابة Ùوقها ÙÙŠ الجانب الأيسر</target>
+<source>Show files that will be updated on the right side</source>
+<target>إظهار الملÙات التي سيتم تحديثها ÙÙŠ الجانب الأيمن</target>
<source>Show files that won't be copied</source>
<target>إظهار الملÙات التي لن يتم نسخها</target>
@@ -1419,15 +1431,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>تحديد قواعد المزامنة الخاصة بك.</target>
-<source>Exclude</source>
-<target>استبعاد</target>
-
-<source>Direct</source>
-<target>مباشر</target>
-
-<source>Follow</source>
-<target>اتبع</target>
-
<source>Today</source>
<target>اليوم</target>
@@ -1491,9 +1494,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>لا يمكن مراقبة المسار %x.</target>
-<source>Conversion error:</source>
-<target>خطأ ÙÙŠ تحويل:</target>
-
<source>Cannot delete file %x.</source>
<target>لا يمكن حذ٠المل٠%x.</target>
@@ -1527,8 +1527,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>لا يمكن إنشاء المسار %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>تعذر إنشاء رابط رمزي %x</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>لا يمكن نسخ الرابط الرمزي من %x إلى %y</target>
<source>Cannot find system function %x.</source>
<target>لا يمكن العثور على وظيÙØ© نظام %x.</target>
@@ -1623,3 +1623,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>تم تحميل مل٠التكوين %x بشكل٠جزئي Ùقط.</target>
+<source>Prepare installation</source>
+<target>الاستعداد للتثبيت</target>
+
+<source>Choose which components you want to install.</source>
+<target>اختر المكونات التي تريد تنصيبها</target>
+
+<source>Select installation type:</source>
+<target>اختيار نوع التنصيب:</target>
+
+<source>Local</source>
+<target>محلي</target>
+
+<source>Portable</source>
+<target>متنقل</target>
+
+<source>recommended</source>
+<target>â€Ù…نصوح بهâ€</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Ø­Ùظ الإعدادات إلى â€â€ª"%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>تسجيل لاحقةالملÙات</target>
+
+<source>Create Explorer context menu entries</source>
+<target>إنشاء مدخلات القوائم المحلية ÙÙŠ متصÙØ­ الملÙات</target>
+
+<source>Save settings in installation directory</source>
+<target>احÙظ إعدادات التثبيت ÙÙŠ مسار التثبيت</target>
+
+<source>Do not write to Registry</source>
+<target>لا تسجل ÙÙŠ ملÙات الرجيستري</target>
+
+<source>Just copy the files</source>
+<target>انسخ الملÙات Ùقط</target>
+
+<source>Choose a directory for installation:</source>
+<target>اختيار مسار التثبيت</target>
+
+<source>Create shortcuts:</source>
+<target>إنشاء اختصار</target>
+
+<source>Desktop</source>
+<target>سطح المكتب</target>
+
+<source>Start menu</source>
+<target>قائمة إبدأ</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>تسجيل لاحقة الملÙات</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>إلغاء تسجيل لاحقةالملÙات</target>
+
+<source>FreeFileSync Configuration</source>
+<target>تضبيطات FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>المل٠الدÙعي الخاص بـ FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>قاعدة بيانات المزامنة الخاصة بـ FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>تضبيطات RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>تعديل بواسطة FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/bulgarian.lng b/FreeFileSync/Build/Languages/bulgarian.lng
index 3d61b75a..e4f8263e 100644
--- a/FreeFileSync/Build/Languages/bulgarian.lng
+++ b/FreeFileSync/Build/Languages/bulgarian.lng
@@ -23,7 +23,7 @@
<target>Задават Ñе подразбиращи Ñе поÑоки на ÑинхронизациÑ: Ñтарите файлове ще Ñе заменÑÑ‚ Ñ Ð¿Ð¾-нови.</target>
<source>Checking recycle bin availability for folder %x...</source>
-<target>ПроверÑва Ñе доÑтъпноÑтта на кошчето за папка %x...</target>
+<target>ПроверÑва доÑтъпноÑтта на кошчето за папка %x...</target>
<source>Moving file %x to the recycle bin</source>
<target>Файл %x Ñе премеÑтва в кошчето</target>
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Произволен брой алтернативни двойки директории за най-много един конфигурационен файл.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Отвори конфигурациÑта за редактиране без изпълнение.</target>
+
<source>Cannot find the following folders:</source>
<target>Ðе Ñа намерени Ñледните папки:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>ПремеÑти деÑÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»</target>
-<source>Overwrite left item</source>
-<target>Презапиши Ð»ÐµÐ²Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚</target>
+<source>Update left item</source>
+<target>Ðктуализирай Ð»ÐµÐ²Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚</target>
-<source>Overwrite right item</source>
-<target>Презапиши деÑÐ½Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚</target>
+<source>Update right item</source>
+<target>Ðктуализирай деÑÐ½Ð¸Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚</target>
<source>Do nothing</source>
<target>Ðе прави нищо</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x ГБ</target>
+<source>Cannot load file %x.</source>
+<target>Файл %x не може да Ñе зареди.</target>
+
<source>Database file %x is incompatible.</source>
<target>Файлът на базата данни %x е неÑъвмеÑтим.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Създава файл %x</target>
+<source>Saving file %x...</source>
+<target>Запазва файл %x...</target>
+
<source>Items processed:</source>
<target>Обработени елементи:</target>
@@ -295,9 +304,6 @@
<pluralform>%x нишки</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Кодира разширената Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° време: %x</target>
-
<source>/sec</source>
<target>/Ñек.</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>МолÑ, ползвайте 64-бит. верÑÐ¸Ñ Ð½Ð° FFS за Ñъздаване фонови ÐºÐ¾Ð¿Ð¸Ñ Ð½Ð° тази ÑиÑтема.</target>
-<source>Cannot load file %x.</source>
-<target>Файл %x не може да Ñе зареди.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Името на тома за %x не може да Ñе определи.</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>Запази к&ато...</target>
-<source>&Quit</source>
-<target>Кра&й</target>
+<source>E&xit</source>
+<target>И&зход</target>
<source>&File</source>
<target>&Файл</target>
@@ -402,7 +405,7 @@ The command is triggered if:
<target>
ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¸Ñ Ñ€ÐµÐ´ Ñе изпълнÑва, ако:
- Ñе променÑÑ‚ файлове или подпапки,
-- Ñе поÑвÑÑ‚ нови папки (напр. вкарана флашка)
+- Ñе ÑвÑÑ‚ нови папки (напр. вкарана флашка).
</target>
<source>&Start</source>
@@ -435,6 +438,9 @@ The command is triggered if:
<source>&Show error</source>
<target>Покажи гре&шката</target>
+<source>&Quit</source>
+<target>Кра&й</target>
+
<source>Incorrect command line:</source>
<target>Ðевалиден команден ред:</target>
@@ -480,11 +486,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>Създава папка %x</target>
-<source>Overwriting file %x</source>
-<target>ПрезапиÑва файл %x</target>
+<source>Updating file %x</source>
+<target>Ðктуализира файл %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>ПрезапиÑва Ñимволна връзка %x</target>
+<source>Updating symbolic link %x</source>
+<target>Ðктуализира Ñимволна връзка %x</target>
<source>Verifying file %x</source>
<target>Верифицира файл %x</target>
@@ -498,21 +504,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>Грешка при верификациÑ: %x и %y имат различно Ñъдържание.</target>
-<source>Cannot find folder %x.</source>
-<target>Ðе е открита папка %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Целевата папка %x вече ÑъщеÑтвува.</target>
+<source>Cannot find folder %x.</source>
+<target>Ðе е открита папка %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Полето за целева папка не бива да е празно.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>МолÑ, въведете целева папка за верÑификациÑ.</target>
-
<source>Source folder %x not found.</source>
<target>Изходната папка %x не е намерена.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>МолÑ, въведете целева папка за верÑификациÑ.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Следните елементи имат нерешени конфликти и нÑма да бъдат Ñинхронизирани:</target>
@@ -555,8 +561,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>СинхронизациÑта завърши уÑпешно</target>
-<source>Saving log file %x...</source>
-<target>Запазване на Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» %x...</target>
+<source>Cleaning up old log files...</source>
+<target>ИзчиÑтва Ñтарите log-файлове...</target>
<source>Stopped</source>
<target>Стопирано</target>
@@ -609,8 +615,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync вече е актуална.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>ÐÑма връзка ÑÑŠÑ sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Ðе мога да Ñе Ñвържа Ñ FreeFileSync.org.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Ðомера на текущата верÑÐ¸Ñ Ð½Ð° FreeFileSync не е открит онлайн. Ще опитате ли ръчно?</target>
@@ -696,9 +702,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>Почни &ÑравнÑване</target>
+<source>C&omparison settings</source>
+<target>ÐаÑтройки на Ñ&равнÑване</target>
+
+<source>&Filter settings</source>
+<target>&ÐаÑтройки на филтъра</target>
+
+<source>S&ynchronization settings</source>
+<target>ÐаÑтройки на Ñ&инхронизациÑта</target>
+
<source>Start &synchronization</source>
<target>Почни &ÑинхронизациÑ</target>
+<source>&Actions</source>
+<target>&ДейÑтвиÑ</target>
+
<source>&Options</source>
<target>&Опции</target>
@@ -777,8 +795,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>Брой файлове и папки, които ще бъдат изтрити</target>
-<source>Number of files that will be overwritten</source>
-<target>Брой файлове, които ще бъдат презапиÑани</target>
+<source>Number of files that will be updated</source>
+<target>Брой файлове, които ще бъдат актуализирани</target>
<source>Number of files and folders that will be created</source>
<target>Брой файлове и папки, които ще бъдат Ñъздадени</target>
@@ -807,8 +825,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>Отчитай лÑтното време</target>
-<source>Symbolic links:</source>
-<target>Символни връзки:</target>
+<source>Include symbolic links:</source>
+<target>Включи Ñимволни връзки:</target>
+
+<source>Direct</source>
+<target>Директно</target>
+
+<source>Follow</source>
+<target>Следвай</target>
<source>More information</source>
<target>Още информациÑ</target>
@@ -837,23 +861,23 @@ The command is triggered if:
<source>Maximum:</source>
<target>МакÑимум:</target>
-<source>C&lear</source>
-<target>И&зчиÑти</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Изберете филтърни правила за изключване на нÑкои файлове от ÑинхронизациÑ. Въведете файлови пътища отноÑно Ñъответните им двойки папки.</target>
+<source>C&lear</source>
+<target>И&зчиÑти</target>
+
<source>Detect moved files</source>
<target>Откриване на премеÑтени файлове</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- ИзиÑква и Ñъздава файлове на базата данни.
-- Ðктивизира Ñе Ñлед предходна ÑинхронизациÑ.
+- Откриването е активно Ñлед начална ÑинхронизациÑ,
+- ИзиÑква и Ñъздава файлове на базата данни,
- Ðе Ñе поддържа от вÑички файлови ÑиÑтеми.
</target>
@@ -1041,7 +1065,7 @@ This guarantees a consistent state even in case of a serious error.
<target>Публикува Ñе по лиценза GNU General Public License</target>
<source>Many thanks for localization:</source>
-<target>Много благодарноÑти за локализациÑта:</target>
+<target>БлагодарноÑти за локализациÑта:</target>
<source>Save as Batch Job</source>
<target>Запази като пакетна задача</target>
@@ -1067,27 +1091,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>ÐаÑтройки на изгледа</target>
-<source>Overview</source>
-<target>Обзор</target>
-
<source>Configuration</source>
<target>КонфигурациÑ</target>
+<source>Overview</source>
+<target>Обзор</target>
+
<source>Main Bar</source>
<target>Главен панел</target>
-<source>Start comparison</source>
-<target>Почни ÑравнÑване</target>
-
-<source>Comparison settings</source>
-<target>ÐаÑтройки на ÑравнÑването</target>
-
-<source>Synchronization settings</source>
-<target>ÐаÑтройки на ÑинхронизациÑта</target>
-
-<source>Start synchronization</source>
-<target>Старт на ÑинхронизациÑта</target>
-
<source>Confirm</source>
<target>Потвърждение</target>
@@ -1238,11 +1250,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Покажи файловете, които ще бъдат изтрити отдÑÑно</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Покажи файловете, които ще бъдат презапиÑани отлÑво</target>
+<source>Show files that will be updated on the left side</source>
+<target>Покажи файловете, които ще бъдат обновени отлÑво</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Покажи файловете, които ще бъдат презапиÑани отдÑÑно</target>
+<source>Show files that will be updated on the right side</source>
+<target>Покажи файловете, които ще бъдат обновени отдÑÑно</target>
<source>Show files that won't be copied</source>
<target>Покажи файловете, които нÑма да бъдат копирани</target>
@@ -1379,15 +1391,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Дефинирай Ñвои правила за ÑинхронизациÑ.</target>
-<source>Exclude</source>
-<target>Изключи</target>
-
-<source>Direct</source>
-<target>Директно</target>
-
-<source>Follow</source>
-<target>Следвай</target>
-
<source>Today</source>
<target>ДнеÑ</target>
@@ -1451,9 +1454,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %x не може да Ñе Ñледи.</target>
-<source>Conversion error:</source>
-<target>Грешка на преобразуване:</target>
-
<source>Cannot delete file %x.</source>
<target>Файл %x не може да Ñе изтрие.</target>
@@ -1487,8 +1487,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %x не може да Ñе Ñъздаде.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Символната връзка %x не може да Ñе Ñъздаде.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Символната връзка %x не може да Ñе копира в %y.</target>
<source>Cannot find system function %x.</source>
<target>СиÑтемната Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %x не може да Ñе намери.</target>
@@ -1571,3 +1571,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» %x Ñе зареди Ñамо чаÑтично.</target>
+<source>Prepare installation</source>
+<target>Подготовка за инÑталиране</target>
+
+<source>Choose which components you want to install.</source>
+<target>Изберете желаните компоненти за иÑталиране.</target>
+
+<source>Select installation type:</source>
+<target>Изберете типа инÑталациÑ:</target>
+
+<source>Local</source>
+<target>Локална</target>
+
+<source>Portable</source>
+<target>ПреноÑима</target>
+
+<source>recommended</source>
+<target>препоръчително</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Запази наÑтройките в "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>РегиÑтрирай файлови Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð·Ð° FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Създай полета в контекÑтното меню на Explorer</target>
+
+<source>Save settings in installation directory</source>
+<target>Запази наÑтройките в инÑталационната директориÑ</target>
+
+<source>Do not write to Registry</source>
+<target>Ðе запиÑвай нищо в РегиÑтъра</target>
+
+<source>Just copy the files</source>
+<target>Само копирай файловете</target>
+
+<source>Choose a directory for installation:</source>
+<target>Изберете Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð° инÑталиране:</target>
+
+<source>Create shortcuts:</source>
+<target>Създай къÑи пътища:</target>
+
+<source>Desktop</source>
+<target>Ðа деÑктопа</target>
+
+<source>Start menu</source>
+<target>Ð’ Ñтартовото меню</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>РегиÑтриране на файлови Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð·Ð° FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Де-региÑтриране на файлови Ñ€Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð·Ð° FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Конфигуриране на FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Пакетен файл на FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>Синхронизираща база данни на FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Конфигуриране на RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Редактиране Ñ FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/chinese_simple.lng b/FreeFileSync/Build/Languages/chinese_simple.lng
index d8f33b6d..4d3cb947 100644
--- a/FreeFileSync/Build/Languages/chinese_simple.lng
+++ b/FreeFileSync/Build/Languages/chinese_simple.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>ä»»æ„æ•°é‡çš„替代目录对的最多一个é…置文件.</target>
+<source>Open configuration for edit without executing.</source>
+<target>打开é…置用于编辑而ä¸æ‰§è¡Œ.</target>
+
<source>Cannot find the following folders:</source>
<target>无法找到如下文件夹:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>移动å³ä¾§çš„文件</target>
-<source>Overwrite left item</source>
-<target>覆盖左侧的项目</target>
+<source>Update left item</source>
+<target>更新左侧项目</target>
-<source>Overwrite right item</source>
-<target>覆盖å³ä¾§çš„项目</target>
+<source>Update right item</source>
+<target>æ›´æ–°å³ä¾§é¡¹ç›®</target>
<source>Do nothing</source>
<target>ä¿æŒä¸åŠ¨</target>
@@ -216,6 +219,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>ä¸èƒ½è½½å…¥æ–‡ä»¶ %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>æ•°æ®åº“文件 %x ä¸å…¼å®¹.</target>
@@ -266,6 +272,9 @@
<source>Creating file %x</source>
<target>正在创建文件 %x</target>
+<source>Saving file %x...</source>
+<target>正在ä¿å­˜æ–‡ä»¶ %x...</target>
+
<source>Items processed:</source>
<target>已处ç†çš„项目:</target>
@@ -292,9 +301,6 @@
<pluralform>%x 线程</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>正在编ç æ‰©å±•æ—¶é—´ä¿¡æ¯:%x</target>
-
<source>/sec</source>
<target>/秒</target>
@@ -316,9 +322,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>请使用 FreeFileSync 64ä½ç‰ˆæœ¬æ¥åœ¨è¿™ä¸ªç³»ç»Ÿä¸Šåˆ›å»ºå·å½±å¤åˆ¶.</target>
-<source>Cannot load file %x.</source>
-<target>ä¸èƒ½è½½å…¥æ–‡ä»¶ %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>无法为 %x 确定å·å.</target>
@@ -337,8 +340,8 @@
<source>Save &as...</source>
<target>å¦å­˜ä¸º(&A)...</target>
-<source>&Quit</source>
-<target>退出(&Q)</target>
+<source>E&xit</source>
+<target>退出(&X)</target>
<source>&File</source>
<target>文件(&F)</target>
@@ -432,6 +435,9 @@ The command is triggered if:
<source>&Show error</source>
<target>显示错误(&S)</target>
+<source>&Quit</source>
+<target>退出(&Q)</target>
+
<source>Incorrect command line:</source>
<target>ä¸æ­£ç¡®çš„命令行:</target>
@@ -477,11 +483,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>正创建文件夹 %x</target>
-<source>Overwriting file %x</source>
-<target>正在覆盖文件 %x</target>
+<source>Updating file %x</source>
+<target>正在更新文件 %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>正在覆盖符å·è¿žæŽ¥ %x</target>
+<source>Updating symbolic link %x</source>
+<target>正在更新符å·è¿žæŽ¥ %x</target>
<source>Verifying file %x</source>
<target>校验文件 %x</target>
@@ -495,21 +501,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>æ•°æ®æ ¡éªŒé”™è¯¯: %x å’Œ %y 有ä¸åŒçš„内容.</target>
-<source>Cannot find folder %x.</source>
-<target>无法找到文件夹 %x.</target>
-
<source>Target folder %x already existing.</source>
<target>目标文件夹 %x å·²ç»å­˜åœ¨.</target>
+<source>Cannot find folder %x.</source>
+<target>无法找到文件夹 %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>目标文件夹输入框必须ä¸ä¸ºç©º.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>请输入一个用于ä¿å­˜åŽ†å²ç‰ˆæœ¬çš„目标文件夹.</target>
-
<source>Source folder %x not found.</source>
<target>无法找到æºæ–‡ä»¶å¤¹ %x.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>请输入一个用于ä¿å­˜åŽ†å²ç‰ˆæœ¬çš„目标文件夹.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>如下项目有无法解决的冲çªå¹¶å°†ä¸ä¼šè¢«åŒæ­¥:</target>
@@ -552,8 +558,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>åŒæ­¥æˆåŠŸå®Œæˆ</target>
-<source>Saving log file %x...</source>
-<target>正在ä¿å­˜æ—¥å¿—文件 %x...</target>
+<source>Cleaning up old log files...</source>
+<target>正在清ç†æ—§æ—¥å¿—文件...</target>
<source>Stopped</source>
<target>å·²åœæ­¢</target>
@@ -605,8 +611,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync 已是最新.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>无法链接到 Sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>无法连接到FreeFileSync.org.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>无法在线找到当å‰FreeFileSync版本å·. ä½ è¦æ‰‹åŠ¨æ£€æŸ¥å—?</target>
@@ -692,9 +698,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>开始比较(&C)</target>
+<source>C&omparison settings</source>
+<target>比较设置(&O)</target>
+
+<source>&Filter settings</source>
+<target>过滤器设置(&F)</target>
+
+<source>S&ynchronization settings</source>
+<target>åŒæ­¥è®¾ç½®(&Y)</target>
+
<source>Start &synchronization</source>
<target>开始åŒæ­¥(&S)</target>
+<source>&Actions</source>
+<target>动作(&A)</target>
+
<source>&Options</source>
<target>选项(&O)</target>
@@ -773,8 +791,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>将被删除的文件和文件夹数</target>
-<source>Number of files that will be overwritten</source>
-<target>将被覆盖的文件数</target>
+<source>Number of files that will be updated</source>
+<target>将会被更新的文件数</target>
<source>Number of files and folders that will be created</source>
<target>将被创建的文件和文件夹数</target>
@@ -803,8 +821,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>处ç†å¤ä»¤æ—¶</target>
-<source>Symbolic links:</source>
-<target>符å·è¿žæŽ¥:</target>
+<source>Include symbolic links:</source>
+<target>包括符å·è¿žæŽ¥:</target>
+
+<source>Direct</source>
+<target>直接</target>
+
+<source>Follow</source>
+<target>è·Ÿéš</target>
<source>More information</source>
<target>更多信æ¯</target>
@@ -833,24 +857,24 @@ The command is triggered if:
<source>Maximum:</source>
<target>最大:</target>
+<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
+<target>选择过滤器规则以将æŸäº›æ–‡ä»¶ä»ŽåŒæ­¥ä¸­æŽ’除. 输入与相应的文件夹对相关的文件路径.</target>
+
<source>C&lear</source>
<target>清除(&L)</target>
-<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
-<target>选择过滤器规则以将æŸäº›æ–‡ä»¶ä»ŽåŒæ­¥ä¸­æŽ’除. 输入与相关的文件夹对相对的与文件路径.</target>
-
<source>Detect moved files</source>
<target>检测被移动的文件</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- 需求和创建数æ®åº“文件
-- 在åˆå§‹åŒæ­¥åŽæ£€æµ‹æ´»åŠ¨
-- ä¸æ˜¯æ‰€æœ‰æ–‡ä»¶ç³»ç»Ÿéƒ½æ”¯æŒ
+- 检测在åˆå§‹åŒ–åŒæ­¥ä¹‹åŽç”Ÿæ•ˆ
+- 需è¦å¹¶ä¸”会创建数æ®åº“文件
+- ä¸è¢«æ‰€æœ‰æ–‡ä»¶ç³»ç»Ÿæ”¯æŒ
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1060,27 +1084,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>视图设置</target>
-<source>Overview</source>
-<target>摘è¦</target>
-
<source>Configuration</source>
<target>é…ç½®</target>
+<source>Overview</source>
+<target>摘è¦</target>
+
<source>Main Bar</source>
<target>主工具æ </target>
-<source>Start comparison</source>
-<target>开始比较</target>
-
-<source>Comparison settings</source>
-<target>比较设置</target>
-
-<source>Synchronization settings</source>
-<target>åŒæ­¥è®¾ç½®</target>
-
-<source>Start synchronization</source>
-<target>开始åŒæ­¥</target>
-
<source>Confirm</source>
<target>确认</target>
@@ -1227,11 +1239,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>显示将在å³ä¾§è¢«åˆ é™¤çš„文件</target>
-<source>Show files that will be overwritten on left side</source>
-<target>显示将在左侧被覆盖的文件</target>
+<source>Show files that will be updated on the left side</source>
+<target>显示左侧将会被更新的文件</target>
-<source>Show files that will be overwritten on right side</source>
-<target>显示将在å³ä¾§è¢«è¦†ç›–的文件</target>
+<source>Show files that will be updated on the right side</source>
+<target>显示å³ä¾§å°†ä¼šè¢«æ›´æ–°çš„文件</target>
<source>Show files that won't be copied</source>
<target>显示将ä¸è¢«å¤åˆ¶çš„文件</target>
@@ -1366,15 +1378,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>é…置你自己的åŒæ­¥è§„则.</target>
-<source>Exclude</source>
-<target>排除</target>
-
-<source>Direct</source>
-<target>直接</target>
-
-<source>Follow</source>
-<target>è·Ÿéš</target>
-
<source>Today</source>
<target>今天</target>
@@ -1438,9 +1441,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>无法监视目录 %x.</target>
-<source>Conversion error:</source>
-<target>转æ¢é”™è¯¯:</target>
-
<source>Cannot delete file %x.</source>
<target>无法删除文件 %x.</target>
@@ -1474,8 +1474,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>无法创建目录 %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>无法创建符å·è¿žæŽ¥ %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>无法å¤åˆ¶ç¬¦å·è¿žæŽ¥ %x 到 %y.</target>
<source>Cannot find system function %x.</source>
<target>无法找到系统功能 %x.</target>
@@ -1555,3 +1555,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>é…置文件 %x åªæ˜¯éƒ¨åˆ†è½½å…¥.</target>
+<source>Prepare installation</source>
+<target>准备安装</target>
+
+<source>Choose which components you want to install.</source>
+<target>选择你è¦å®‰è£…的组件.</target>
+
+<source>Select installation type:</source>
+<target>选择安装方å¼:</target>
+
+<source>Local</source>
+<target>本地</target>
+
+<source>Portable</source>
+<target>便æº</target>
+
+<source>recommended</source>
+<target>推è</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>ä¿å­˜è®¾ç½®åˆ° "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>注册 FreeFileSync 文件关è”</target>
+
+<source>Create Explorer context menu entries</source>
+<target>创建æµè§ˆå™¨å³é”®èœå•å…¥å£</target>
+
+<source>Save settings in installation directory</source>
+<target>ä¿å­˜è®¾ç½®åˆ°ç¨‹åºå®‰è£…目录</target>
+
+<source>Do not write to Registry</source>
+<target>ä¸å†™å…¥æ³¨å†Œè¡¨</target>
+
+<source>Just copy the files</source>
+<target>åªå¤åˆ¶æ–‡ä»¶</target>
+
+<source>Choose a directory for installation:</source>
+<target>选择è¦å®‰è£…的目录ä½ç½®:</target>
+
+<source>Create shortcuts:</source>
+<target>创建快æ·æ–¹å¼:</target>
+
+<source>Desktop</source>
+<target>æ¡Œé¢</target>
+
+<source>Start menu</source>
+<target>开始èœå•</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>注册 FreeFileSync 文件关è”</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>å–消注册 FreeFileSync 文件关è”</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync é…ç½®</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync批处ç†æ–‡ä»¶</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSyncåŒæ­¥æ•°æ®åº“</target>
+
+<source>RealtimeSync Configuration</source>
+<target>实时åŒæ­¥é…ç½®</target>
+
+<source>Edit with FreeFileSync</source>
+<target>使用FreeFileSync编辑</target>
+
diff --git a/FreeFileSync/Build/Languages/chinese_traditional.lng b/FreeFileSync/Build/Languages/chinese_traditional.lng
index 6f82db92..9c526db4 100644
--- a/FreeFileSync/Build/Languages/chinese_traditional.lng
+++ b/FreeFileSync/Build/Languages/chinese_traditional.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>ä»»æ„數é‡çš„替代é…å°ç›®éŒ„為最多一個é…置檔案。</target>
+<source>Open configuration for edit without executing.</source>
+<target>åªé–‹å•Ÿé…置來編輯而ä¸åŸ·è¡Œã€‚</target>
+
<source>Cannot find the following folders:</source>
<target>找ä¸åˆ°ä¸‹åˆ—資料夾:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>移動å³é‚Šçš„檔案</target>
-<source>Overwrite left item</source>
-<target>覆蓋左邊項目</target>
+<source>Update left item</source>
+<target>更新左邊項目</target>
-<source>Overwrite right item</source>
-<target>覆蓋å³é‚Šé …ç›®</target>
+<source>Update right item</source>
+<target>æ›´æ–°å³é‚Šé …ç›®</target>
<source>Do nothing</source>
<target>維æŒåŽŸç‹€</target>
@@ -216,6 +219,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>無法載入檔案 %x。</target>
+
<source>Database file %x is incompatible.</source>
<target>資料庫檔案 %x 是ä¸ç›¸å®¹çš„。</target>
@@ -266,6 +272,9 @@
<source>Creating file %x</source>
<target>正在新建檔案 %x</target>
+<source>Saving file %x...</source>
+<target>正在儲存檔案 %x...</target>
+
<source>Items processed:</source>
<target>已處ç†é …目:</target>
@@ -292,9 +301,6 @@
<pluralform>%x 個執行緒</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>編碼延長時間資訊:%x</target>
-
<source>/sec</source>
<target>/秒</target>
@@ -316,9 +322,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>請在此系統上使用FreeFileSync 64ä½å…ƒç‰ˆæœ¬ä¾†æ–°å»ºå·å½±å‰¯æœ¬ã€‚</target>
-<source>Cannot load file %x.</source>
-<target>無法載入檔案 %x。</target>
-
<source>Cannot determine volume name for %x.</source>
<target>無法確定å·å為 %x。</target>
@@ -337,8 +340,8 @@
<source>Save &as...</source>
<target>å¦å­˜æ–°æª”(&A)...</target>
-<source>&Quit</source>
-<target>離開(&Q)</target>
+<source>E&xit</source>
+<target>離開(&x)</target>
<source>&File</source>
<target>檔案(&F)</target>
@@ -432,6 +435,9 @@ The command is triggered if:
<source>&Show error</source>
<target>顯示錯誤(&S)</target>
+<source>&Quit</source>
+<target>離開(&Q)</target>
+
<source>Incorrect command line:</source>
<target>ä¸æ­£ç¢ºçš„命令列:</target>
@@ -477,11 +483,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>正在新建資料夾 %x</target>
-<source>Overwriting file %x</source>
-<target>正在覆蓋檔案 %x</target>
+<source>Updating file %x</source>
+<target>正在更新檔案 %x...</target>
-<source>Overwriting symbolic link %x</source>
-<target>æ­£åœ¨è¦†è“‹ç¬¦è™Ÿé€£çµ %x</target>
+<source>Updating symbolic link %x</source>
+<target>æ­£åœ¨æ›´æ–°ç¬¦è™Ÿé€£çµ %x...</target>
<source>Verifying file %x</source>
<target>正在驗證檔案 %x</target>
@@ -495,21 +501,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>資料驗證錯誤:%x å’Œ %y 內容ä¸åŒï¼</target>
-<source>Cannot find folder %x.</source>
-<target>找ä¸åˆ°è³‡æ–™å¤¾ %x。</target>
-
<source>Target folder %x already existing.</source>
<target>目標資料夾 %x 已存在。</target>
+<source>Cannot find folder %x.</source>
+<target>找ä¸åˆ°è³‡æ–™å¤¾ %x。</target>
+
<source>Target folder input field must not be empty.</source>
<target>目標資料夾輸入欄ä½ä¸èƒ½ç‚ºç©ºã€‚</target>
-<source>Please enter a target folder for versioning.</source>
-<target>請輸入版本控制的目的資料夾。</target>
-
<source>Source folder %x not found.</source>
<target>來æºè³‡æ–™å¤¾ %x 找ä¸åˆ°ã€‚</target>
+<source>Please enter a target folder for versioning.</source>
+<target>請輸入版本控制的目的資料夾。</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>下列項目有未解決的è¡çªï¼Œå°‡ä¸æœƒåŒæ­¥ï¼š</target>
@@ -552,8 +558,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>åŒæ­¥å·²æˆåŠŸå®Œæˆ</target>
-<source>Saving log file %x...</source>
-<target>正在儲存日誌檔 %x...</target>
+<source>Cleaning up old log files...</source>
+<target>清ç†èˆŠæ—¥èªŒæª”...</target>
<source>Stopped</source>
<target>å·²åœæ­¢</target>
@@ -605,8 +611,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync已經是最新版本。</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>無法連接到sourceforge.net。</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>無法連接到FreeFileSync.org。</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>找ä¸åˆ°ç›®å‰ç·šä¸ŠFreeFileSync版號ï¼æ˜¯å¦è¦æ‰‹å‹•æª¢æŸ¥ï¼Ÿ</target>
@@ -692,9 +698,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>開始比å°(&c)</target>
+<source>C&omparison settings</source>
+<target>比å°è¨­å®š(&o)</target>
+
+<source>&Filter settings</source>
+<target>篩é¸å™¨è¨­å®š(&F)</target>
+
+<source>S&ynchronization settings</source>
+<target>åŒæ­¥è¨­å®š(&y)</target>
+
<source>Start &synchronization</source>
<target>開始åŒæ­¥(&s)</target>
+<source>&Actions</source>
+<target>動作(&A)</target>
+
<source>&Options</source>
<target>é¸é …(&O)</target>
@@ -773,8 +791,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>將被刪除的檔案和資料夾數é‡</target>
-<source>Number of files that will be overwritten</source>
-<target>一些檔案和目錄會被覆蓋</target>
+<source>Number of files that will be updated</source>
+<target>將被更新的檔案數é‡</target>
<source>Number of files and folders that will be created</source>
<target>將被新建的檔案和資料夾數é‡</target>
@@ -803,8 +821,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>日光節約時間處ç†</target>
-<source>Symbolic links:</source>
-<target>符號連çµï¼š</target>
+<source>Include symbolic links:</source>
+<target>包括的符號連çµï¼š</target>
+
+<source>Direct</source>
+<target>直接</target>
+
+<source>Follow</source>
+<target>éµå¾ž</target>
<source>More information</source>
<target>詳細資訊</target>
@@ -833,23 +857,23 @@ The command is triggered if:
<source>Maximum:</source>
<target>最大:</target>
-<source>C&lear</source>
-<target>清除(&C)</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>é¸æ“‡å¾žåŒæ­¥ä¸­æŽ’除æŸäº›æª”案的篩é¸å™¨è¦å‰‡ã€‚輸入相å°æ–¼å…¶å°æ‡‰çš„é…å°è³‡æ–™å¤¾è·¯å¾‘。</target>
+<source>C&lear</source>
+<target>清除(&C)</target>
+
<source>Detect moved files</source>
<target>檢測被移動的檔案</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- è¦æ±‚並新建資料庫檔案
- åˆå§‹åŒ–åŒæ­¥å¾Œæª¢æ¸¬æ´»å‹•
+- è¦æ±‚並新建資料庫檔案
- ä¸æ”¯æ´æ‰€æœ‰æª”案系統
</target>
@@ -1063,27 +1087,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>檢視設定</target>
-<source>Overview</source>
-<target>摘è¦</target>
-
<source>Configuration</source>
<target>é…ç½®</target>
+<source>Overview</source>
+<target>摘è¦</target>
+
<source>Main Bar</source>
<target>主欄ä½</target>
-<source>Start comparison</source>
-<target>開始比å°</target>
-
-<source>Comparison settings</source>
-<target>比å°è¨­å®š</target>
-
-<source>Synchronization settings</source>
-<target>åŒæ­¥è¨­å®š</target>
-
-<source>Start synchronization</source>
-<target>開始åŒæ­¥</target>
-
<source>Confirm</source>
<target>確èª</target>
@@ -1183,7 +1195,7 @@ This guarantees a consistent state even in case of a serious error.
<target>是å¦è¦å„²å­˜è®Šæ›´åˆ° %x?</target>
<source>Never save &changes</source>
-<target>從ä¸ä¿å­˜æ›´æ”¹(&c)</target>
+<target>都ä¸ä¿å­˜æ›´æ”¹(&c)</target>
<source>Do&n't save</source>
<target>ä¸å„²å­˜(&N)</target>
@@ -1230,11 +1242,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>顯示å³é‚Šå°‡è¢«åˆªé™¤çš„檔案</target>
-<source>Show files that will be overwritten on left side</source>
-<target>顯示左邊將被覆蓋的檔案</target>
+<source>Show files that will be updated on the left side</source>
+<target>顯示左邊將被更新的檔案</target>
-<source>Show files that will be overwritten on right side</source>
-<target>顯示å³é‚Šå°‡è¢«è¦†è“‹çš„檔案</target>
+<source>Show files that will be updated on the right side</source>
+<target>顯示å³é‚Šå°‡è¢«æ›´æ–°çš„檔案</target>
<source>Show files that won't be copied</source>
<target>顯示將ä¸æœƒè¢«è¤‡è£½çš„檔案</target>
@@ -1369,15 +1381,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>é…置您自己的åŒæ­¥è¦å‰‡ã€‚</target>
-<source>Exclude</source>
-<target>排除</target>
-
-<source>Direct</source>
-<target>直接</target>
-
-<source>Follow</source>
-<target>éµå¾ž</target>
-
<source>Today</source>
<target>今日</target>
@@ -1441,9 +1444,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>無法監測目錄 %x。</target>
-<source>Conversion error:</source>
-<target>轉æ›éŒ¯èª¤ï¼š</target>
-
<source>Cannot delete file %x.</source>
<target>無法刪除目錄 %x。</target>
@@ -1477,8 +1477,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>無法新建目錄 %x。</target>
-<source>Cannot create symbolic link %x.</source>
-<target>ç„¡æ³•æ–°å»ºç¬¦è™Ÿé€£çµ %x。</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>ç„¡æ³•è¤‡è£½ç¬¦è™Ÿé€£çµ %x 到 %y。</target>
<source>Cannot find system function %x.</source>
<target>找ä¸åˆ°ç³»çµ±å‡½æ•¸ %x。</target>
@@ -1558,3 +1558,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>åªè¼‰å…¥è¨­å®šæª” %x 的一部份。</target>
+<source>Prepare installation</source>
+<target>準備安è£</target>
+
+<source>Choose which components you want to install.</source>
+<target>é¸æ“‡æ‚¨æƒ³è¦å®‰è£å“ªäº›å…ƒä»¶ã€‚</target>
+
+<source>Select installation type:</source>
+<target>é¸æ“‡å®‰è£é¡žåž‹ï¼š</target>
+
+<source>Local</source>
+<target>本機</target>
+
+<source>Portable</source>
+<target>å¯æ”œå¼</target>
+
+<source>recommended</source>
+<target>建議</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>儲存到"%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>註冊FreeFileSync檔案副檔å</target>
+
+<source>Create Explorer context menu entries</source>
+<target>新建資æºç®¡ç†å™¨å³éµé¸å–®é …ç›®</target>
+
+<source>Save settings in installation directory</source>
+<target>儲存設定到安è£ç›®éŒ„</target>
+
+<source>Do not write to Registry</source>
+<target>ä¸è¦å¯«å…¥è¨»å†Šè¡¨</target>
+
+<source>Just copy the files</source>
+<target>åªè¦è¤‡è£½æª”案</target>
+
+<source>Choose a directory for installation:</source>
+<target>é¸æ“‡å®‰è£ç›®éŒ„:</target>
+
+<source>Create shortcuts:</source>
+<target>建立æ·å¾‘:</target>
+
+<source>Desktop</source>
+<target>æ¡Œé¢</target>
+
+<source>Start menu</source>
+<target>開始功能表</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>註冊FreeFileSync檔案副檔å</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>å–消註冊FreeFileSync檔案副檔å</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSyncé…ç½®</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync批次檔</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSyncåŒæ­¥è³‡æ–™åº«</target>
+
+<source>RealtimeSync Configuration</source>
+<target>å³æ™‚åŒæ­¥é…ç½®</target>
+
+<source>Edit with FreeFileSync</source>
+<target>使用FreeFileSync進行編輯</target>
+
diff --git a/FreeFileSync/Build/Languages/croatian.lng b/FreeFileSync/Build/Languages/croatian.lng
index f6f8a476..93b7721a 100644
--- a/FreeFileSync/Build/Languages/croatian.lng
+++ b/FreeFileSync/Build/Languages/croatian.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Bilo koji broj alternativnih parova mapa za najmanje jednu config datoteku.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Otvori postavke za uređivanje bez pokretanja.</target>
+
<source>Cannot find the following folders:</source>
<target>Ne mogu pronaći slijedeće mape:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Premjest datoteku desno</target>
-<source>Overwrite left item</source>
-<target>Prepiši lijevu stavku</target>
+<source>Update left item</source>
+<target>Ažuriraj lijevu stavku</target>
-<source>Overwrite right item</source>
-<target>Prepiši desnu stavku</target>
+<source>Update right item</source>
+<target>Ažuriraj desnu stavku</target>
<source>Do nothing</source>
<target>Ne radi ništa</target>
@@ -218,6 +221,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Ne mogu uÄitati datoteku %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Datoteka baze %x je nekompatibilna.</target>
@@ -270,6 +276,9 @@
<source>Creating file %x</source>
<target>Izrađujem datoteku %x</target>
+<source>Saving file %x...</source>
+<target>Spremanje datoteke %x...</target>
+
<source>Items processed:</source>
<target>Obrađene stavke:</target>
@@ -298,9 +307,6 @@
<pluralform>%x niti</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Pretvaram informacije o vremenu %x</target>
-
<source>/sec</source>
<target>/sek</target>
@@ -322,9 +328,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Molimo koristite FreeFileSync 64-bitnu verziju za izradu shadow kopija na ovom sustavu</target>
-<source>Cannot load file %x.</source>
-<target>Ne mogu uÄitati datoteku %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Ne mogu utvrditi naziv spremnika za %x.</target>
@@ -343,8 +346,8 @@
<source>Save &as...</source>
<target>Spremiti &kao...</target>
-<source>&Quit</source>
-<target>&Izlaz</target>
+<source>E&xit</source>
+<target>I&zlaz</target>
<source>&File</source>
<target>&Datoteka</target>
@@ -438,6 +441,9 @@ Naredba će biti pokrenuta ako se:
<source>&Show error</source>
<target>&Prikaži grešku</target>
+<source>&Quit</source>
+<target>&Izlaz</target>
+
<source>Incorrect command line:</source>
<target>NetoÄna naredbena linija:</target>
@@ -483,11 +489,11 @@ Naredba će biti pokrenuta ako se:
<source>Creating folder %x</source>
<target>Kreiranje mape %x</target>
-<source>Overwriting file %x</source>
-<target>Prepisivanje datoteke %x</target>
+<source>Updating file %x</source>
+<target>Ažuriram datoteku %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Prepisivanje simboliÄnog linka %x</target>
+<source>Updating symbolic link %x</source>
+<target>Ažuriram simboliÄnu poveznicu %x</target>
<source>Verifying file %x</source>
<target>Provjeravanje datoteke %x</target>
@@ -501,21 +507,21 @@ Naredba će biti pokrenuta ako se:
<source>Data verification error: %x and %y have different content.</source>
<target>GreÅ¡ka prilikom provjere podataka: %x i %y imaju razliÄit sadržaj.</target>
-<source>Cannot find folder %x.</source>
-<target>Ne mogu pronaći mapu %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Odredišna mapa %x već postoji.</target>
+<source>Cannot find folder %x.</source>
+<target>Ne mogu pronaći mapu %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Odredišna mapa ne može biti prazna.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Molimo odaberite odrediÅ¡nu mapu za oznaÄavanje</target>
-
<source>Source folder %x not found.</source>
<target>Izvorna mapa %x nije pronađena.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Molimo odaberite odrediÅ¡nu mapu za oznaÄavanje</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Slijedeće stavke imaju nerješene konflikte i zato neće biti sinkronizirane:</target>
@@ -558,8 +564,8 @@ Naredba će biti pokrenuta ako se:
<source>Synchronization completed successfully</source>
<target>Sinkronizacija uspješno dovršena</target>
-<source>Saving log file %x...</source>
-<target>Spremam izješće %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Čistim stare datoteke o izvješću...</target>
<source>Stopped</source>
<target>Zaustavljeno</target>
@@ -613,8 +619,8 @@ Naredba će biti pokrenuta ako se:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync je ažuran.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Ne mogu se povezati na sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Nije moguće povezivanje s 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>
@@ -700,9 +706,21 @@ Naredba će biti pokrenuta ako se:
<source>Start &comparison</source>
<target>ZapoÄni &usporedbu</target>
+<source>C&omparison settings</source>
+<target>P&ostavke usporedbe</target>
+
+<source>&Filter settings</source>
+<target>&Postavke filtera</target>
+
+<source>S&ynchronization settings</source>
+<target>P&ostavke sinkronizacije</target>
+
<source>Start &synchronization</source>
<target>ZapoÄni &sinkronizaciju</target>
+<source>&Actions</source>
+<target>&Akcije</target>
+
<source>&Options</source>
<target>&Opcije</target>
@@ -781,8 +799,8 @@ Naredba će biti pokrenuta ako se:
<source>Number of files and folders that will be deleted</source>
<target>Broj datoteka i mapa koje će biti obrisane</target>
-<source>Number of files that will be overwritten</source>
-<target>Broj datoteka koje će biti prepisane</target>
+<source>Number of files that will be updated</source>
+<target>Broj datoteka koje će biti ažurirane</target>
<source>Number of files and folders that will be created</source>
<target>Broj datoteka i foldera koje će biti izrađene</target>
@@ -811,8 +829,14 @@ Naredba će biti pokrenuta ako se:
<source>Handle daylight saving time</source>
<target>Upravljaj ljetnim raÄunanjem vremena</target>
-<source>Symbolic links:</source>
-<target>SimboliÄne poveznice:</target>
+<source>Include symbolic links:</source>
+<target>UkljuÄi simboliÄne poveznice:</target>
+
+<source>Direct</source>
+<target>Direktno</target>
+
+<source>Follow</source>
+<target>Slijedi</target>
<source>More information</source>
<target>Više informacija</target>
@@ -841,24 +865,24 @@ Naredba će biti pokrenuta ako se:
<source>Maximum:</source>
<target>Maksimum:</target>
-<source>C&lear</source>
-<target>O&Äisti</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Odaberite filter pravila da biste iskljuÄili odreÄ‘ene datoteke iz sinkronizacije. Unesite relativnu putanju datoteka prema njihovim odgovarajućim parovima mapa.</target>
+<source>C&lear</source>
+<target>O&Äisti</target>
+
<source>Detect moved files</source>
<target>Otkrij premještene datoteke</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Zahtjeva i kreira datoteke baze podataka
- Otkrivanje aktivno nakon poÄetne sinkronizacije
-- Nije podržano od svih datoteÄnih sustava
+- Zahtjeva te izrađuje baze podataka
+- Nije podržano kod svih datoteÄnih sustava
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1071,27 +1095,15 @@ Ovo garantira Ävrsto stanje Äak u sluÄaju ozbiljne greÅ¡ke.
<source>View Settings</source>
<target>Postavke prikaza</target>
-<source>Overview</source>
-<target>Pregled</target>
-
<source>Configuration</source>
<target>Postavke</target>
+<source>Overview</source>
+<target>Pregled</target>
+
<source>Main Bar</source>
<target>Glavna traka</target>
-<source>Start comparison</source>
-<target>ZapoÄni usporedbu</target>
-
-<source>Comparison settings</source>
-<target>Postavke usporedbe</target>
-
-<source>Synchronization settings</source>
-<target>Postavke sinkronizacije</target>
-
-<source>Start synchronization</source>
-<target>ZapoÄni sinkronizaciju</target>
-
<source>Confirm</source>
<target>Potvrdi</target>
@@ -1246,11 +1258,11 @@ Ovo garantira Ävrsto stanje Äak u sluÄaju ozbiljne greÅ¡ke.
<source>Show files that will be deleted on the right side</source>
<target>Prikaži datoteke koje će biti izbrisane na desnoj strani</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Prikaži datoteke koje će biti prepisane na lijevoj strani</target>
+<source>Show files that will be updated on the left side</source>
+<target>Prikaži datoteke koje će biti ažurirane na lijevoj strani</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Prikaži datoteke koje će biti prepisane na desnoj strani</target>
+<source>Show files that will be updated on the right side</source>
+<target>Prikaži datoteke koje će biti ažurirane na desnoj strani</target>
<source>Show files that won't be copied</source>
<target>Prikaži datoteke koje neće biti kopirane</target>
@@ -1277,7 +1289,7 @@ Ovo garantira Ävrsto stanje Äak u sluÄaju ozbiljne greÅ¡ke.
<target>Popis datoteka je izvezen</target>
<source>Searching for program updates...</source>
-<target>Pretražujem nadogradnju programa...</target>
+<target>Tražim nadogradnju programa...</target>
<source>Close progress dialog</source>
<target>Zatvori prozor zadatka</target>
@@ -1389,15 +1401,6 @@ 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>Exclude</source>
-<target>IskljuÄi</target>
-
-<source>Direct</source>
-<target>Direktno</target>
-
-<source>Follow</source>
-<target>Slijedi</target>
-
<source>Today</source>
<target>Danas</target>
@@ -1461,9 +1464,6 @@ Ovo garantira Ävrsto stanje Äak u sluÄaju ozbiljne greÅ¡ke.
<source>Cannot monitor directory %x.</source>
<target>Ne mogu nadzirati direktorij %x.</target>
-<source>Conversion error:</source>
-<target>Greška prilikom pretvaranja:</target>
-
<source>Cannot delete file %x.</source>
<target>Ne mogu izbrisati datoteku %x.</target>
@@ -1497,8 +1497,8 @@ Ovo garantira Ävrsto stanje Äak u sluÄaju ozbiljne greÅ¡ke.
<source>Cannot create directory %x.</source>
<target>Ne mogu izraditi mapu %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Ne mogu stvoriti simboliÄku vezu %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Ne može se kopirati simboliÄna poveznica %x prema %y.</target>
<source>Cannot find system function %x.</source>
<target>Ne mogu pronaći sistemsku funkciju %x.</target>
@@ -1584,3 +1584,72 @@ Ovo garantira Ävrsto stanje Äak u sluÄaju ozbiljne greÅ¡ke.
<source>Configuration file %x loaded partially only.</source>
<target>Datoteka postavki %x uÄitana samo djelomiÄno</target>
+<source>Prepare installation</source>
+<target>Pripremam instalaciju</target>
+
+<source>Choose which components you want to install.</source>
+<target>Odaberite koje komponente želite instalirati.</target>
+
+<source>Select installation type:</source>
+<target>Odaberite vrstu instalacije:</target>
+
+<source>Local</source>
+<target>Lokalno</target>
+
+<source>Portable</source>
+<target>Prenosivo</target>
+
+<source>recommended</source>
+<target>preporuÄljivo</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Spremi postavke u "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registriraj FreeFileSync ekstenziju</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Izradi stavke u Explorer kontekstnom izborniku</target>
+
+<source>Save settings in installation directory</source>
+<target>Spremi postavke u instalacijsku mapu</target>
+
+<source>Do not write to Registry</source>
+<target>Ne upisuj u Registry</target>
+
+<source>Just copy the files</source>
+<target>Samo kopiraj datoteke</target>
+
+<source>Choose a directory for installation:</source>
+<target>Odaberi mapu za instalaciju:</target>
+
+<source>Create shortcuts:</source>
+<target>Izradi preÄac:</target>
+
+<source>Desktop</source>
+<target>Radna površina</target>
+
+<source>Start menu</source>
+<target>Start izbornik</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registriram FreeFileSync ekstenziju</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Uklanjam FreeFileSync ekstenziju</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync Postavke</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync slijedna datoteka</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync sinkronizacijska baza podataka</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync postavke</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Uredi pomoću FreeFileSynca</target>
+
diff --git a/FreeFileSync/Build/Languages/czech.lng b/FreeFileSync/Build/Languages/czech.lng
index 2796d262..af34ceb9 100644
--- a/FreeFileSync/Build/Languages/czech.lng
+++ b/FreeFileSync/Build/Languages/czech.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Libovolný poÄet alternativních párů adresářů na alespoň jednu konfiguraci.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Otevřít konfiguraci pro úpravu bez spuštění.</target>
+
<source>Cannot find the following folders:</source>
<target>Nelze najít následující složky:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Přesunout soubor napravo</target>
-<source>Overwrite left item</source>
-<target>Přepsat levou položku tou zprava</target>
+<source>Update left item</source>
+<target>Aktualizovat levou položku</target>
-<source>Overwrite right item</source>
-<target>Přepsat pravou položku tou zleva</target>
+<source>Update right item</source>
+<target>Aktualizovat pravou položku</target>
<source>Do nothing</source>
<target>Nic nedělat</target>
@@ -218,6 +221,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Nelze naÄíst soubor %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Chybný formát databáze %x.</target>
@@ -270,6 +276,9 @@
<source>Creating file %x</source>
<target>Vytváření souboru %x</target>
+<source>Saving file %x...</source>
+<target>Ukládání souboru %x...</target>
+
<source>Items processed:</source>
<target>Zpracováno položek:</target>
@@ -298,9 +307,6 @@
<pluralform>%x procesů</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Zpracování rozšířené informace o Äase: %x</target>
-
<source>/sec</source>
<target>/s</target>
@@ -322,9 +328,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Prosím použijte FreeFileSync 64-bitovou verzi pro použití služby Stínové kopie.</target>
-<source>Cannot load file %x.</source>
-<target>Nelze naÄíst soubor %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>>Nelze zjistit jméno jednotky souboru %x.</target>
@@ -343,7 +346,7 @@
<source>Save &as...</source>
<target>Uložit &jako...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>U&konÄit</target>
<source>&File</source>
@@ -438,6 +441,9 @@ Příkaz je spuštěn když:
<source>&Show error</source>
<target>&Zobrazit chybu</target>
+<source>&Quit</source>
+<target>U&konÄit</target>
+
<source>Incorrect command line:</source>
<target>Neplatný příkaz:</target>
@@ -483,11 +489,11 @@ Příkaz je spuštěn když:
<source>Creating folder %x</source>
<target>Vytváření adresáře %x</target>
-<source>Overwriting file %x</source>
-<target>Přepisování souboru %x</target>
+<source>Updating file %x</source>
+<target>Aktualizace souboru %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Přepisování symbolického odkazu %x</target>
+<source>Updating symbolic link %x</source>
+<target>Aktualizace symbolického odkazu %x</target>
<source>Verifying file %x</source>
<target>Kontrola souboru %x</target>
@@ -501,21 +507,21 @@ Příkaz je spuštěn když:
<source>Data verification error: %x and %y have different content.</source>
<target>Chyba porovnání dat: %x má jiný obsah než %y</target>
-<source>Cannot find folder %x.</source>
-<target>Nelze najít složku %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Cílová složka %x již existuje.</target>
+<source>Cannot find folder %x.</source>
+<target>Nelze najít složku %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Cílová složka nesmí být prázdná.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Prosím zadejte cílovou složku pro verzování.</target>
-
<source>Source folder %x not found.</source>
<target>Zdrojovou složku %x nelze najít.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Prosím zadejte cílovou složku pro verzování.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Následující položky jsou nevyřešené konflikty a nebudou synchronizovány:</target>
@@ -558,8 +564,8 @@ Příkaz je spuštěn když:
<source>Synchronization completed successfully</source>
<target>Synchronizace dokonÄena úspěšnÄ›</target>
-<source>Saving log file %x...</source>
-<target>Ukládání žurnálu %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Odstraňování starých žurnálů...</target>
<source>Stopped</source>
<target>Zastaveno</target>
@@ -613,8 +619,8 @@ Příkaz je spuštěn když:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync je aktuální.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Není možné se připojit k sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Není možné se připojit k 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>
@@ -700,9 +706,21 @@ Příkaz je spuštěn když:
<source>Start &comparison</source>
<target>ZaÄít &porovnání</target>
+<source>C&omparison settings</source>
+<target>Nastavení p&orovnání</target>
+
+<source>&Filter settings</source>
+<target>Nastavení &filtru</target>
+
+<source>S&ynchronization settings</source>
+<target>Nastavení s&ynchronizace</target>
+
<source>Start &synchronization</source>
<target>ZaÄít &synchronizaci</target>
+<source>&Actions</source>
+<target>&Akce</target>
+
<source>&Options</source>
<target>Nastavení &programu</target>
@@ -781,8 +799,8 @@ Příkaz je spuštěn když:
<source>Number of files and folders that will be deleted</source>
<target>PoÄet souborů a složek ke smazání</target>
-<source>Number of files that will be overwritten</source>
-<target>PoÄet souborů a adresářů k pÅ™epsání</target>
+<source>Number of files that will be updated</source>
+<target>PoÄet souborů k aktualizaci</target>
<source>Number of files and folders that will be created</source>
<target>PoÄet souborů a složek k vytvoÅ™ení</target>
@@ -811,8 +829,14 @@ Příkaz je spuštěn když:
<source>Handle daylight saving time</source>
<target>Používat letní Äas</target>
-<source>Symbolic links:</source>
-<target>Symbolické odkazy:</target>
+<source>Include symbolic links:</source>
+<target>Zahrnout symbolické odkazy:</target>
+
+<source>Direct</source>
+<target>Zachovat</target>
+
+<source>Follow</source>
+<target>Použít cíl</target>
<source>More information</source>
<target>Více informací</target>
@@ -841,23 +865,23 @@ Příkaz je spuštěn když:
<source>Maximum:</source>
<target>Do:</target>
-<source>C&lear</source>
-<target>Vy&mazat</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Nastavte pravidla filtru pro vynechání některých souborů ze synchronizace. Zadávejte cesty relativně k odpovídající složce.</target>
+<source>C&lear</source>
+<target>Vy&mazat</target>
+
<source>Detect moved files</source>
<target>Detekce přesunutých souborů</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- vyžaduje a vytváří soubor databáze
- je k dispozici po prvotní synchronizaci
+- vyžaduje a vytváří soubor databáze
- není dostupné na všech systémech
</target>
@@ -1068,27 +1092,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>Nastavení zobrazení</target>
-<source>Overview</source>
-<target>Přehled</target>
-
<source>Configuration</source>
<target>Konfigurace</target>
+<source>Overview</source>
+<target>Přehled</target>
+
<source>Main Bar</source>
<target>Hlavní lišta</target>
-<source>Start comparison</source>
-<target>ZaÄít porovnání</target>
-
-<source>Comparison settings</source>
-<target>Nastavení porovnání</target>
-
-<source>Synchronization settings</source>
-<target>Nastavení synchronizace</target>
-
-<source>Start synchronization</source>
-<target>Start synchronizace</target>
-
<source>Confirm</source>
<target>Potvrdit</target>
@@ -1243,11 +1255,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Zobrazit soubory, které budou vpravo smazány</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Zobrazit soubory, které budou vlevo přepsány</target>
+<source>Show files that will be updated on the left side</source>
+<target>Zobrazit soubory, které budou vlevo aktualizovány</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Zobrazit soubory, které budou vpravo přepsány</target>
+<source>Show files that will be updated on the right side</source>
+<target>Zobrazit soubory, které budou vpravo aktualizovány</target>
<source>Show files that won't be copied</source>
<target>Zobrazit soubory, které nebudou kopírovány</target>
@@ -1386,15 +1398,6 @@ 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>Exclude</source>
-<target>Vynechat</target>
-
-<source>Direct</source>
-<target>Zachovat</target>
-
-<source>Follow</source>
-<target>Použít cíl</target>
-
<source>Today</source>
<target>Dnes</target>
@@ -1458,9 +1461,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Nelze nastavit monitorování adresáře %x.</target>
-<source>Conversion error:</source>
-<target>Chyba konverze:</target>
-
<source>Cannot delete file %x.</source>
<target>Nelze smazat soubor %x.</target>
@@ -1494,8 +1494,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Nelze vytvořit adresář %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Nelze vytvořit zástupce %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Nelze kopírovat symbolický odkaz %x do %y.</target>
<source>Cannot find system function %x.</source>
<target>Nelze najít systémovou funkci %x.</target>
@@ -1581,3 +1581,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Konfigurace ze souboru %x byla naÄtena jen ÄásteÄnÄ›.</target>
+<source>Prepare installation</source>
+<target>Příprava instalace</target>
+
+<source>Choose which components you want to install.</source>
+<target>Vyberte komponenty k instalaci.</target>
+
+<source>Select installation type:</source>
+<target>Vyberte typ instalace:</target>
+
+<source>Local</source>
+<target>Lokální</target>
+
+<source>Portable</source>
+<target>Přenosná</target>
+
+<source>recommended</source>
+<target>doporuÄeno</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>uloží nastavení do složky "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>zaregistruje přípony souborů FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Vytviřit položky v kontextovém menu Průzkumníka</target>
+
+<source>Save settings in installation directory</source>
+<target>uloží nastavení do složky urÄené pro instalaci</target>
+
+<source>Do not write to Registry</source>
+<target>nemění ani nezapisuje do Registrů</target>
+
+<source>Just copy the files</source>
+<target>zkopíruje pouze soubory</target>
+
+<source>Choose a directory for installation:</source>
+<target>Vyberte složku pro instalaci:</target>
+
+<source>Create shortcuts:</source>
+<target>Vytvořit zástupce:</target>
+
+<source>Desktop</source>
+<target>Plocha</target>
+
+<source>Start menu</source>
+<target>Nabídka Start</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Zaregistrovat příponu souborů FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Odregistrovat příponu souborů FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Nastavení FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Dávka FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>SynchronizaÄní databáze FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Nastavení RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Upravit v FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/danish.lng b/FreeFileSync/Build/Languages/danish.lng
index 138a697b..1ac52b9a 100644
--- a/FreeFileSync/Build/Languages/danish.lng
+++ b/FreeFileSync/Build/Languages/danish.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Vilkårligt antal alternative mappepar til højst en indstillingsfil</target>
+<source>Open configuration for edit without executing.</source>
+<target>Ã…ben indstillingsfil for redigering</target>
+
<source>Cannot find the following folders:</source>
<target>Kan ikke finde følgende mapper:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>flyt filen til højre</target>
-<source>Overwrite left item</source>
-<target>Overskriv venstre emne</target>
+<source>Update left item</source>
+<target>Opdater venstre emne</target>
-<source>Overwrite right item</source>
-<target>Overskriv højre emne</target>
+<source>Update right item</source>
+<target>Opdater højre emne</target>
<source>Do nothing</source>
<target>Gør intet</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Kan ikke indlæse filen %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Databasefilen %x er inkompatibel.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Opretter filen %x</target>
+<source>Saving file %x...</source>
+<target>Gemmer filen %x...</target>
+
<source>Items processed:</source>
<target>Emner behandlet:</target>
@@ -295,9 +304,6 @@
<pluralform>%x tråde</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Opretter udvidet tidsinformation: %x</target>
-
<source>/sec</source>
<target>/sek</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Brug FreeFileSync 64-bit til at lave VSS kopier på dette system.</target>
-<source>Cannot load file %x.</source>
-<target>Kan ikke indlæse filen %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Kan ikke bestemme volumennavn for %x.</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>Gem &som...</target>
-<source>&Quit</source>
-<target>&Afslut</target>
+<source>E&xit</source>
+<target>L&uk</target>
<source>&File</source>
<target>&Fil</target>
@@ -368,7 +371,7 @@
<target>3. Klik 'Start'.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>Importer en .ffs_batchfil (Filer > Ã…ben...) for at komme igang.</target>
+<target>Importer en .ffs_batchfil (Fil > Ã…ben...) for at komme igang.</target>
<source>Folders to watch:</source>
<target>Jobbets mapper:</target>
@@ -435,6 +438,9 @@ Kommandoen udføres hvis:
<source>&Show error</source>
<target>Vi&s fejl</target>
+<source>&Quit</source>
+<target>&Afslut</target>
+
<source>Incorrect command line:</source>
<target>Ugyldig kommando:</target>
@@ -480,11 +486,11 @@ Kommandoen udføres hvis:
<source>Creating folder %x</source>
<target>Opretter mappen %x</target>
-<source>Overwriting file %x</source>
-<target>Overskriver filen %x</target>
+<source>Updating file %x</source>
+<target>Opdaterer filen %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Overskriver symlinket %x</target>
+<source>Updating symbolic link %x</source>
+<target>Opdaterer symbolsk link %x</target>
<source>Verifying file %x</source>
<target>Verificerer filen %x</target>
@@ -498,21 +504,21 @@ Kommandoen udføres hvis:
<source>Data verification error: %x and %y have different content.</source>
<target>Godkendelsesfejl: %x og %y har forskelligt indhold</target>
-<source>Cannot find folder %x.</source>
-<target>Kan ikke finde mappen %x</target>
-
<source>Target folder %x already existing.</source>
<target>Destinationsmappen %x findes allerede.</target>
+<source>Cannot find folder %x.</source>
+<target>Kan ikke finde mappen %x</target>
+
<source>Target folder input field must not be empty.</source>
<target>Destinationsmappen skal angives.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Angiv mappe til versionering.</target>
-
<source>Source folder %x not found.</source>
<target>Kildemappen %x blev ikke fundet.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Angiv mappe til versionering.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Følgende emner har uløste konflikter og synkroniseres ikke:</target>
@@ -555,8 +561,8 @@ Kommandoen udføres hvis:
<source>Synchronization completed successfully</source>
<target>Synkronisering gennemført</target>
-<source>Saving log file %x...</source>
-<target>Gemmer rapport %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Fjerner gamle logfiler...</target>
<source>Stopped</source>
<target>Afbrudt</target>
@@ -609,8 +615,8 @@ Kommandoen udføres hvis:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync er opdateret.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Kan ikke kontakte sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Kan ikke kontakte 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>
@@ -696,9 +702,21 @@ Kommandoen udføres hvis:
<source>Start &comparison</source>
<target>Start &analyse</target>
+<source>C&omparison settings</source>
+<target>A&nalyseindstillinger</target>
+
+<source>&Filter settings</source>
+<target>&Filterindstillinger</target>
+
+<source>S&ynchronization settings</source>
+<target>S&ynkroniseringsindstillinger</target>
+
<source>Start &synchronization</source>
<target>Start &synkronisering</target>
+<source>&Actions</source>
+<target>&Handlinger</target>
+
<source>&Options</source>
<target>&Indstillinger</target>
@@ -777,8 +795,8 @@ Kommandoen udføres hvis:
<source>Number of files and folders that will be deleted</source>
<target>Antal filer og mapper der slettes</target>
-<source>Number of files that will be overwritten</source>
-<target>Antal filer der overskrives</target>
+<source>Number of files that will be updated</source>
+<target>Antal filer der opdateres</target>
<source>Number of files and folders that will be created</source>
<target>Antal filer og mapper der oprettes</target>
@@ -807,8 +825,14 @@ Kommandoen udføres hvis:
<source>Handle daylight saving time</source>
<target>Tag hensyn til sommertid</target>
-<source>Symbolic links:</source>
-<target>Symbolske link:</target>
+<source>Include symbolic links:</source>
+<target>Medtag symlinks:</target>
+
+<source>Direct</source>
+<target>Direkte</target>
+
+<source>Follow</source>
+<target>Følg</target>
<source>More information</source>
<target>Mere information</target>
@@ -837,24 +861,24 @@ Kommandoen udføres hvis:
<source>Maximum:</source>
<target>Maksimum:</target>
-<source>C&lear</source>
-<target>R&yd</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Angiv filterregler til ekskludering af bestemte filer fra synkroniseringen. Filstier skal relatere til kildemapperne.</target>
+<source>C&lear</source>
+<target>R&yd</target>
+
<source>Detect moved files</source>
<target>Genkend flyttede filer</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
+- Overvågning akiv efter første synk
- Kræver og opretter databasefiler
-- Genkendelse aktiv efter første synk
-- Understøtter ikke alle filsystemer
+- Støttes ikke af alle filsystemer
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1064,27 +1088,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>Visninger</target>
-<source>Overview</source>
-<target>Oversigt</target>
-
<source>Configuration</source>
<target>Indstilling</target>
+<source>Overview</source>
+<target>Oversigt</target>
+
<source>Main Bar</source>
<target>Hovedlinie</target>
-<source>Start comparison</source>
-<target>Start analyse</target>
-
-<source>Comparison settings</source>
-<target>Analyseindstillinger</target>
-
-<source>Synchronization settings</source>
-<target>Synkroniseringsindstillinger</target>
-
-<source>Start synchronization</source>
-<target>Start synkronisering</target>
-
<source>Confirm</source>
<target>Bekræft</target>
@@ -1235,11 +1247,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Vis filer der slettes på højre side</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Vis filer der overskrives på venstre side</target>
+<source>Show files that will be updated on the left side</source>
+<target>Vis filer der opdateres på venstre side</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Vis filer der overskrives på højre side</target>
+<source>Show files that will be updated on the right side</source>
+<target>Vis filer der opdateres på højre side</target>
<source>Show files that won't be copied</source>
<target>Vis filer der ikke kopieres</target>
@@ -1376,15 +1388,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Opret dine egne synkroniseringsregler.</target>
-<source>Exclude</source>
-<target>Ekskludér</target>
-
-<source>Direct</source>
-<target>Direkte</target>
-
-<source>Follow</source>
-<target>Følg</target>
-
<source>Today</source>
<target>Idag</target>
@@ -1448,9 +1451,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Kan ikke overvåge mappen %x.</target>
-<source>Conversion error:</source>
-<target>Konverteringsfejl:</target>
-
<source>Cannot delete file %x.</source>
<target>Kan ikke slette filen %x.</target>
@@ -1484,8 +1484,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Kan ikke oprette mappen %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Kan ikke oprette symbolsk link %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Kan ikke kopiere symlink fra %x til %y.</target>
<source>Cannot find system function %x.</source>
<target>Kan ikke finde systemfunktionen %x.</target>
@@ -1568,3 +1568,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Indstillingsfilen %x er kun delvist indlæst.</target>
+<source>Prepare installation</source>
+<target>Forbereder installering</target>
+
+<source>Choose which components you want to install.</source>
+<target>Vælg hvordan FreeFileSync skal installeres.</target>
+
+<source>Select installation type:</source>
+<target>Vælg installeringstype:</target>
+
+<source>Local</source>
+<target>Standard</target>
+
+<source>Portable</source>
+<target>Portable</target>
+
+<source>recommended</source>
+<target>anbefales</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Gemmer indstillinger i "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registrerer FreeFileSync filtyper</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Føj til Stifinders højrekliksmenu</target>
+
+<source>Save settings in installation directory</source>
+<target>Gemmer indstillinger i programmets mappe</target>
+
+<source>Do not write to Registry</source>
+<target>Skriver ikke til registreringsdatabasen</target>
+
+<source>Just copy the files</source>
+<target>Udpakker filer til valgt mappe</target>
+
+<source>Choose a directory for installation:</source>
+<target>Vælg installeringsmappe:</target>
+
+<source>Create shortcuts:</source>
+<target>Opret genveje:</target>
+
+<source>Desktop</source>
+<target>PÃ¥ skrivebord</target>
+
+<source>Start menu</source>
+<target>I startmenu</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registrerer FreeFileSync filtyper</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Fjerner FreeFileSync filtyperegistrering</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync indstillinger</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync batchfil</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync synkroniseringsdatabase</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync indstillinger</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Rediger med FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/dutch.lng b/FreeFileSync/Build/Languages/dutch.lng
index d8192801..93753618 100644
--- a/FreeFileSync/Build/Languages/dutch.lng
+++ b/FreeFileSync/Build/Languages/dutch.lng
@@ -7,9 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>Open configuration for edit without executing.</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Beide zijden zijn gewijzigd sinds de laatste synchronisatie.</target>
@@ -89,7 +86,7 @@
<target>directory</target>
<source>Path to an alternate GlobalSettings.xml file.</source>
-<target>Bestandspad naar alternatieve GlobalSettings.xml.</target>
+<target>Bestandspad naar plaatsvervangend GlobalSettings.xml bestand.</target>
<source>Any number of FreeFileSync .ffs_gui and/or .ffs_batch configuration files.</source>
<target>Een willekeurig aantal FreeFileSync. ffs_gui en/of .ffs_batch configuratiebestanden.</target>
@@ -97,8 +94,11 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Een willekeurig aantal alternatieve directoryparen voor maximaal een configuratiebestand.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Open configuratie voor het bewerken zonder uit te voeren.</target>
+
<source>Cannot find the following folders:</source>
-<target>De volgende map kon niet worden gevonden:</target>
+<target>De volgende mappen kon 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>
@@ -149,16 +149,16 @@
<target>Onvoldoende werkgeheugen.</target>
<source>Item exists on left side only</source>
-<target>Item bestaat alleen aan de linkerkant</target>
+<target>Item bestaat alleen aan de linkerzijde</target>
<source>Item exists on right side only</source>
-<target>Item bestaat alleen aan de rechterkant</target>
+<target>Item bestaat alleen aan de rechterzijde</target>
<source>Left side is newer</source>
-<target>Linkerkant is nieuwer</target>
+<target>Linkerzijde is nieuwer</target>
<source>Right side is newer</source>
-<target>Rechterkant is nieuwer</target>
+<target>Rechterzijde is nieuwer</target>
<source>Items have different content</source>
<target>Items hebben verschillende inhoud</target>
@@ -187,11 +187,11 @@
<source>Move file on right</source>
<target>Verplaats rechter bestand</target>
-<source>Overwrite left item</source>
-<target>Overschrijf linker item</target>
+<source>Update left item</source>
+<target>Update linker item</target>
-<source>Overwrite right item</source>
-<target>Overschrijf rechter item</target>
+<source>Update right item</source>
+<target>Update rechter item</target>
<source>Do nothing</source>
<target>Niets doen</target>
@@ -248,7 +248,7 @@
<target>Zoek naar map %x...</target>
<source>Cannot read file attributes of %x.</source>
-<target>Kan de bestandskenmerken niet lezen van %x.</target>
+<target>Kan de bestandskenmerken van %x niet lezen.</target>
<source>Cannot get process information.</source>
<target>Kan geen procesinformatie krijgen.</target>
@@ -264,8 +264,8 @@
<pluralform>%x sec</pluralform>
</source>
<target>
-<pluralform>1 Sek.</pluralform>
-<pluralform>%x Sek.</pluralform>
+<pluralform>1 sec</pluralform>
+<pluralform>%x sec</pluralform>
</target>
<source>Detecting abandoned lock...</source>
@@ -274,6 +274,9 @@
<source>Creating file %x</source>
<target>Bestand %x maken</target>
+<source>Saving file %x...</source>
+<target>Opslaan van bestand %x...</target>
+
<source>Items processed:</source>
<target>Items verwerkt:</target>
@@ -301,9 +304,6 @@
<pluralform>%x Threads</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Codering van langere tijdinformatie: %x</target>
-
<source>/sec</source>
<target>/sec</target>
@@ -320,7 +320,7 @@
<target>Blader in directory</target>
<source>Cannot access the Volume Shadow Copy Service.</source>
-<target>Geen toegang tot het Volume Shadow Copy Service.</target>
+<target>Kan geen toegang krijgen tot de Volume Shadow Copy Service.</target>
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Gebruik FreeFileSync 64-bits versie voor het maken van schaduwkopieën op dit systeem.</target>
@@ -332,7 +332,7 @@
<target>Volumenaam %x behoort niet tot bestandspad %y.</target>
<source>Stop requested: Waiting for current operation to finish...</source>
-<target>Stop opgevraagd: wachten totdat de huidige bewerking is voltooit...</target>
+<target>Stoppen gevraagd: wachten totdat de huidige bewerking is voltooid...</target>
<source>Unable to create time stamp for versioning:</source>
<target>Kan geen tijdstempel maken voor versiebeheer:</target>
@@ -343,8 +343,8 @@
<source>Save &as...</source>
<target>Opslaan &als...</target>
-<source>&Quit</source>
-<target>&Stoppen</target>
+<source>E&xit</source>
+<target>A&fsluiten</target>
<source>&File</source>
<target>&Bestand</target>
@@ -438,6 +438,9 @@ De opdracht wordt geactiveerd als:
<source>&Show error</source>
<target>&Toon fout</target>
+<source>&Quit</source>
+<target>&Stoppen</target>
+
<source>Incorrect command line:</source>
<target>Onjuiste opdrachtregel:</target>
@@ -478,16 +481,16 @@ De opdracht wordt geactiveerd als:
<target>Verwijderen van oude versies...</target>
<source>Creating symbolic link %x</source>
-<target>Creëren symbolische link %x</target>
+<target>Symbolische link %x maken</target>
<source>Creating folder %x</source>
<target>Map %x maken</target>
-<source>Overwriting file %x</source>
-<target>Overschrijven bestand %x</target>
+<source>Updating file %x</source>
+<target>File %x bijwerken</target>
-<source>Overwriting symbolic link %x</source>
-<target>Symbolische link %x overschrijven</target>
+<source>Updating symbolic link %x</source>
+<target>Symbolische link %x bijwerken</target>
<source>Verifying file %x</source>
<target>Controleren van bestand %x</target>
@@ -558,8 +561,8 @@ De opdracht wordt geactiveerd als:
<source>Synchronization completed successfully</source>
<target>Synchronisatie succesvol voltooid</target>
-<source>Saving log file %x...</source>
-<target>Opslaan logbestand %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Opruimen oude logboekbestanden...</target>
<source>Stopped</source>
<target>Gestopt</target>
@@ -612,8 +615,8 @@ De opdracht wordt geactiveerd als:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync is actueel.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Kan geen verbinding maken met sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Kan geen verbinding maken met 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>
@@ -699,9 +702,21 @@ De opdracht wordt geactiveerd als:
<source>Start &comparison</source>
<target>Start &vergelijking</target>
+<source>C&omparison settings</source>
+<target>V&ergelijking instellingen</target>
+
+<source>&Filter settings</source>
+<target>&Filter instellingen</target>
+
+<source>S&ynchronization settings</source>
+<target>S&ynchronisatie instellingen</target>
+
<source>Start &synchronization</source>
<target>Start &synchronisatie</target>
+<source>&Actions</source>
+<target>&Acties</target>
+
<source>&Options</source>
<target>&Opties</target>
@@ -709,7 +724,7 @@ De opdracht wordt geactiveerd als:
<target>&Taal</target>
<source>&Find...</source>
-<target>&Vinden...</target>
+<target>&Zoeken...</target>
<source>&Reset layout</source>
<target>&Reset lay-out</target>
@@ -727,7 +742,7 @@ De opdracht wordt geactiveerd als:
<target>&Nu conroleren</target>
<source>Check &automatically once a week</source>
-<target>Controleer eens per week &automatisch</target>
+<target>Controleer een keer per week &automatisch</target>
<source>Cancel</source>
<target>Annuleren</target>
@@ -780,14 +795,14 @@ De opdracht wordt geactiveerd als:
<source>Number of files and folders that will be deleted</source>
<target>Aantal bestanden en mappen die worden verwijderd</target>
-<source>Number of files that will be overwritten</source>
-<target>Aantal bestanden die worden overschreven</target>
+<source>Number of files that will be updated</source>
+<target>Aantal bestanden die bijgewerkt zullen worden</target>
<source>Number of files and folders that will be created</source>
<target>Aantal bestanden en mappen die worden gemaakt</target>
<source>Total bytes to copy</source>
-<target>Totaal aantal te kopiëren bytes</target>
+<target>Totaal aantal te kopieëren bytes</target>
<source>Use local settings:</source>
<target>Gebruik lokale instellingen:</target>
@@ -810,8 +825,14 @@ De opdracht wordt geactiveerd als:
<source>Handle daylight saving time</source>
<target>Zomertijd gebruiken</target>
-<source>Symbolic links:</source>
-<target>Symbolische koppelingen:</target>
+<source>Include symbolic links:</source>
+<target>Omvat symbolische koppelingen</target>
+
+<source>Direct</source>
+<target>Direct</target>
+
+<source>Follow</source>
+<target>Volgen</target>
<source>More information</source>
<target>Meer informatie</target>
@@ -840,23 +861,23 @@ De opdracht wordt geactiveerd als:
<source>Maximum:</source>
<target>Maximum:</target>
-<source>C&lear</source>
-<target>&Wissen</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Selecteer filterregels om bepaalde bestanden uit te sluiten van synchronisatie. Voer bestandspaden in ten opzichte van hun bijbehorend map-paar.</target>
+<source>C&lear</source>
+<target>&Wissen</target>
+
<source>Detect moved files</source>
-<target>Verplaatste bestanden detecteren</target>
+<target>Detecteren van verplaatste bestanden</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Vereist en maakt database bestanden.
-- Detectie actief na intitiële syncronisatie
+- Detectie actief na eerste synchronisatie
+- Vereist en maakt databasebestanden
- Niet ondersteund door alle bestandssystemen
</target>
@@ -942,7 +963,7 @@ De opdracht wordt geactiveerd als:
<target>Stop</target>
<source>Create a batch file for unattended synchronization. To start, double-click this file or schedule in a task planner: %x</source>
-<target>Creërt een batch-bestand om zonder toezicht te synchroniseren. Dubbelklikt u op het bestand om te starten of maak een opdracht in de taakplanner: %x</target>
+<target>Maak een batch-bestand om zonder toezicht te synchroniseren. Om te starten, dubbelklik op het bestand of maak een opdracht in de taakplanner: %x</target>
<source>&Stop</source>
<target>&Stop</target>
@@ -969,14 +990,14 @@ De opdracht wordt geactiveerd als:
<target>De volgende instellingen worden gebruikt voor alle synchronisatie opdrachten.</target>
<source>Fail-safe file copy</source>
-<target>Fail-safe bestand kopiëren</target>
+<target>Fail-safe bestand kopieëren</target>
<source>
Copy to a temporary file (*.ffs_tmp) before overwriting target.
This guarantees a consistent state even in case of a serious error.
</source>
<target>
-Kopiëren naar een tijdelijk bestand (*.ffs_tmp) voordat het doel wordt overschreven.
+Kopieëren naar een tijdelijk bestand (*.ffs_tmp) voordat het doel wordt overschreven.
Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
</target>
@@ -984,16 +1005,16 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>(aanbevolen)</target>
<source>Copy locked files</source>
-<target>Vergrendelde bestanden kopiëren</target>
+<target>Vergrendelde bestanden kopieëren</target>
<source>Copy shared or locked files using the Volume Shadow Copy Service.</source>
-<target>Gedeelde of vergrendelde bestanden met behulp van de Volume Schaduw copy-Service kopiëren.</target>
+<target>Gedeelde of vergrendelde bestanden met behulp van de Volume Schaduw copy-Service kopieëren.</target>
<source>(requires administrator rights)</source>
<target>(vereist beheerdersrechten)</target>
<source>Copy file access permissions</source>
-<target>Toegangsmachtigingen om bestanden te kopiëren</target>
+<target>Toegangsmachtigingen om bestanden te kopieëren</target>
<source>Transfer file and folder permissions.</source>
<target>Overdracht van bestands- en mapmachtigingen.</target>
@@ -1070,27 +1091,15 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>View Settings</source>
<target>Instellingen bekijken</target>
-<source>Overview</source>
-<target>Overzicht</target>
-
<source>Configuration</source>
<target>Configuratie</target>
+<source>Overview</source>
+<target>Overzicht</target>
+
<source>Main Bar</source>
<target>Hoofd balk</target>
-<source>Start comparison</source>
-<target>Vergelijking starten</target>
-
-<source>Comparison settings</source>
-<target>Vergelijkings-instellingen</target>
-
-<source>Synchronization settings</source>
-<target>Synchronisatie-instellingen</target>
-
-<source>Start synchronization</source>
-<target>Synchronisatie starten</target>
-
<source>Confirm</source>
<target>Bevestigen</target>
@@ -1140,7 +1149,7 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>meervoudige selectie</target>
<source>Include via filter:</source>
-<target>Via filter bijvoegen:</target>
+<target>Opnemen via filter:</target>
<source>Exclude via filter:</source>
<target>Uitsluiten via filter:</target>
@@ -1209,10 +1218,10 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Filter wissen</target>
<source>Show files that exist on left side only</source>
-<target>Toon bestanden die bestaan alleen aan de linkerkant</target>
+<target>Toon bestanden die bestaan alleen aan de linkerzijde</target>
<source>Show files that exist on right side only</source>
-<target>Toon bestanden die bestaan alleen aan de rechterkant</target>
+<target>Toon bestanden die bestaan alleen aan de rechterzijde</target>
<source>Show files that are newer on left</source>
<target>Bestanden die nieuwer zijn aan de linkerzijde weergeven</target>
@@ -1230,22 +1239,22 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Conflicten weergeven</target>
<source>Show files that will be created on the left side</source>
-<target>Bestanden die gemaakt worden aan de linkerkant weergeven</target>
+<target>Bestanden die gemaakt worden aan de linkerzijde weergeven</target>
<source>Show files that will be created on the right side</source>
-<target>Bestanden die gemaakt worden aan de rechterkant weergeven</target>
+<target>Bestanden die gemaakt worden aan de rechterzijde weergeven</target>
<source>Show files that will be deleted on the left side</source>
-<target>Bestanden die worden verwijderd aan de linker kant weergeven</target>
+<target>Bestanden die worden verwijderd aan de linkerzijde weergeven</target>
<source>Show files that will be deleted on the right side</source>
-<target>Bestanden die worden verwijderd op de rechterkant weergeven</target>
+<target>Bestanden die worden verwijderd aan de rechterzijde weergeven</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Bestanden die overschreven worden aan de linkerzijde weergeven</target>
+<source>Show files that will be updated on the left side</source>
+<target>Toon bestanden die worden bijgewerkt aan de linkerzijde</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Bestanden die overschreven worden aan de rechterzijde weergeven</target>
+<source>Show files that will be updated on the right side</source>
+<target>Toon bestanden die worden bijgewerkt aan de rechterzijde</target>
<source>Show files that won't be copied</source>
<target>Bestanden weergeven die niet gekopieerd worden</target>
@@ -1272,7 +1281,7 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Bestandenlijst geëxporteerd</target>
<source>Searching for program updates...</source>
-<target>Programma-updates zoekt...</target>
+<target>Zoeken naar programma-updates...</target>
<source>Close progress dialog</source>
<target>Voortgang dialoogvenster sluiten</target>
@@ -1347,7 +1356,7 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Voorkeuren</target>
<source>Copy NTFS permissions</source>
-<target>Kopiëren van NTFS-machtigingen</target>
+<target>Kopieëren van NTFS-machtigingen</target>
<source>Integrate external applications into context menu. The following macros are available:</source>
<target>Externe applicaties integreren in het contextmenu. De volgende macro's zijn beschikbaar:</target>
@@ -1377,20 +1386,11 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<target>Maak een spiegel-backup van de linkermap, door de rechtermap aan te aanpassen.</target>
<source>Copy new and updated files to the right folder.</source>
-<target>Nieuwe en bijgewerkte bestanden naar de rechter map kopiëren.</target>
+<target>Nieuwe en bijgewerkte bestanden naar de rechter map kopieëren.</target>
<source>Configure your own synchronization rules.</source>
<target>Configureer uw eigen synchronisatie regels.</target>
-<source>Exclude</source>
-<target>Uitsluiten</target>
-
-<source>Direct</source>
-<target>Direct</target>
-
-<source>Follow</source>
-<target>Volgen</target>
-
<source>Today</source>
<target>Vandaag</target>
@@ -1454,9 +1454,6 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Cannot monitor directory %x.</source>
<target>Kan map %x niet bewaken.</target>
-<source>Conversion error:</source>
-<target>Conversie fout:</target>
-
<source>Cannot delete file %x.</source>
<target>Kan bestand %x niet verwijderen.</target>
@@ -1490,14 +1487,14 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Cannot create directory %x.</source>
<target>Kan de map %x niet maken.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Kan de symbolische koppeling %x niet maken.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Kan de symbolische koppeling %x niet kopiëren naar %y</target>
<source>Cannot find system function %x.</source>
<target>Kan de systeemfunctie %x niet vinden.</target>
<source>Cannot copy file %x to %y.</source>
-<target>Kan bestand %x niet kopieëren naar %y.</target>
+<target>Kan bestand %x niet kopieëren naar %y.</target>
<source>Type of item %x is not supported:</source>
<target>Dit itemtype %x wordt niet ondersteund:</target>
@@ -1574,3 +1571,72 @@ Dit garandeert een consistente status zelfs in het geval van een ernstige fout.
<source>Configuration file %x loaded partially only.</source>
<target>Configuratiebestand %x alleen gedeeltelijk ingelezen.</target>
+<source>Prepare installation</source>
+<target>Installatie voorbereiden</target>
+
+<source>Choose which components you want to install.</source>
+<target>Kies welke onderdelen u wilt installeren.</target>
+
+<source>Select installation type:</source>
+<target>Selecteer type installatie:</target>
+
+<source>Local</source>
+<target>Lokaal</target>
+
+<source>Portable</source>
+<target>Portable</target>
+
+<source>recommended</source>
+<target>aanbevolen</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Instellingen opslaan in "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registreer FreeFileSync bestands-extensies</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Maak Explorer contect menu-items</target>
+
+<source>Save settings in installation directory</source>
+<target>Sla instellingen op in de installatiemap</target>
+
+<source>Do not write to Registry</source>
+<target>Schrijf niet naar het register</target>
+
+<source>Just copy the files</source>
+<target>Kopieer de bestanden</target>
+
+<source>Choose a directory for installation:</source>
+<target>Kies een map voor de installatie:</target>
+
+<source>Create shortcuts:</source>
+<target>Maak snelkoppelingen:</target>
+
+<source>Desktop</source>
+<target>Bureaublad</target>
+
+<source>Start menu</source>
+<target>Startmenu</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registeren van de FreeFileSync bestands-extensies</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>De-installeren van de FreeFileSync bestands-extensies</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync configuratie</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync batch bestand</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync synchronisatie database</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync configuratie</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Bewerken met FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/english_uk.lng b/FreeFileSync/Build/Languages/english_uk.lng
index d80f6748..60e334e5 100644
--- a/FreeFileSync/Build/Languages/english_uk.lng
+++ b/FreeFileSync/Build/Languages/english_uk.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Any number of alternative directory pairs for at most one config file.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Open configuration for edit without executing.</target>
+
<source>Cannot find the following folders:</source>
<target>Cannot find the following folders:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Move file on right</target>
-<source>Overwrite left item</source>
-<target>Overwrite left item</target>
+<source>Update left item</source>
+<target>Update left item</target>
-<source>Overwrite right item</source>
-<target>Overwrite right item</target>
+<source>Update right item</source>
+<target>Update right item</target>
<source>Do nothing</source>
<target>Do nothing</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Cannot load file %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Database file %x is incompatible.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Creating file %x</target>
+<source>Saving file %x...</source>
+<target>Saving file %x...</target>
+
<source>Items processed:</source>
<target>Elements processed:</target>
@@ -295,9 +304,6 @@
<pluralform>%x threads</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Encoding extended time information: %x</target>
-
<source>/sec</source>
<target>/sec</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Please use FreeFileSync 64-bit version to create shadow copies on this system.</target>
-<source>Cannot load file %x.</source>
-<target>Cannot load file %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Cannot determine volume name for %x.</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>Save &as...</target>
-<source>&Quit</source>
-<target>&Quit</target>
+<source>E&xit</source>
+<target>E&xit</target>
<source>&File</source>
<target>&File</target>
@@ -435,6 +438,9 @@ The command is triggered if:
<source>&Show error</source>
<target>&Show error</target>
+<source>&Quit</source>
+<target>&Quit</target>
+
<source>Incorrect command line:</source>
<target>Incorrect command line:</target>
@@ -480,11 +486,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>Creating folder %x</target>
-<source>Overwriting file %x</source>
-<target>Overwriting file %x</target>
+<source>Updating file %x</source>
+<target>Updating file %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Overwriting symbolic link %x</target>
+<source>Updating symbolic link %x</source>
+<target>Updating symbolic link %x</target>
<source>Verifying file %x</source>
<target>Verifying file %x</target>
@@ -498,21 +504,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>Data verification error: %x and %y have different content.</target>
-<source>Cannot find folder %x.</source>
-<target>Cannot find folder %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Target folder %x already existing.</target>
+<source>Cannot find folder %x.</source>
+<target>Cannot find folder %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Target folder input field must not be empty.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Please enter a target folder for versioning.</target>
-
<source>Source folder %x not found.</source>
<target>Source folder %x not found.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Please enter a target folder for versioning.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>The following items have unresolved conflicts and will not be synchronised:</target>
@@ -555,8 +561,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>Synchronisation completed successfully</target>
-<source>Saving log file %x...</source>
-<target>Saving log file %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Cleaning up old log files...</target>
<source>Stopped</source>
<target>Stopped</target>
@@ -609,8 +615,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync is up to date.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Unable to connect to sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Unable to connect to FreeFileSync.org.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Cannot find current FreeFileSync version number online. Do you want to check manually?</target>
@@ -696,9 +702,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>Start &comparison</target>
+<source>C&omparison settings</source>
+<target>C&omparison settings</target>
+
+<source>&Filter settings</source>
+<target>&Filter settings</target>
+
+<source>S&ynchronization settings</source>
+<target>S&ynchronization settings</target>
+
<source>Start &synchronization</source>
<target>Start &synchronisation</target>
+<source>&Actions</source>
+<target>&Actions</target>
+
<source>&Options</source>
<target>&Options</target>
@@ -777,8 +795,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>Number of files and folders that will be deleted</target>
-<source>Number of files that will be overwritten</source>
-<target>Number of files that will be overwritten</target>
+<source>Number of files that will be updated</source>
+<target>Number of files that will be updated</target>
<source>Number of files and folders that will be created</source>
<target>Number of files and folders that will be created</target>
@@ -807,8 +825,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>Handle daylight saving time</target>
-<source>Symbolic links:</source>
-<target>Symbolic links:</target>
+<source>Include symbolic links:</source>
+<target>Include symbolic links:</target>
+
+<source>Direct</source>
+<target>Direct</target>
+
+<source>Follow</source>
+<target>Follow</target>
<source>More information</source>
<target>More information</target>
@@ -837,23 +861,23 @@ The command is triggered if:
<source>Maximum:</source>
<target>Maximum:</target>
-<source>C&lear</source>
-<target>C&lear</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Select filter rules to exclude certain files from synchronisation. Enter file paths relative to their corresponding folder pair.</target>
+<source>C&lear</source>
+<target>C&lear</target>
+
<source>Detect moved files</source>
<target>Detect moved files</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</target>
@@ -1067,27 +1091,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>View Settings</target>
-<source>Overview</source>
-<target>Overview</target>
-
<source>Configuration</source>
<target>Configuration</target>
+<source>Overview</source>
+<target>Overview</target>
+
<source>Main Bar</source>
<target>Main Bar</target>
-<source>Start comparison</source>
-<target>Start comparison</target>
-
-<source>Comparison settings</source>
-<target>Comparison settings</target>
-
-<source>Synchronization settings</source>
-<target>Synchronisation settings</target>
-
-<source>Start synchronization</source>
-<target>Start synchronisation</target>
-
<source>Confirm</source>
<target>Confirm</target>
@@ -1238,11 +1250,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Show files that will be deleted on the right side</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Show files that will be overwritten on left side</target>
+<source>Show files that will be updated on the left side</source>
+<target>Show files that will be updated on the left side</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Show files that will be overwritten on right side</target>
+<source>Show files that will be updated on the right side</source>
+<target>Show files that will be updated on the right side</target>
<source>Show files that won't be copied</source>
<target>Show files that won't be copied</target>
@@ -1379,15 +1391,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Configure your own synchronisation rules.</target>
-<source>Exclude</source>
-<target>Exclude</target>
-
-<source>Direct</source>
-<target>Direct</target>
-
-<source>Follow</source>
-<target>Follow</target>
-
<source>Today</source>
<target>Today</target>
@@ -1451,9 +1454,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Cannot monitor directory %x.</target>
-<source>Conversion error:</source>
-<target>Conversion error:</target>
-
<source>Cannot delete file %x.</source>
<target>Cannot delete file %x.</target>
@@ -1487,8 +1487,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Cannot create directory %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Cannot create symbolic link %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Cannot copy symbolic link %x to %y.</target>
<source>Cannot find system function %x.</source>
<target>Cannot find system function %x.</target>
@@ -1571,3 +1571,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Configuration file %x loaded partially only.</target>
+<source>Prepare installation</source>
+<target>Prepare installation</target>
+
+<source>Choose which components you want to install.</source>
+<target>Choose which components you want to install.</target>
+
+<source>Select installation type:</source>
+<target>Select installation type:</target>
+
+<source>Local</source>
+<target>Local</target>
+
+<source>Portable</source>
+<target>Portable</target>
+
+<source>recommended</source>
+<target>recommended</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Save settings to "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Register FreeFileSync file extensions</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Create Explorer context menu entries</target>
+
+<source>Save settings in installation directory</source>
+<target>Save settings in installation directory</target>
+
+<source>Do not write to Registry</source>
+<target>Do not write to Registry</target>
+
+<source>Just copy the files</source>
+<target>Just copy the files</target>
+
+<source>Choose a directory for installation:</source>
+<target>Choose a directory for installation:</target>
+
+<source>Create shortcuts:</source>
+<target>Create shortcuts:</target>
+
+<source>Desktop</source>
+<target>Desktop</target>
+
+<source>Start menu</source>
+<target>Start menu</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registering FreeFileSync file extensions</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Unregistering FreeFileSync file extensions</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync Configuration</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync Batch File</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync Synchronisation Database</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync Configuration</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Edit with FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/finnish.lng b/FreeFileSync/Build/Languages/finnish.lng
index b63a903d..e499c8c3 100644
--- a/FreeFileSync/Build/Languages/finnish.lng
+++ b/FreeFileSync/Build/Languages/finnish.lng
@@ -94,6 +94,9 @@
<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>
+<source>Open configuration for edit without executing.</source>
+<target>Avaa määrittely muutoksia varten, ei suoriteta.</target>
+
<source>Cannot find the following folders:</source>
<target>Seuraavia hakemistoja ei löydy:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Siirrä oikea tiedosto</target>
-<source>Overwrite left item</source>
-<target>Korvaa vasen kohde</target>
+<source>Update left item</source>
+<target>Päivitä vasen kohde</target>
-<source>Overwrite right item</source>
-<target>Korvaa oikea kohde</target>
+<source>Update right item</source>
+<target>Päivitä oikea kohde</target>
<source>Do nothing</source>
<target>Älä tee mitään</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x Gt</target>
+<source>Cannot load file %x.</source>
+<target>Tiedostoa %x ei voida ladata.</target>
+
<source>Database file %x is incompatible.</source>
<target>Tietokanta %x ei ole yhteensopiva.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Luodaan tiedosto %x</target>
+<source>Saving file %x...</source>
+<target>Tallennetaan tiedostoa %x...</target>
+
<source>Items processed:</source>
<target>Osioita käsitelty:</target>
@@ -295,9 +304,6 @@
<pluralform>%x säijettä</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Koodataan laajennettua aikatietoa: %x</target>
-
<source>/sec</source>
<target>/s</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Tilannevedoksia varten käytä tässä järjestelmässä FreeFileSync 64-bittistä versiota.</target>
-<source>Cannot load file %x.</source>
-<target>Tiedostoa %x ei voida ladata.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Levyn %x tunnistus ei onnistu.</target>
@@ -340,7 +343,7 @@
<source>Save &as...</source>
<target>Tallenna n&imellä...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>&Lopeta</target>
<source>&File</source>
@@ -435,6 +438,9 @@ Käsky suoritetaan jos:
<source>&Show error</source>
<target>&Näytä virhe</target>
+<source>&Quit</source>
+<target>&Lopeta</target>
+
<source>Incorrect command line:</source>
<target>Virheellinen komento:</target>
@@ -480,11 +486,11 @@ Käsky suoritetaan jos:
<source>Creating folder %x</source>
<target>Luodaan hakemisto %x</target>
-<source>Overwriting file %x</source>
-<target>Korvaa tiedosto %x</target>
+<source>Updating file %x</source>
+<target>Tiedostoa %x päivitetään</target>
-<source>Overwriting symbolic link %x</source>
-<target>Korvaa pikakuvake %x</target>
+<source>Updating symbolic link %x</source>
+<target>Pikakuvitetta %x päivitetään</target>
<source>Verifying file %x</source>
<target>Tarkistetaan tiedostoa %x</target>
@@ -498,21 +504,21 @@ Käsky suoritetaan jos:
<source>Data verification error: %x and %y have different content.</source>
<target>Tiedon tarkistusvirhe: %x:n ja %y:n sisältö ovat erilaiset.</target>
-<source>Cannot find folder %x.</source>
-<target>Hakemistoa %x ei löydy.</target>
-
<source>Target folder %x already existing.</source>
<target>Kohdehakemisto %x on jo olemassa.</target>
+<source>Cannot find folder %x.</source>
+<target>Hakemistoa %x ei löydy.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Kohde hakemiston kenttä on annettava.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Anna versioinnin kohdehakemisto.</target>
-
<source>Source folder %x not found.</source>
<target>Lähdehakemistoa %x ei löydy.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Anna versioinnin kohdehakemisto.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Näissä kohteissa on selvittämättömiä ristiriitoja, niitä ei täsmäytetä:</target>
@@ -555,8 +561,8 @@ Käsky suoritetaan jos:
<source>Synchronization completed successfully</source>
<target>Täsmäys päättyi onnistuneesti</target>
-<source>Saving log file %x...</source>
-<target>Tallennetaan lokitiedosto %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Siivotaan vanhat lokitiedostot..</target>
<source>Stopped</source>
<target>Keskeytys</target>
@@ -609,8 +615,8 @@ Käsky suoritetaan jos:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync on ajan tasalla.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Sourceforge.nettiin ei saada yhteyttä.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Ei yhteyttä 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>
@@ -696,9 +702,21 @@ Käsky suoritetaan jos:
<source>Start &comparison</source>
<target>Aloita &vertailu</target>
+<source>C&omparison settings</source>
+<target>&Vertailu asetukset</target>
+
+<source>&Filter settings</source>
+<target>&Suodattin asetukset</target>
+
+<source>S&ynchronization settings</source>
+<target>&Täsmäytyksen asetukset</target>
+
<source>Start &synchronization</source>
<target>Aloita &täsmäytys</target>
+<source>&Actions</source>
+<target>&Toinnot</target>
+
<source>&Options</source>
<target>&Asetukset</target>
@@ -777,8 +795,8 @@ Käsky suoritetaan jos:
<source>Number of files and folders that will be deleted</source>
<target>Poistettavien tiedostojen ja hakemistojen määrä</target>
-<source>Number of files that will be overwritten</source>
-<target>Korvattavien tiedostojen ja hakemistojen määrä</target>
+<source>Number of files that will be updated</source>
+<target>Päitettävien tiedostojen määrä</target>
<source>Number of files and folders that will be created</source>
<target>Luotavien tiedostojen ja hakemistojen määrä</target>
@@ -807,8 +825,14 @@ Käsky suoritetaan jos:
<source>Handle daylight saving time</source>
<target>Käsittele kesäaika</target>
-<source>Symbolic links:</source>
-<target>Pikakuvike:</target>
+<source>Include symbolic links:</source>
+<target>Sisällytä pikalinkit:</target>
+
+<source>Direct</source>
+<target>Suoraan</target>
+
+<source>Follow</source>
+<target>Seuraa</target>
<source>More information</source>
<target>Lisää tietoa</target>
@@ -837,23 +861,23 @@ Käsky suoritetaan jos:
<source>Maximum:</source>
<target>Enintään:</target>
-<source>C&lear</source>
-<target>&Nollaa</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Määrittele suodatussäännöt täsmäyksestä pois jätettäville tiedostoille. Anna hakemistopariin nähden suhteellinen osoite.</target>
+<source>C&lear</source>
+<target>&Nollaa</target>
+
<source>Detect moved files</source>
<target>Tunnista siirretyt tiedostot</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Vaatii ja luo tarvittavat tietokannat
- Tunnistus alkaa ensimmäisestä täsmäyksestä
+- Vaatii ja luo tarvittavat tietokannat
- Ei toimi kaikissa tiedostojärjestelmissä
</target>
@@ -1067,27 +1091,15 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>View Settings</source>
<target>Näytä asetukset</target>
-<source>Overview</source>
-<target>Yleiskatsaus</target>
-
<source>Configuration</source>
<target>Asetukset</target>
+<source>Overview</source>
+<target>Yleiskatsaus</target>
+
<source>Main Bar</source>
<target>Pääpalkki</target>
-<source>Start comparison</source>
-<target>Aloita vertailu</target>
-
-<source>Comparison settings</source>
-<target>Vertailun asetukset</target>
-
-<source>Synchronization settings</source>
-<target>Täsmäyksen asetukset</target>
-
-<source>Start synchronization</source>
-<target>Käynnistä täsmäys</target>
-
<source>Confirm</source>
<target>Vahvista</target>
@@ -1238,11 +1250,11 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Show files that will be deleted on the right side</source>
<target>Näytä oikealta poistettavat tiedostot</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Näytä vasemmalla korvattavat tiedostot</target>
+<source>Show files that will be updated on the left side</source>
+<target>Näytä ne tiedostot vasemmalla joita päivitetään</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Näytä oikealla korvattavat tiedostot</target>
+<source>Show files that will be updated on the right side</source>
+<target>Näytä ne tiedostot oikealla joita päivitetään</target>
<source>Show files that won't be copied</source>
<target>Näytä kopioimatta jäävät tiedostot</target>
@@ -1379,15 +1391,6 @@ 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>Exclude</source>
-<target>Sulje pois</target>
-
-<source>Direct</source>
-<target>Suoraan</target>
-
-<source>Follow</source>
-<target>Seuraa</target>
-
<source>Today</source>
<target>Tänään</target>
@@ -1451,9 +1454,6 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Cannot monitor directory %x.</source>
<target>Hakemistoa %x ei voida tarkkaila.</target>
-<source>Conversion error:</source>
-<target>Muunnosvirhe:</target>
-
<source>Cannot delete file %x.</source>
<target>Ei voi poistaa tiedostoa %x.</target>
@@ -1487,8 +1487,8 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Cannot create directory %x.</source>
<target>Hakemistoa %x ei voitu luoda.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Pikakuvikkeen luonti epäonnistui %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Pikakuvike %x - %y kopiointi epäonnistui.</target>
<source>Cannot find system function %x.</source>
<target>Järjestelmäfunktiota %x ei löydy.</target>
@@ -1571,3 +1571,72 @@ Tällä varmistetaan eheys, vaikka vakava virhe tapahtuisi.
<source>Configuration file %x loaded partially only.</source>
<target>Kokoonpanotiedosto %x ladattu vain osittain.</target>
+<source>Prepare installation</source>
+<target>Alusta asennus</target>
+
+<source>Choose which components you want to install.</source>
+<target>Valitse asennettavat osiot</target>
+
+<source>Select installation type:</source>
+<target>Valitse asennustapa:</target>
+
+<source>Local</source>
+<target>Paikallinen</target>
+
+<source>Portable</source>
+<target>Siirrettävä</target>
+
+<source>recommended</source>
+<target>suositus</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Tallenna asetukset "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Rekisterö FreeFileSync tiedostoliitteet</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Luo merkinnät Explorer-apuvalikoon</target>
+
+<source>Save settings in installation directory</source>
+<target>Tallenna asetukset asennus hakemistoon</target>
+
+<source>Do not write to Registry</source>
+<target>Älä kirjoita rekisteritietoja</target>
+
+<source>Just copy the files</source>
+<target>Kopio vain tiedostot</target>
+
+<source>Choose a directory for installation:</source>
+<target>Valitse asennushakemisto:</target>
+
+<source>Create shortcuts:</source>
+<target>Luodaan pikavalinnat:</target>
+
+<source>Desktop</source>
+<target>Työpöydälle</target>
+
+<source>Start menu</source>
+<target>Käynnistä-valikkoon</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Liitään FreeFileSync tiedostoliitteet</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Poistetaan liitos, FreeFileSync tiedostoliite</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync määrittelyt</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync eräajo</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync täsmäytyksen tietokanta</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync määrittelyt</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Muokkaa FreeFileSync:llä</target>
+
diff --git a/FreeFileSync/Build/Languages/french.lng b/FreeFileSync/Build/Languages/french.lng
index 55d7fcdd..46e6adb7 100644
--- a/FreeFileSync/Build/Languages/french.lng
+++ b/FreeFileSync/Build/Languages/french.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>N'importe quel nombre de paires de répertoires distincts pour au plus un fichier de configuration</target>
+<source>Open configuration for edit without executing.</source>
+<target>Ouvrir la configuration pour la modifier sans l'exécuter</target>
+
<source>Cannot find the following folders:</source>
<target>Impossible de trouver les dossiers suivants :</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Déplacer les fichiers à droite</target>
-<source>Overwrite left item</source>
-<target>Remplacement de l'élément de gauche</target>
+<source>Update left item</source>
+<target>Mettre à jour l'élément de gauche</target>
-<source>Overwrite right item</source>
-<target>Remplacement de l'élément de droite</target>
+<source>Update right item</source>
+<target>Mettre à jour l'élément de droite</target>
<source>Do nothing</source>
<target>Ne rien faire</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x Go</target>
+<source>Cannot load file %x.</source>
+<target>Impossible de charger le fichier %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>La base de données %x n'est pas compatible.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Création du fichier %x</target>
+<source>Saving file %x...</source>
+<target>Enregistrement du fichier %x...</target>
+
<source>Items processed:</source>
<target>Élements traités :</target>
@@ -295,9 +304,6 @@
<pluralform>%x tâches</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Codage de l'heure au format étendu : %x</target>
-
<source>/sec</source>
<target>/sec</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Utilisez la version FreeFileSync 64-bit pour créer des "shadow copies" sur ce système.</target>
-<source>Cannot load file %x.</source>
-<target>Impossible de charger le fichier %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Impossible de déterminer le nom du volume de %x.</target>
@@ -340,7 +343,7 @@
<source>Save &as...</source>
<target>S&auvegarder sous...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>&Quitter</target>
<source>&File</source>
@@ -435,6 +438,9 @@ La commande est déclenchée si :
<source>&Show error</source>
<target>&Afficher l'erreur</target>
+<source>&Quit</source>
+<target>&Quitter</target>
+
<source>Incorrect command line:</source>
<target>Ligne de commande incorrecte :</target>
@@ -480,11 +486,11 @@ La commande est déclenchée si :
<source>Creating folder %x</source>
<target>Création du dossier %x</target>
-<source>Overwriting file %x</source>
-<target>Remplacement du fichier %x</target>
+<source>Updating file %x</source>
+<target>Mise à jour du fichier %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Remplacement du lien symbolique %x</target>
+<source>Updating symbolic link %x</source>
+<target>Mise à jour du lien symbolique %x</target>
<source>Verifying file %x</source>
<target>Contrôle du fichier %x</target>
@@ -498,21 +504,21 @@ La commande est déclenchée si :
<source>Data verification error: %x and %y have different content.</source>
<target>Erreur lors de la vérification des données : %x et %y ont des contenus différents.</target>
-<source>Cannot find folder %x.</source>
-<target>Dossier %x introuvable.</target>
-
<source>Target folder %x already existing.</source>
<target>Le dossier destination %x existe déjà.</target>
+<source>Cannot find folder %x.</source>
+<target>Dossier %x introuvable.</target>
+
<source>Target folder input field must not be empty.</source>
<target>L'entrée dossier de destination ne doit pas être vide.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Veuillez entrer le dossier destinataire pour la gestion des versions.</target>
-
<source>Source folder %x not found.</source>
<target>Dossier source %x non trouvé.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Veuillez entrer le dossier destinataire pour la gestion des versions.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Les éléments suivants sont en conflit non résolu et ne seront pas synchronisés :</target>
@@ -555,8 +561,8 @@ La commande est déclenchée si :
<source>Synchronization completed successfully</source>
<target>Synchronisation terminée sans erreurs</target>
-<source>Saving log file %x...</source>
-<target>Enregistrement du fichier log %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Nettoyage des anciens fichiers log ...</target>
<source>Stopped</source>
<target>Arrêté</target>
@@ -609,8 +615,8 @@ La commande est déclenchée si :
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync est à jour.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Impossible de se connecter à sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Impossible de se connecter à 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>
@@ -696,9 +702,21 @@ La commande est déclenchée si :
<source>Start &comparison</source>
<target>Démarrer la &comparaison</target>
+<source>C&omparison settings</source>
+<target>Paramètres de C&omparaison</target>
+
+<source>&Filter settings</source>
+<target>Paramètres de &Filtrage</target>
+
+<source>S&ynchronization settings</source>
+<target>Paramètres de S&ynchronisation</target>
+
<source>Start &synchronization</source>
<target>Démarrer la &synchronisation</target>
+<source>&Actions</source>
+<target>&Actions</target>
+
<source>&Options</source>
<target>&Options</target>
@@ -763,7 +781,7 @@ La commande est déclenchée si :
<target>Sauvegarder</target>
<source>Save as...</source>
-<target>Enregistrer en tant que...</target>
+<target>Sauvegarder sous...</target>
<source>View type:</source>
<target>Type de vue :</target>
@@ -777,8 +795,8 @@ La commande est déclenchée si :
<source>Number of files and folders that will be deleted</source>
<target>Nombre de fichiers et de dossiers qui seront supprimés</target>
-<source>Number of files that will be overwritten</source>
-<target>Nombre de fichiers qui seront remplacés</target>
+<source>Number of files that will be updated</source>
+<target>Nombre de fichiers à mettre à jour</target>
<source>Number of files and folders that will be created</source>
<target>Nombre de fichiers et de dossiers qui seront créés</target>
@@ -807,8 +825,14 @@ La commande est déclenchée si :
<source>Handle daylight saving time</source>
<target>Gérer l'heure d'été</target>
-<source>Symbolic links:</source>
-<target>Liens symboliques</target>
+<source>Include symbolic links:</source>
+<target>Inclure les liens symboliques :</target>
+
+<source>Direct</source>
+<target>Direct</target>
+
+<source>Follow</source>
+<target>Suivre</target>
<source>More information</source>
<target>Plus d'informations</target>
@@ -837,24 +861,24 @@ La commande est déclenchée si :
<source>Maximum:</source>
<target>Maximum :</target>
-<source>C&lear</source>
-<target>&Effacer</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Sélectionnez les règles de filtrage pour exclure certains fichiers de la synchronisation. Entrez les chemins des fichiers par rapport à leur paire de dossiers.</target>
+<source>C&lear</source>
+<target>&Effacer</target>
+
<source>Detect moved files</source>
<target>Détection des fichiers déplacés</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Nécessite et crée les fichiers de la base de données
- Détection active après la synchronisation initiale
-- Non supporté par tout les fichiers système
+- Nécessite et crée les fichiers de la base de données
+- Non supporté par tous les systèmes de fichiers
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1067,27 +1091,15 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>View Settings</source>
<target>Configuration de la vue</target>
-<source>Overview</source>
-<target>Aperçu</target>
-
<source>Configuration</source>
<target>Configuration</target>
+<source>Overview</source>
+<target>Aperçu</target>
+
<source>Main Bar</source>
<target>Barre Principale</target>
-<source>Start comparison</source>
-<target>Démarrer la comparaison</target>
-
-<source>Comparison settings</source>
-<target>Paramètres de comparaison</target>
-
-<source>Synchronization settings</source>
-<target>Paramétrage de la synchronisation</target>
-
-<source>Start synchronization</source>
-<target>Démarrer la synchronisation</target>
-
<source>Confirm</source>
<target>Confirmer</target>
@@ -1238,11 +1250,11 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Show files that will be deleted on the right side</source>
<target>Afficher les fichiers qui seront supprimés à droite</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Afficher les fichiers qui seront écrasés à gauche</target>
+<source>Show files that will be updated on the left side</source>
+<target>Affiche les fichiers à mettre à jour côté gauche</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Afficher les fichiers qui seront écrasés à droite</target>
+<source>Show files that will be updated on the right side</source>
+<target>Affiche les fichiers à mettre à jour côté droit</target>
<source>Show files that won't be copied</source>
<target>Afficher les fichiers qui ne seront pas copiés</target>
@@ -1379,15 +1391,6 @@ 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>Exclude</source>
-<target>Exclure</target>
-
-<source>Direct</source>
-<target>Direct</target>
-
-<source>Follow</source>
-<target>Suivre</target>
-
<source>Today</source>
<target>Aujourd'hui</target>
@@ -1451,9 +1454,6 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Cannot monitor directory %x.</source>
<target>Impossible de gérer le répertoire %x.</target>
-<source>Conversion error:</source>
-<target>Erreur de conversion :</target>
-
<source>Cannot delete file %x.</source>
<target>Impossible de supprimer le fichier %x.</target>
@@ -1487,8 +1487,8 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Cannot create directory %x.</source>
<target>Impossible de créer le répertoire %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Impossible de créer le lien symbolique %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Impossible de copier le lien symbolique %x vers %y.</target>
<source>Cannot find system function %x.</source>
<target>Impossible de trouver la fonction système %x.</target>
@@ -1571,3 +1571,72 @@ Cela garantit la cohérence du système de fichiers en cas d'erreur grave.
<source>Configuration file %x loaded partially only.</source>
<target>Le fichier de configuration %x a été chargé seulement partiellement.</target>
+<source>Prepare installation</source>
+<target>Préparation de l'installation</target>
+
+<source>Choose which components you want to install.</source>
+<target>Sélectionnez les composants que vous voulez installer.</target>
+
+<source>Select installation type:</source>
+<target>Choisir le type d'installation :</target>
+
+<source>Local</source>
+<target>Locale</target>
+
+<source>Portable</source>
+<target>Portable</target>
+
+<source>recommended</source>
+<target>recommandée</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Enregistrer la configuration dans "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Enregistrer les extensions de fichier</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Créer les entrées du menu contextuel de l'Explorateur</target>
+
+<source>Save settings in installation directory</source>
+<target>Sauvegarder la configuration dans le répertoire d'installation</target>
+
+<source>Do not write to Registry</source>
+<target>Ne pas modifier la base des registres</target>
+
+<source>Just copy the files</source>
+<target>Copier seulement les fichiers</target>
+
+<source>Choose a directory for installation:</source>
+<target>Choisir le répertoire d'installation :</target>
+
+<source>Create shortcuts:</source>
+<target>Création de raccourcis sur :</target>
+
+<source>Desktop</source>
+<target>le Bureau</target>
+
+<source>Start menu</source>
+<target>le menu Démarrer</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Enregistrement des extensions de fichier</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Suppression des extensions de fichier</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Configuration de FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Fichiers batch de FreeFileSync</target>
+
+<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>Edit with FreeFileSync</source>
+<target>Modification avec FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/german.lng b/FreeFileSync/Build/Languages/german.lng
index 55c249eb..ac9e37ed 100644
--- a/FreeFileSync/Build/Languages/german.lng
+++ b/FreeFileSync/Build/Languages/german.lng
@@ -7,15 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>Cannot copy symbolic link %x to %y.</source>
-<target>Der Symbolische Link %x kann nicht nach %y kopiert werden.</target>
-
-<source>Unable to connect to freefilesync.org.</source>
-<target>Es kann keine Verbindung zu freefilesync.org aufgebaut werden.</target>
-
-<source>Open configuration for edit without executing.</source>
-<target>Konfiguration zum Editieren öffnen ohne auszuführen.</target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Beide Seiten wurden seit der letzten Synchronisation verändert.</target>
@@ -41,7 +32,7 @@
<target>Verschiebe Ordner %x in den Papierkorb</target>
<source>Moving symbolic link %x to the recycle bin</source>
-<target>Verschiebe Symbolischen Link %x in den Papierkorb</target>
+<target>Verschiebe symbolische Verknüpfung %x in den Papierkorb</target>
<source>Deleting file %x</source>
<target>Lösche Datei %x</target>
@@ -50,7 +41,7 @@
<target>Lösche Ordner %x</target>
<source>Deleting symbolic link %x</source>
-<target>Lösche Symbolischen Link %x</target>
+<target>Lösche symbolische Verknüpfung %x</target>
<source>The recycle bin is not available for the following folders. Files will be deleted permanently instead:</source>
<target>Der Papierkorb ist für die folgenden Ordner nicht verfügbar. Dateien werden stattdessen permanent gelöscht:</target>
@@ -103,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Beliebige Anzahl von alternativen Verzeichnispaaren für maximal eine Konfigurationsdatei.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Konfiguration zum Editieren öffnen ohne auszuführen.</target>
+
<source>Cannot find the following folders:</source>
<target>Die folgenden Ordner wurden nicht gefunden:</target>
@@ -137,7 +131,7 @@
<target>Die Elemente unterscheiden sich nur in Attributen</target>
<source>Resolving symbolic link %x</source>
-<target>Folge dem Symbolischen Link %x</target>
+<target>Folge der symbolischen Verknüpfung %x</target>
<source>Comparing content of files %x</source>
<target>Vergleiche Inhalt der Dateien %x</target>
@@ -193,11 +187,11 @@
<source>Move file on right</source>
<target>Verschiebe rechte Datei</target>
-<source>Overwrite left item</source>
-<target>Ãœberschreibe linkes Element</target>
+<source>Update left item</source>
+<target>Aktualisiere linkes Element</target>
-<source>Overwrite right item</source>
-<target>Ãœberschreibe rechtes Element</target>
+<source>Update right item</source>
+<target>Aktualisiere rechtes Element</target>
<source>Do nothing</source>
<target>Nichts tun</target>
@@ -280,8 +274,8 @@
<source>Creating file %x</source>
<target>Erstelle Datei %x</target>
-<source>Saving log file %x...</source>
-<target>Speichere Protokolldatei %x...</target>
+<source>Saving file %x...</source>
+<target>Speichere Datei %x...</target>
<source>Items processed:</source>
<target>Verarbeitete Elemente:</target>
@@ -349,7 +343,7 @@
<source>Save &as...</source>
<target>Speichern &unter...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>&Beenden</target>
<source>&File</source>
@@ -444,6 +438,9 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>&Show error</source>
<target>&Zeige Fehler</target>
+<source>&Quit</source>
+<target>&Beenden</target>
+
<source>Incorrect command line:</source>
<target>Ungültige Befehlszeile:</target>
@@ -478,22 +475,22 @@ Die Befehlszeile wird ausgelöst, wenn:
<target>Verschiebe Ordner %x nach %y</target>
<source>Moving symbolic link %x to %y</source>
-<target>Verschiebe Symbolischen Link %x nach %y</target>
+<target>Verschiebe symbolische Verknüpfung %x nach %y</target>
<source>Removing old versions...</source>
<target>Entferne alte Versionen...</target>
<source>Creating symbolic link %x</source>
-<target>Erstelle Symbolischen Link %x</target>
+<target>Erstelle symbolischen Verknüpfung %x</target>
<source>Creating folder %x</source>
<target>Erstelle Ordner %x</target>
-<source>Overwriting file %x</source>
-<target>Ãœberschreibe Datei %x</target>
+<source>Updating file %x</source>
+<target>Aktualisiere Datei %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Ãœberschreibe Symbolischen Link %x</target>
+<source>Updating symbolic link %x</source>
+<target>Aktualisiere symbolischen Verknüpfung %x</target>
<source>Verifying file %x</source>
<target>Verifiziere Datei %x</target>
@@ -564,6 +561,9 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>Synchronization completed successfully</source>
<target>Synchronisation erfolgreich abgeschlossen</target>
+<source>Cleaning up old log files...</source>
+<target>Bereinige alte Protokolldateien...</target>
+
<source>Stopped</source>
<target>Unterbrochen</target>
@@ -615,6 +615,9 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync ist auf dem neuesten Stand.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Es kann keine Verbindung zu FreeFileSync.org aufgebaut werden.</target>
+
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Die aktuelle FreeFileSync Versionsnummer wurde online nicht gefunden. Möchten Sie manuell prüfen?</target>
@@ -699,9 +702,21 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>Start &comparison</source>
<target>&Vergleich starten</target>
+<source>C&omparison settings</source>
+<target>V&ergleichseinstellungen</target>
+
+<source>&Filter settings</source>
+<target>&Filtereinstellungen</target>
+
+<source>S&ynchronization settings</source>
+<target>S&ynchronisationseinstellungen</target>
+
<source>Start &synchronization</source>
<target>&Synchronisation starten</target>
+<source>&Actions</source>
+<target>&Aktionen</target>
+
<source>&Options</source>
<target>&Optionen</target>
@@ -780,8 +795,8 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>Number of files and folders that will be deleted</source>
<target>Anzahl der zu löschenden Dateien und Ordner</target>
-<source>Number of files that will be overwritten</source>
-<target>Anzahl der zu überschreibenden Dateien</target>
+<source>Number of files that will be updated</source>
+<target>Anzahl der zu aktualisierenden Dateien</target>
<source>Number of files and folders that will be created</source>
<target>Anzahl der zu erstellenden Dateien und Ordner</target>
@@ -810,8 +825,14 @@ Die Befehlszeile wird ausgelöst, wenn:
<source>Handle daylight saving time</source>
<target>Sommerzeit berücksichtigen</target>
-<source>Symbolic links:</source>
-<target>Symbolische Links:</target>
+<source>Include symbolic links:</source>
+<target>Symbolische Verknüpfungen einschließen:</target>
+
+<source>Direct</source>
+<target>Direkt</target>
+
+<source>Follow</source>
+<target>Folgen</target>
<source>More information</source>
<target>Mehr Information</target>
@@ -1059,7 +1080,7 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<target>Zeitspanne auswählen</target>
<source>&Preferences...</source>
-<target>&Einstellungen</target>
+<target>&Einstellungen...</target>
<source>Folder Pairs</source>
<target>Ordnerpaare</target>
@@ -1079,18 +1100,6 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>Main Bar</source>
<target>Hauptleiste</target>
-<source>Start comparison</source>
-<target>Vergleich starten</target>
-
-<source>Comparison settings</source>
-<target>Vergleichseinstellungen</target>
-
-<source>Synchronization settings</source>
-<target>Synchronisationseinstellungen</target>
-
-<source>Start synchronization</source>
-<target>Synchronisation starten</target>
-
<source>Confirm</source>
<target>Bestätigen</target>
@@ -1230,25 +1239,25 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<target>Konflikte zeigen</target>
<source>Show files that will be created on the left side</source>
-<target>Dateien die links erstellt werden anzeigen</target>
+<target>Dateien zeigen, die links erstellt werden</target>
<source>Show files that will be created on the right side</source>
-<target>Dateien die rechts erstellt werden anzeigen</target>
+<target>Dateien zeigen, die rechts erstellt werden</target>
<source>Show files that will be deleted on the left side</source>
-<target>Dateien die links gelöscht werden anzeigen</target>
+<target>Dateien zeigen, die links gelöscht werden</target>
<source>Show files that will be deleted on the right side</source>
-<target>Dateien die rechts gelöscht werden anzeigen</target>
+<target>Dateien zeigen, die rechts gelöscht werden</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Dateien die links überschrieben werden anzeigen</target>
+<source>Show files that will be updated on the left side</source>
+<target>Dateien zeigen, die links aktualisiert werden</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Dateien die rechts überschrieben werden anzeigen</target>
+<source>Show files that will be updated on the right side</source>
+<target>Dateien zeigen, die rechts aktualisiert werden</target>
<source>Show files that won't be copied</source>
-<target>Dateien die nicht kopiert werden anzeigen</target>
+<target>Dateien zeigen, die nicht kopiert werden</target>
<source>Show filtered or temporarily excluded files</source>
<target>Gefilterte oder temporär ausgeschlossene Dateien zeigen</target>
@@ -1382,15 +1391,6 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>Configure your own synchronization rules.</source>
<target>Eigene Synchronisationsregeln definieren.</target>
-<source>Exclude</source>
-<target>Ausschließen</target>
-
-<source>Direct</source>
-<target>Direkt</target>
-
-<source>Follow</source>
-<target>Folgen</target>
-
<source>Today</source>
<target>Heute</target>
@@ -1487,6 +1487,9 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>Cannot create directory %x.</source>
<target>Das Verzeichnis %x kann nicht erstellt werden.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Die symbolische Verknüpfung %x kann nicht nach %y kopiert werden.</target>
+
<source>Cannot find system function %x.</source>
<target>Die Systemfunktion %x wurde nicht gefunden.</target>
@@ -1497,7 +1500,7 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<target>Der Typ des Elements %x wird nicht unterstützt:</target>
<source>Cannot resolve symbolic link %x.</source>
-<target>Der Symbolische Link %x kann nicht aufgelöst werden.</target>
+<target>Die symbolische Verknüpfung %x kann nicht aufgelöst werden.</target>
<source>Cannot open directory %x.</source>
<target>Das Verzeichnis %x kann nicht geöffnet werden.</target>
@@ -1568,3 +1571,72 @@ Dadurch wird ein konsistenter Datenstand auch im schweren Fehlerfall garantiert.
<source>Configuration file %x loaded partially only.</source>
<target>Die Konfigurationsdatei %x wurde nur teilweise geladen.</target>
+<source>Prepare installation</source>
+<target>Installation vorbereiten</target>
+
+<source>Choose which components you want to install.</source>
+<target>Wählen Sie die zu installierenden Komponenten.</target>
+
+<source>Select installation type:</source>
+<target>Installationstyp wählen:</target>
+
+<source>Local</source>
+<target>Lokal</target>
+
+<source>Portable</source>
+<target>Portabel</target>
+
+<source>recommended</source>
+<target>empfohlen</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Einstellungen unter "%APPDATA%\FreeFileSync" sichern</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>FreeFileSync Dateiendungen registrieren</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Einträge im Explorer Kontextmenü erstellen</target>
+
+<source>Save settings in installation directory</source>
+<target>Einstellungen im Installationsverzeichnis sichern</target>
+
+<source>Do not write to Registry</source>
+<target>Kein Eintrag in Windows Registrierung</target>
+
+<source>Just copy the files</source>
+<target>Nur die Dateien kopieren</target>
+
+<source>Choose a directory for installation:</source>
+<target>Wählen Sie ein Verzeichnis für die Installation:</target>
+
+<source>Create shortcuts:</source>
+<target>Verknüpfungen erstellen:</target>
+
+<source>Desktop</source>
+<target>Desktop</target>
+
+<source>Start menu</source>
+<target>Startmenü</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registriere FreeFileSync Dateiendungen</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Deregistriere FreeFileSync Dateiendungen</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync Konfiguration</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync Batchdatei</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync Synchronisationsdatenbank</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 1cf3b13c..6fb8ba84 100644
--- a/FreeFileSync/Build/Languages/greek.lng
+++ b/FreeFileSync/Build/Languages/greek.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Οποιοσδήποτε αÏιθμός από εναλλακτικά ζεÏγη υποκαταλόγων για το Ï€Î¿Î»Ï Î­Î½Î± αÏχείο Ïυθμίσεων.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Άνοιγμα των Ïυθμίσεων Ï€Ïος επεξεÏγασία χωÏίς εκτέλεση.</target>
+
<source>Cannot find the following folders:</source>
<target>Οι ακόλουθοι υποκατάλογοι δεν ήταν δυνατό να βÏεθοÏν:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>ΜεταφοÏά του αÏχείου που βÏίσκεται δεξιά</target>
-<source>Overwrite left item</source>
-<target>Αντικατάσταση του στοιχείου που βÏίσκεται στα αÏιστεÏά</target>
+<source>Update left item</source>
+<target>ΕνημέÏωση του στοιχείου που βÏίσκεται αÏιστεÏά</target>
-<source>Overwrite right item</source>
-<target>Αντικατάσταση του στοιχείου που βÏίσκεται στα δεξιά</target>
+<source>Update right item</source>
+<target>ΕνημέÏωση του στοιχείου που βÏίσκεται δεξιά</target>
<source>Do nothing</source>
<target>Καμία ενέÏγεια</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Το αÏχείο %x δεν ήταν δυνατόν να φοÏτωθεί.</target>
+
<source>Database file %x is incompatible.</source>
<target>Το αÏχείο βάσης δεδομένων %x δεν είναι συμβατό</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>ΔημιουÏγία του αÏχείου %x</target>
+<source>Saving file %x...</source>
+<target>Αποθήκευση του αÏχείου %x...</target>
+
<source>Items processed:</source>
<target>ΕπεξεÏγάστηκαν στοιχεία:</target>
@@ -295,9 +304,6 @@
<pluralform>%x νήματα</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Κωδικοποίηση εκτεταμένων πληÏοφοÏιών για την ÏŽÏα: %x</target>
-
<source>/sec</source>
<target>/δευτεÏόλεπτο</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>ΧÏησιμοποιήστε την 64-μπιτη έκδοση του FreeFileSync για να δημιουÏγήσετε σκιώδη αντίγÏαφα σε αυτόν τον υπολογιστή.</target>
-<source>Cannot load file %x.</source>
-<target>Το αÏχείο %x δεν ήταν δυνατόν να φοÏτωθεί.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Δεν μποÏεί να Ï€ÏοσδιοÏιστεί το όνομα τόμου για το %x.</target>
@@ -340,7 +343,7 @@
<source>Save &as...</source>
<target>Αποθήκευση &ως...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>Έ&ξοδος</target>
<source>&File</source>
@@ -435,6 +438,9 @@ The command is triggered if:
<source>&Show error</source>
<target>&Εμφάνιση σφάλματος</target>
+<source>&Quit</source>
+<target>Έ&ξοδος</target>
+
<source>Incorrect command line:</source>
<target>Εσφαλμένη γÏαμμή εντολών:</target>
@@ -480,11 +486,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>ΔημιουÏγία του υποκαταλόγου %x</target>
-<source>Overwriting file %x</source>
-<target>Αντικατάσταση του αÏχείου %x</target>
+<source>Updating file %x</source>
+<target>ΕνημέÏωση του αÏχείου %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Αντικατάσταση του ÏƒÏ…Î¼Î²Î¿Î»Î¹ÎºÎ¿Ï Î´ÎµÏƒÎ¼Î¿Ï %x</target>
+<source>Updating symbolic link %x</source>
+<target>ΕνημέÏωση του ÏƒÏ…Î¼Î²Î¿Î»Î¹ÎºÎ¿Ï Î´ÎµÏƒÎ¼Î¿Ï %x</target>
<source>Verifying file %x</source>
<target>ΕπικÏÏωση του αÏχείου %x</target>
@@ -498,21 +504,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>Σφάλμα επαλήθευσης δεδομένων: το %x και το %y έχουν διαφοÏετικό πεÏιεχόμενο.</target>
-<source>Cannot find folder %x.</source>
-<target>Ο υποκατάλογος %x δεν μποÏεί να βÏεθεί.</target>
-
<source>Target folder %x already existing.</source>
<target>Ο υποκατάλογος-στόχος %x υπάÏχει ήδη.</target>
+<source>Cannot find folder %x.</source>
+<target>Ο υποκατάλογος %x δεν μποÏεί να βÏεθεί.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Το πεδίο εισαγωγής του υποκαταλόγου-στόχου Ï€Ïέπει να μην είναι κενό.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>ΠαÏακαλώ εισάγετε έναν υποκατάλογο για αποθήκευση εκδόσεων.</target>
-
<source>Source folder %x not found.</source>
<target>Ο υποκατάλογος %x δε βÏέθηκε.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>ΠαÏακαλώ εισάγετε έναν υποκατάλογο για αποθήκευση εκδόσεων.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Τα ακόλουθα στοιχεία έχουν ανεπίλυτες διενέξεις και δε θα συγχÏονιστοÏν:</target>
@@ -555,8 +561,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>Ο συγχÏονισμός ολοκληÏώθηκε επιτυχώς</target>
-<source>Saving log file %x...</source>
-<target>Αποθήκευση του αÏχείου καταγÏαφής %x...</target>
+<source>Cleaning up old log files...</source>
+<target>ΚαθαÏισμός των παλιών αÏχείων καταγÏαφής...</target>
<source>Stopped</source>
<target>Διεκόπη</target>
@@ -609,8 +615,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>Το FreeFileSync είναι ενημεÏωμένο.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Δεν είναι δυνατή η σÏνδεση με το sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Αδυναμία επικοινωνίας με το FreeFileSync.org.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Ο αÏιθμός της Ï„Ïέχουσας έκδοσης του FreeFileSync δεν βÏέθηκε στο δίκτυο. Θέλετε να το ελέγξετε εσείς;</target>
@@ -694,10 +700,22 @@ The command is triggered if:
<target>Αποθήκευση ως δέσ&μη ενεÏγειών...</target>
<source>Start &comparison</source>
-<target>ΈναÏξη &σÏγκÏισης</target>
+<target>Έ&ναÏξη σÏγκÏισης</target>
+
+<source>C&omparison settings</source>
+<target>Ρυθμίσεις &σÏγκÏισης</target>
+
+<source>&Filter settings</source>
+<target>Ρυθμίσεις &φίλτÏων</target>
+
+<source>S&ynchronization settings</source>
+<target>Ρυθμίσεις σ&υγχÏονισμοÏ</target>
<source>Start &synchronization</source>
-<target>ΈναÏξη συγχÏο&νισμοÏ</target>
+<target>ΈναÏ&ξη συγχÏονισμοÏ</target>
+
+<source>&Actions</source>
+<target>Ε&νέÏγειες</target>
<source>&Options</source>
<target>&Επιλογές</target>
@@ -777,8 +795,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>ΑÏιθμός αÏχείων και υποκαταλόγων που θα διαγÏαφοÏν</target>
-<source>Number of files that will be overwritten</source>
-<target>ΑÏιθμός αÏχείων και υποκαταλόγων που θα αντικατασταθοÏν</target>
+<source>Number of files that will be updated</source>
+<target>ΑÏιθμός αÏχείων που θα ενημεÏωθοÏν</target>
<source>Number of files and folders that will be created</source>
<target>ΑÏιθμός αÏχείων και υποκαταλόγων που θα δημιουÏγηθοÏν</target>
@@ -807,8 +825,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>ΔιαχείÏιση θεÏινής ÏŽÏας</target>
-<source>Symbolic links:</source>
-<target>Συμβολικοί δεσμοί:</target>
+<source>Include symbolic links:</source>
+<target>ΣυμπεÏίληψη των συμβολικών δεσμών:</target>
+
+<source>Direct</source>
+<target>Ως δεσμοί</target>
+
+<source>Follow</source>
+<target>Ως πεÏιεχόμενο</target>
<source>More information</source>
<target>ΠεÏισσότεÏες πληÏοφοÏίες</target>
@@ -837,23 +861,23 @@ The command is triggered if:
<source>Maximum:</source>
<target>Μέγιστο</target>
-<source>C&lear</source>
-<target>&ΚαθαÏισμός</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Επιλογή κανόνων φιλτÏαÏίσματος, ώστε να αποκλειστοÏν οÏισμένα αÏχεία από το συγχÏονισμό. Εισάγετε τις διαδÏομές των αÏχείων σχετικά με το αντίστοιχο ζεÏγος υποκαταλόγων.</target>
+<source>C&lear</source>
+<target>&ΚαθαÏισμός</target>
+
<source>Detect moved files</source>
<target>Ανίχνευση των αÏχείων που μεταφέÏθηκαν</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Απαιτεί και δημιουÏγεί αÏχεία-βάσεις δεδομένων
-- Η ανίχνευση είναι ενεÏγή μετά τον αÏχικό συγχÏονισμό
+- Η ανίχνευση είναι ενεÏγή μετά από τον αÏχικό συγχÏονισμό
+- Απαιτεί και δημιουÏγεί αÏχεία βάσεων δεδομένων
- Δεν υποστηÏίζεται από όλα τα συστήματα αÏχείων
</target>
@@ -1067,27 +1091,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>ΠÏοβολή Ρυθμίσεων</target>
-<source>Overview</source>
-<target>ΣÏνοψη</target>
-
<source>Configuration</source>
<target>Διάταξη</target>
+<source>Overview</source>
+<target>ΣÏνοψη</target>
+
<source>Main Bar</source>
<target>ΚÏÏια ΓÏαμμή</target>
-<source>Start comparison</source>
-<target>ΈναÏξη σÏγκÏισης</target>
-
-<source>Comparison settings</source>
-<target>Ρυθμίσεις σÏγκÏισης</target>
-
-<source>Synchronization settings</source>
-<target>Ρυθμίσεις συγχÏονισμοÏ</target>
-
-<source>Start synchronization</source>
-<target>ΈναÏξη του συγχÏονισμοÏ</target>
-
<source>Confirm</source>
<target>Επιβεβαίωση</target>
@@ -1238,11 +1250,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Εμφάνιση των αÏχείων που θα διαγÏαφοÏν στα δεξιά</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Εμφάνιση των αÏχείων που θα αντικατασταθοÏν στα αÏιστεÏά</target>
+<source>Show files that will be updated on the left side</source>
+<target>Εμφάνιση των αÏχείων που θα ενημεÏωθοÏν στα αÏιστεÏά</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Εμφάνιση των αÏχείων που θα αντικατασταθοÏν στα αÏιστεÏά</target>
+<source>Show files that will be updated on the right side</source>
+<target>Εμφάνιση των αÏχείων που θα ενημεÏωθοÏν στα δεξιά</target>
<source>Show files that won't be copied</source>
<target>Εμφάνιση των αÏχείων που δε θα αντιγÏαφοÏν</target>
@@ -1379,15 +1391,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>ΟÏίστε τους δικοÏÏ‚ σας κανόνες συγχÏονισμοÏ.</target>
-<source>Exclude</source>
-<target>ΕξαίÏεση</target>
-
-<source>Direct</source>
-<target>Ως δεσμοί</target>
-
-<source>Follow</source>
-<target>Ως πεÏιεχόμενο</target>
-
<source>Today</source>
<target>ΣήμεÏα</target>
@@ -1451,9 +1454,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Δεν είναι δυνατή η παÏακολÏθηση του υποκαταλόγου %x.</target>
-<source>Conversion error:</source>
-<target>Σφάλμα μετατÏοπής:</target>
-
<source>Cannot delete file %x.</source>
<target>Δεν μποÏεί να διαγÏαφεί το αÏχείο %x.</target>
@@ -1487,8 +1487,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Δεν μποÏεί να δημιουÏγηθεί ο υποκατάλογος %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Ο συμβολικός δεσμός %x δεν μποÏεί να δημιουÏγηθεί.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Αδυναμία αντιγÏαφής του ÏƒÏ…Î¼Î²Î¿Î»Î¹ÎºÎ¿Ï Î´ÎµÏƒÎ¼Î¿Ï %x στο %y.</target>
<source>Cannot find system function %x.</source>
<target>Δεν ανευÏίσκεται η λειτουÏγία συστήματος %x.</target>
@@ -1571,3 +1571,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Το αÏχείο διάταξης %x έχει φοÏτωθεί μόνο κατά ένα μέÏος.</target>
+<source>Prepare installation</source>
+<target>ΠÏοετοιμασία εγκατάστασης</target>
+
+<source>Choose which components you want to install.</source>
+<target>Επιλέξτε ποια στοιχεία θέλετε να εγκαταστήσετε</target>
+
+<source>Select installation type:</source>
+<target>Επιλογή Ï„Ïπου εγκατάστασης:</target>
+
+<source>Local</source>
+<target>Τοπική</target>
+
+<source>Portable</source>
+<target>ΦοÏητή</target>
+
+<source>recommended</source>
+<target>συνιστώμενη</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Αποθήκευση Ïυθμίσεων στο "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>ΚαταχώÏηση των επεκτάσεων των αÏχείων του FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>ΔημιουÏγία καταχωÏήσεων στο Î¼ÎµÎ½Î¿Ï Ï€ÎµÏιβάλλοντος του Explorer</target>
+
+<source>Save settings in installation directory</source>
+<target>Αποθήκευση των Ïυθμίσεων στον υποκατάλογο εγκατάστασης</target>
+
+<source>Do not write to Registry</source>
+<target>ΧωÏίς εγγÏαφές στο ΜητÏώο</target>
+
+<source>Just copy the files</source>
+<target>Απλή αντιγÏαφή των αÏχείων</target>
+
+<source>Choose a directory for installation:</source>
+<target>Επιλέξτε έναν υποκατάλογο για εγκατάσταση:</target>
+
+<source>Create shortcuts:</source>
+<target>ΔημιουÏγία συντομεÏσεων:</target>
+
+<source>Desktop</source>
+<target>Επιφάνεια εÏγασίας</target>
+
+<source>Start menu</source>
+<target>ÎœÎµÎ½Î¿Ï Î­Î½Î±Ïξης</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>ΚαταχώÏηση των επεκτάσεων των αÏχείων του FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>ΑναίÏεση της καταχώÏησης των επεκτάσεων των αÏχείων του FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Ρυθμίσεις του FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Δέσμη ΕνεÏγειών του FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>Βάση Δεδομένων ΣυγχÏÎ¿Î½Î¹ÏƒÎ¼Î¿Ï Ï„Î¿Ï… FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Ρυθμίσεις του RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>ΕπεξεÏγασία με FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/hebrew.lng b/FreeFileSync/Build/Languages/hebrew.lng
index df907e40..51465750 100644
--- a/FreeFileSync/Build/Languages/hebrew.lng
+++ b/FreeFileSync/Build/Languages/hebrew.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>כל כמות של זוגות מחיצות ×לטרנטיביות עבור קובץ תצורה ×חד לפחות.</target>
+<source>Open configuration for edit without executing.</source>
+<target>פתח תצורה לעריכה ×œ×œ× ×‘×™×¦×•×¢.</target>
+
<source>Cannot find the following folders:</source>
<target>×œ× ×™×›×•×œ ×œ×ž×¦×•× ×ת המחיצות הב×ות:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>העבר קובץ בצד שמ×ל</target>
-<source>Overwrite left item</source>
-<target>×¨×©×•× ×¢×œ גבי פריט בצד ימין</target>
+<source>Update left item</source>
+<target>עדכן פריט בצד שמ×ל</target>
-<source>Overwrite right item</source>
-<target>×¨×©×•× ×¢×œ גבי פריט בצד שמ×ל</target>
+<source>Update right item</source>
+<target>עדכן פריט בצד ימין</target>
<source>Do nothing</source>
<target>×ל תעשה כלו×</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x גיגה בייט</target>
+<source>Cannot load file %x.</source>
+<target>×œ× ×™×›×•×œ לטעון קובץ %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>קובץ מסד × ×ª×•× ×™× %x ×ינו במבנה מת××™×.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>יוצר קובץ %x</target>
+<source>Saving file %x...</source>
+<target>שומר קובץ %x...</target>
+
<source>Items processed:</source>
<target>××œ×ž× ×˜×™× ×¢×•×‘×“×•:</target>
@@ -295,9 +304,6 @@
<pluralform>%x תהליכי×</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>מקודד ×ינפורמצית זמן מורחבת: %x</target>
-
<source>/sec</source>
<target>/שנ</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>×× × ×”×©×ª×ž×© בגירסת 64-bit של FreeFileSync על מנת ליצר shadow copies במערכת הפעלה זו.</target>
-<source>Cannot load file %x.</source>
-<target>×œ× ×™×›×•×œ לטעון קובץ %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>×œ× ×™×›×•×œ לקבוע ×©× ×מצעי ×חסון %x.</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>שמור &בש×...</target>
-<source>&Quit</source>
-<target>&יצי××”</target>
+<source>E&xit</source>
+<target>×™&צי××”</target>
<source>&File</source>
<target>&קובץ</target>
@@ -435,6 +438,9 @@ The command is triggered if:
<source>&Show error</source>
<target>&הר××” שגי××”</target>
+<source>&Quit</source>
+<target>&יצי××”</target>
+
<source>Incorrect command line:</source>
<target>שורת פקודה ×œ× ×ª×§×™× ×”:</target>
@@ -480,11 +486,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>יוצר מחיצה %x</target>
-<source>Overwriting file %x</source>
-<target>דורס קובץ %x</target>
+<source>Updating file %x</source>
+<target>מעדכן קובץ %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>דורס קישור סימבולי %x</target>
+<source>Updating symbolic link %x</source>
+<target>מעדכן קישור סימבולי %x</target>
<source>Verifying file %x</source>
<target>מ×מת קובץ %x</target>
@@ -498,21 +504,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>שגי×ת ×ימות נתוני×. ל %x ו %y יש תוכן שונה.</target>
-<source>Cannot find folder %x.</source>
-<target>×œ× ×ž×•×¦× ×ª×™×§×™×™×” %x.</target>
-
<source>Target folder %x already existing.</source>
<target>תיקיית מטרה %x כבר קיימת.</target>
+<source>Cannot find folder %x.</source>
+<target>×œ× ×ž×•×¦× ×ª×™×§×™×™×” %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>קלט תיקיית מטרה ××™× ×” יכול להיות ריק.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>בבקשה הזן תיקיית יעד עבור גרס×ות.</target>
-
<source>Source folder %x not found.</source>
<target>תיקיית מקור %x ×œ× × ×ž×¦×ת.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>בבקשה הזן תיקיית יעד עבור גרס×ות.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>×œ×¤×¨×™×˜×™× ×”×‘××™× ×™×© ×§×•× ×¤×œ×™×§×˜×™× ×‘×œ×ª×™ ×¤×ª×•×¨×™× ×•×”× ×œ× ×™×¡×•× ×›×¨× ×•:</target>
@@ -555,8 +561,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>סנכרון ×”×¡×ª×™×™× ×‘×”×¦×œ×—×”</target>
-<source>Saving log file %x...</source>
-<target>שומר קובץ יומן %x...</target>
+<source>Cleaning up old log files...</source>
+<target>מנקה קבצי יומן ישני×...</target>
<source>Stopped</source>
<target>נעצר</target>
@@ -609,8 +615,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync מעודכן לגירסה ×”×חרונה.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>×ין תקשורת ל sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>×ין תקשורת ×ל FreeFileSync.org</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>×œ× ×ž×•×¦× ×ž×¡×¤×¨ גירסה עדכנית של FreeFileSync ב×ופן מכוון. ×”×× ×תה רוצה לבדוק ב×ופן ידני?</target>
@@ -696,9 +702,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>התחל &והשווה</target>
+<source>C&omparison settings</source>
+<target>הגדרות ×”&שוו××”</target>
+
+<source>&Filter settings</source>
+<target>הגדרות ס&ינון</target>
+
+<source>S&ynchronization settings</source>
+<target>הגדרות סינכ&רון</target>
+
<source>Start &synchronization</source>
<target>התחל &וסנכרן</target>
+<source>&Actions</source>
+<target>&פעולות</target>
+
<source>&Options</source>
<target>&×פשרויות</target>
@@ -777,8 +795,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>מספר ×”×§×‘×¦×™× ×•×”×ª×™×§×™×•×ª שימחקו</target>
-<source>Number of files that will be overwritten</source>
-<target>מספר ×”×§×‘×¦×™× ×”×¢×•×ž×“×™× ×œ×”×™×›×ª×‘ מחדש</target>
+<source>Number of files that will be updated</source>
+<target>מספר ×”×§×‘×¦×™× ×”×¢×•×ž×“×™× ×œ×”×ª×¢×“×›×Ÿ</target>
<source>Number of files and folders that will be created</source>
<target>מספר ×”×§×‘×¦×™× ×•×”×ª×™×§×™×•×ª שייוצרו</target>
@@ -807,8 +825,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>התמודד ×¢× ×©×¢×•×Ÿ קיץ</target>
-<source>Symbolic links:</source>
-<target>×§×™×©×•×¨×™× ×¡×™×ž×‘×•×œ×™×™×:</target>
+<source>Include symbolic links:</source>
+<target>כלול ×§×™×©×•×¨×™× ×¡×™×ž×‘×•×œ×™×™×:</target>
+
+<source>Direct</source>
+<target>כוון</target>
+
+<source>Follow</source>
+<target>עקוב</target>
<source>More information</source>
<target>מידע נוסף</target>
@@ -837,23 +861,23 @@ The command is triggered if:
<source>Maximum:</source>
<target>מקסימו×:</target>
-<source>C&lear</source>
-<target>×&פס</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>בחר כללי סינון כדי ×œ× ×œ×›×œ×•×œ ×§×‘×¦×™× ×ž×¡×•×™×ž×™× ×‘×¡× ×›×¨×•×Ÿ. הזן ×ת נתיבי ×”×§×‘×¦×™× ×‘×™×—×¡ לזוג התיקיות בהת×מה.</target>
+<source>C&lear</source>
+<target>×&פס</target>
+
<source>Detect moved files</source>
<target>גלה ×§×‘×¦×™× ×ž×•×¢×‘×¨×™×</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- דורש ויוצר קבצי בסיס נתוני×
- גילוי פעיל ל×חר סינכרון ר×שוני
+- דורש ויוצר קבצי בסיס נתוני×
- ×œ× × ×ª×ž×š ×¢"×™ כל מערכות הקבצי×
</target>
@@ -1067,27 +1091,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>הגדרות תצוגה</target>
-<source>Overview</source>
-<target>מבט כללי</target>
-
<source>Configuration</source>
<target>תצורה</target>
+<source>Overview</source>
+<target>מבט כללי</target>
+
<source>Main Bar</source>
<target>סרגל ר×שי</target>
-<source>Start comparison</source>
-<target>התחל השוו××”</target>
-
-<source>Comparison settings</source>
-<target>הגדרות השוו××”</target>
-
-<source>Synchronization settings</source>
-<target>הגדרות סנכרון</target>
-
-<source>Start synchronization</source>
-<target>התחל סנכרון</target>
-
<source>Confirm</source>
<target>×שר</target>
@@ -1238,11 +1250,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>הר××” ×§×‘×¦×™× ×©×™×ž×—×§×• בצד שמ×ל</target>
-<source>Show files that will be overwritten on left side</source>
-<target>הר××” ×§×‘×¦×™× ×©×™×“×¨×¡×• בצד ימין</target>
+<source>Show files that will be updated on the left side</source>
+<target>הר××” ×§×‘×¦×™× ×©×™×¢×˜×“×›× ×• בצד שמ×ל</target>
-<source>Show files that will be overwritten on right side</source>
-<target>הר××” ×§×‘×¦×™× ×©×™×“×¨×¡×• בצד שמ×ל</target>
+<source>Show files that will be updated on the right side</source>
+<target>הר××” ×§×‘×¦×™× ×©×™×¢×•×“×›× ×• בצד ימין</target>
<source>Show files that won't be copied</source>
<target>הר××” ×§×‘×¦×™× ×©×œ× ×™×•×¢×ª×§×•</target>
@@ -1379,15 +1391,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>סדר ×ת כללי הסנכרון שלך.</target>
-<source>Exclude</source>
-<target>×ל תכלול</target>
-
-<source>Direct</source>
-<target>כוון</target>
-
-<source>Follow</source>
-<target>עקוב</target>
-
<source>Today</source>
<target>היו×</target>
@@ -1451,9 +1454,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>×œ× ×™×›×•×œ לנטר מחיצה %x.</target>
-<source>Conversion error:</source>
-<target>שגי××” בהסבה:</target>
-
<source>Cannot delete file %x.</source>
<target>×œ× ×™×›×•×œ למחוק קובץ %x.</target>
@@ -1487,8 +1487,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>×œ× ×™×›×•×œ ליצור מחיצה %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>×œ× ×™×›×•×œ ליצור קישור סימבולי %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>×œ× ×™×›×•×œ להעתיק קישור סימבולי %x ×ל %y.</target>
<source>Cannot find system function %x.</source>
<target>×œ× ×™×›×•×œ ×œ×ž×¦×•× ×¤×•× ×§×¦×™×ª מערכת %x.</target>
@@ -1571,3 +1571,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>קובץ תצורה %x נטען חלקית בלבד.</target>
+<source>Prepare installation</source>
+<target>מכין התקנה</target>
+
+<source>Choose which components you want to install.</source>
+<target>בחר ×ילו ×ž×¨×›×™×‘×™× ×‘×¨×¦×•× ×š להתקין.</target>
+
+<source>Select installation type:</source>
+<target>בחר סוג התקנה:</target>
+
+<source>Local</source>
+<target>מקומי</target>
+
+<source>Portable</source>
+<target>נייד</target>
+
+<source>recommended</source>
+<target>מומלץ</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>שמור × ×ª×•× ×™× ×œ "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>×¨×•×©× ×¡×™×•×ž×•×ª תוכנת סנכרון ×§×‘×¦×™× ×—×•×¤×©×™×ª</target>
+
+<source>Create Explorer context menu entries</source>
+<target>צור תפריט הקשר בסייר הקבצי×</target>
+
+<source>Save settings in installation directory</source>
+<target>שמור נתוני תוכנית בתיקית התקנה</target>
+
+<source>Do not write to Registry</source>
+<target>×ל ×ª×¨×©×•× ×œ×§×‘×¦×™ רגיסטרי</target>
+
+<source>Just copy the files</source>
+<target>העתק ×§×‘×¦×™× ×‘×œ×‘×“</target>
+
+<source>Choose a directory for installation:</source>
+<target>בחר תיקיה להתקנה</target>
+
+<source>Create shortcuts:</source>
+<target>צור קיצורי דרך</target>
+
+<source>Desktop</source>
+<target>שולחן עבודה</target>
+
+<source>Start menu</source>
+<target>תפריט התחל</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>×¨×•×©× ×§×•×‘×¦×™ תוכנת סנכרון ×§×‘×¦×™× ×—×•×¤×©×™×ª</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>מבטל הרשמת קובצי תוכנת סנכרון ×§×‘×¦×™× ×—×•×¤×©×™×ª</target>
+
+<source>FreeFileSync Configuration</source>
+<target>תצורת FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>קובץ ×צווה של FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>בסיס נתוני סינכרון של FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>תצורת RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>ערוך ×¢× FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/hungarian.lng b/FreeFileSync/Build/Languages/hungarian.lng
index 2572e61f..96433e65 100644
--- a/FreeFileSync/Build/Languages/hungarian.lng
+++ b/FreeFileSync/Build/Languages/hungarian.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Tetszőleges számú alternatív könyvtár-pár legfeljebb egy konfigurációs fájlban.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Nyisd meg a konfigurációt szerkesztésre végrehajtás nélkül.</target>
+
<source>Cannot find the following folders:</source>
<target>A következő könyvtárak nem találhatóak:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Jobb oldali fájl mozgatása</target>
-<source>Overwrite left item</source>
-<target>Bal oldali elem fölülírása</target>
+<source>Update left item</source>
+<target>Bal oldal frissítése</target>
-<source>Overwrite right item</source>
-<target>Jobb oldali elem fölülírása</target>
+<source>Update right item</source>
+<target>Jobb oldal frissítése</target>
<source>Do nothing</source>
<target>Nincs mit csinálni</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>%x fájl betöltése nem sikerült.</target>
+
<source>Database file %x is incompatible.</source>
<target>%x adatbázisfájl inkompatibilis: .</target>
@@ -268,6 +274,9 @@
<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>
+
<source>Items processed:</source>
<target>Feldolgozott elemek száma:</target>
@@ -295,9 +304,6 @@
<pluralform>%x szál</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Kibővített időinformációk kódolása: %x</target>
-
<source>/sec</source>
<target>/másodperc</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Kérjük, használd a FreeFileSync 64 bites verzióját az árnyékmásolatok készítéséhez ezen a rendszeren.</target>
-<source>Cannot load file %x.</source>
-<target>%x fájl betöltése nem sikerült.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Nem lehet meghatározni a kötet-nevet a(z) %x számára</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>Mentés m&ásként...</target>
-<source>&Quit</source>
-<target>&Kilépés</target>
+<source>E&xit</source>
+<target>&Kilép</target>
<source>&File</source>
<target>&Fájl</target>
@@ -435,6 +438,9 @@ A parancs végrehajtódik, ha:
<source>&Show error</source>
<target>&Mutassa a hibákat</target>
+<source>&Quit</source>
+<target>&Kilépés</target>
+
<source>Incorrect command line:</source>
<target>Hibás parancssor:</target>
@@ -480,11 +486,11 @@ A parancs végrehajtódik, ha:
<source>Creating folder %x</source>
<target>%x könyvtár létrehozása</target>
-<source>Overwriting file %x</source>
-<target>%x fájl felülírása</target>
+<source>Updating file %x</source>
+<target>%x fájl frissítése</target>
-<source>Overwriting symbolic link %x</source>
-<target>%x szimbolikus hivatkozás felülírása</target>
+<source>Updating symbolic link %x</source>
+<target>%x szimbolikus link frissítése</target>
<source>Verifying file %x</source>
<target>%x fájl ellenőrzése</target>
@@ -498,21 +504,21 @@ A parancs végrehajtódik, ha:
<source>Data verification error: %x and %y have different content.</source>
<target>Adat-ellenőrzési hiba: %x és %y tartalma különböző.</target>
-<source>Cannot find folder %x.</source>
-<target>%x könyvtárat nem találom.</target>
-
<source>Target folder %x already existing.</source>
<target>%x célkönyvtár már létezik.</target>
+<source>Cannot find folder %x.</source>
+<target>%x könyvtárat nem találom.</target>
+
<source>Target folder input field must not be empty.</source>
<target>A célkönyvtárat meghatározó beviteli mező nem lehet üres.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Adja meg a célkönyvtárat a verziókövetéshez.</target>
-
<source>Source folder %x not found.</source>
<target>%x forráskönyvtár nem található .</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Adja meg a célkönyvtárat a verziókövetéshez.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>A következő elemek feloldatlan ütközést tartalmaznak, így nem lesznek szinkronizálva:</target>
@@ -555,8 +561,8 @@ A parancs végrehajtódik, ha:
<source>Synchronization completed successfully</source>
<target>A szinkronizálás sikeresen befejeződött</target>
-<source>Saving log file %x...</source>
-<target>Naplófájl mentése a következő fájlba: %x.</target>
+<source>Cleaning up old log files...</source>
+<target>Régi log fájlok törlése</target>
<source>Stopped</source>
<target>Leállítva</target>
@@ -609,8 +615,8 @@ A parancs végrehajtódik, ha:
<source>FreeFileSync is up to date.</source>
<target>A FreeFileSync naprakész.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Nem sikerült a csatlakozás a sourceforge.net-hez.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Nem tudok csatlakozni a 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>
@@ -696,9 +702,21 @@ A parancs végrehajtódik, ha:
<source>Start &comparison</source>
<target>Kezdje az &összehasonlítást</target>
+<source>C&omparison settings</source>
+<target>Öss&zehasonlítási beállítások</target>
+
+<source>&Filter settings</source>
+<target>&Szűrési beállítások</target>
+
+<source>S&ynchronization settings</source>
+<target>Sz&inkronizálási beállítások</target>
+
<source>Start &synchronization</source>
<target>Kezdje a &szinkronizálást</target>
+<source>&Actions</source>
+<target>&Műveletek</target>
+
<source>&Options</source>
<target>&Beállítások</target>
@@ -777,8 +795,8 @@ A parancs végrehajtódik, ha:
<source>Number of files and folders that will be deleted</source>
<target>A törlendő fájlok és könyvtárak száma</target>
-<source>Number of files that will be overwritten</source>
-<target>A felülírandó fájlok száma</target>
+<source>Number of files that will be updated</source>
+<target>Frissítendő fájlok száma</target>
<source>Number of files and folders that will be created</source>
<target>A létrehozandó fájlok és könyvtárak száma</target>
@@ -807,8 +825,14 @@ A parancs végrehajtódik, ha:
<source>Handle daylight saving time</source>
<target>Kezelje a nyári időszámítás különbségét</target>
-<source>Symbolic links:</source>
-<target>Szimbolikus linkek:</target>
+<source>Include symbolic links:</source>
+<target>Csatolja a szimbolikus linkeket:</target>
+
+<source>Direct</source>
+<target>Közvetlen</target>
+
+<source>Follow</source>
+<target>Követ</target>
<source>More information</source>
<target>További információ</target>
@@ -837,23 +861,23 @@ A parancs végrehajtódik, ha:
<source>Maximum:</source>
<target>Maximum:</target>
-<source>C&lear</source>
-<target>&Töröl</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Meghatározott fájlok szinkronizálásból történő kizárásához válasszon szűrőt. Az útvonalakat a megfelelő könyvtár-párjaikhoz viszonyítva adja meg.</target>
+<source>C&lear</source>
+<target>&Töröl</target>
+
<source>Detect moved files</source>
<target>Érzékelje a mozgatott fájlokat</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Adatbázis fájlokat feltételez és készít
-- Az érzékelés a kezdeti szinkronizálás után válik aktívvá
+- Az érzékelés a kezdeti szinkronizálás után aktív
+- Adatbázisok fájlokat hoz létre és használ
- Nem minden fájlrendszer támogatja
</target>
@@ -1067,27 +1091,15 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>View Settings</source>
<target>Mutassa a beállításokat</target>
-<source>Overview</source>
-<target>Ãttekintés</target>
-
<source>Configuration</source>
<target>Beállítás</target>
+<source>Overview</source>
+<target>Ãttekintés</target>
+
<source>Main Bar</source>
<target>Fő sáv</target>
-<source>Start comparison</source>
-<target>Kezdje az összehasonlítást</target>
-
-<source>Comparison settings</source>
-<target>Összehasonlítási beállítások</target>
-
-<source>Synchronization settings</source>
-<target>Szinkronizálási beállítások</target>
-
-<source>Start synchronization</source>
-<target>Indítja a szinkronizálást</target>
-
<source>Confirm</source>
<target>Jóváhagy</target>
@@ -1238,11 +1250,11 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Show files that will be deleted on the right side</source>
<target>Mutassa a jobb oldalon törlendő fájlokat</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Mutassa a bal oldalon felülírandó fájlokat</target>
+<source>Show files that will be updated on the left side</source>
+<target>Mutassa a bal oldalon a frissítendő fájlokat</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Mutassa a jobb oldalon felülírandó fájlokat</target>
+<source>Show files that will be updated on the right side</source>
+<target>Mutassa a jobb oldalon a frissítendő fájlokat</target>
<source>Show files that won't be copied</source>
<target>Mutassa a nem másolandó fájlokat</target>
@@ -1379,15 +1391,6 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Configure your own synchronization rules.</source>
<target>Ãllítsd be a saját szinkronizálási szabályaidat</target>
-<source>Exclude</source>
-<target>Kizár</target>
-
-<source>Direct</source>
-<target>Közvetlen</target>
-
-<source>Follow</source>
-<target>Követ</target>
-
<source>Today</source>
<target>Mai</target>
@@ -1451,9 +1454,6 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Cannot monitor directory %x.</source>
<target>Nem sikerült monitorozni a(z) %x könyvtárat.</target>
-<source>Conversion error:</source>
-<target>Konverziós hiba:</target>
-
<source>Cannot delete file %x.</source>
<target>Nem sikerült a(z) %x fájl törlése.</target>
@@ -1487,8 +1487,8 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Cannot create directory %x.</source>
<target>Nem sikerült a következő könyvtár létrehozása: %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Nem lehet létrehozni a(z) %x szimbolikus hivatkozást.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Nem tudja másolni a(z) %x szimbolikus linket %y-ba.</target>
<source>Cannot find system function %x.</source>
<target>Nem található a következő rendszerfunkció: %x.</target>
@@ -1571,3 +1571,72 @@ Ez garantálja a konzisztens állapotot egy komoly hiba esetén is.
<source>Configuration file %x loaded partially only.</source>
<target>%x konfigurációs fájl csak részlegesen töltődött be.</target>
+<source>Prepare installation</source>
+<target>Telepítés előkészítése</target>
+
+<source>Choose which components you want to install.</source>
+<target>Válassza ki, mely komponenseket akarja telepíteni</target>
+
+<source>Select installation type:</source>
+<target>Válassza ki a telepítési módot:</target>
+
+<source>Local</source>
+<target>Lokális</target>
+
+<source>Portable</source>
+<target>Hordozható</target>
+
+<source>recommended</source>
+<target>ajánlott</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Beállítások mentése a "%APPDATA%\FreeFileSync" mappába</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>A FreeFileSync fájlkiterjesztéseinek regisztrálása</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Készítsen környezetfüggő menüsorokat az Explorerbe</target>
+
+<source>Save settings in installation directory</source>
+<target>Beállítások mentése a telepítési mappába</target>
+
+<source>Do not write to Registry</source>
+<target>Ne írjon a rendszerleíró adatbázisba</target>
+
+<source>Just copy the files</source>
+<target>Csak a fájlok másolása</target>
+
+<source>Choose a directory for installation:</source>
+<target>Válassza ki a telepítési mappát:</target>
+
+<source>Create shortcuts:</source>
+<target>Hivatkozások létrehozása:</target>
+
+<source>Desktop</source>
+<target>Asztalon</target>
+
+<source>Start menu</source>
+<target>Start menü</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>A FreeFileSync fájlkiterjesztéseinek regisztrálása</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>A FreeFileSync fájlkiterjesztések regisztrációjának törlése</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync konfigurálása</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync kötegelt fájl</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync szinkronizációs adatbázis</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync konfigurálása</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Szerkesztés FreeFileSync-kel</target>
+
diff --git a/FreeFileSync/Build/Languages/italian.lng b/FreeFileSync/Build/Languages/italian.lng
index a3c08e19..402edbdd 100644
--- a/FreeFileSync/Build/Languages/italian.lng
+++ b/FreeFileSync/Build/Languages/italian.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Qualsiasi numero di coppie di directory alternative per al massimo un file di configurazione.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Configurazione aperta per la modifica senza eseguire.</target>
+
<source>Cannot find the following folders:</source>
<target>Impossibile trovare le seguenti cartelle:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Sposta il file a destra</target>
-<source>Overwrite left item</source>
-<target>Sovrascrivi oggetto di sinistra</target>
+<source>Update left item</source>
+<target>Aggiornamento voce sinistra</target>
-<source>Overwrite right item</source>
-<target>Sovrascrivi oggetto di destra</target>
+<source>Update right item</source>
+<target>Aggiornamento voce destra</target>
<source>Do nothing</source>
<target>Non fare nulla</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Impossibile caricare il file %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Il file del database %x non è compatibile.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Creazione file %x</target>
+<source>Saving file %x...</source>
+<target>Salvare il file %x...</target>
+
<source>Items processed:</source>
<target>Oggetti processati:</target>
@@ -295,9 +304,6 @@
<pluralform>%x thread</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Codifica estesa informazioni orario: %x</target>
-
<source>/sec</source>
<target>/sec</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>E' necessario utilizzare FreeFileSync versione 64-bit per creare copie shadow su questo sistema.</target>
-<source>Cannot load file %x.</source>
-<target>Impossibile caricare il file %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Impossibile determinare nome del volume per %x.</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>Salva &come...</target>
-<source>&Quit</source>
-<target>&Esci</target>
+<source>E&xit</source>
+<target>U&scita</target>
<source>&File</source>
<target>&File</target>
@@ -435,6 +438,9 @@ Il comando è attivato se:
<source>&Show error</source>
<target>&Mostra errore</target>
+<source>&Quit</source>
+<target>&Esci</target>
+
<source>Incorrect command line:</source>
<target>Linea di comando non corretta:</target>
@@ -480,11 +486,11 @@ Il comando è attivato se:
<source>Creating folder %x</source>
<target>Creazione cartella %x</target>
-<source>Overwriting file %x</source>
-<target>Sovrascrittura file %x</target>
+<source>Updating file %x</source>
+<target>Aggiornamento file %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Sovrascrittura collegamento %x</target>
+<source>Updating symbolic link %x</source>
+<target>Aggiornamento collegamento %x</target>
<source>Verifying file %x</source>
<target>Verifica file %x</target>
@@ -498,21 +504,21 @@ Il comando è attivato se:
<source>Data verification error: %x and %y have different content.</source>
<target>Dati di verifica errore: %x e %y hanno un contenuto diverso.</target>
-<source>Cannot find folder %x.</source>
-<target>Impossibile trovare la cartella %x.</target>
-
<source>Target folder %x already existing.</source>
<target>La cartella di destinazione %x è già esistente.</target>
+<source>Cannot find folder %x.</source>
+<target>Impossibile trovare la cartella %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Il campo per la cartella di destinazione non può essere vuoto.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Inserisci una cartella di destinazione per il controllo delle versioni.</target>
-
<source>Source folder %x not found.</source>
<target>Cartella sorgente %x non trovata.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Inserisci una cartella di destinazione per il controllo delle versioni.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>I seguenti oggetti hanno conflitti irrisolti e non saranno sincronizzati:</target>
@@ -555,8 +561,8 @@ Il comando è attivato se:
<source>Synchronization completed successfully</source>
<target>Sincronizzazione completata con successo</target>
-<source>Saving log file %x...</source>
-<target>Salvataggio file di log %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Pulizia vecchi file di log ...</target>
<source>Stopped</source>
<target>Arrestato</target>
@@ -609,8 +615,8 @@ Il comando è attivato se:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync è aggiornato.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Impossibile collegarsi a sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Impossibile connettersi al 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>
@@ -652,7 +658,7 @@ Il comando è attivato se:
<target>Azioni</target>
<source>Drag && drop</source>
-<target>Trascina</target>
+<target>Trascina e rilascia</target>
<source>Local comparison settings</source>
<target>Impostazioni di confronto locali</target>
@@ -696,9 +702,21 @@ Il comando è attivato se:
<source>Start &comparison</source>
<target>Avvio &confronto</target>
+<source>C&omparison settings</source>
+<target>Impostazioni C&onfronto</target>
+
+<source>&Filter settings</source>
+<target>Impostazioni &Filtro</target>
+
+<source>S&ynchronization settings</source>
+<target>Impostazioni S&incronizzazione</target>
+
<source>Start &synchronization</source>
<target>Avvio &sincronizzazione</target>
+<source>&Actions</source>
+<target>&Azioni</target>
+
<source>&Options</source>
<target>&Opzioni</target>
@@ -777,8 +795,8 @@ Il comando è attivato se:
<source>Number of files and folders that will be deleted</source>
<target>Numero di file e cartelle che verranno eliminati</target>
-<source>Number of files that will be overwritten</source>
-<target>Numero di file che verranno sovrascritti</target>
+<source>Number of files that will be updated</source>
+<target>Numero di file che verranno aggiornati</target>
<source>Number of files and folders that will be created</source>
<target>Numero di file e cartelle che verranno creati</target>
@@ -807,8 +825,14 @@ Il comando è attivato se:
<source>Handle daylight saving time</source>
<target>Maneggiare l'ora legale</target>
-<source>Symbolic links:</source>
-<target>Link simbolici:</target>
+<source>Include symbolic links:</source>
+<target>Include i collegamenti:</target>
+
+<source>Direct</source>
+<target>Diretto</target>
+
+<source>Follow</source>
+<target>Segui</target>
<source>More information</source>
<target>Maggiori informazioni</target>
@@ -837,24 +861,24 @@ Il comando è attivato se:
<source>Maximum:</source>
<target>Massimo:</target>
-<source>C&lear</source>
-<target>Cance&lla</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Selezionare le regole del filtro per escludere alcuni file dalla sincronizzazione. Immettere i percorsi dei file relativi alla loro corrispondente coppia di cartelle.</target>
+<source>C&lear</source>
+<target>Cance&lla</target>
+
<source>Detect moved files</source>
<target>Rileva file spostati</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Richiede e crea file di database
- Rilevamento attivo dopo la sincronizzazione iniziale
-- Non supportato da tutti i sistemi
+- Richiede e crea file di database
+- Non è supportato da tutti i sistemi
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1067,27 +1091,15 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>View Settings</source>
<target>Impostazioni Visualizzazione</target>
-<source>Overview</source>
-<target>Anteprima</target>
-
<source>Configuration</source>
<target>Configurazione</target>
+<source>Overview</source>
+<target>Anteprima</target>
+
<source>Main Bar</source>
<target>Barra Principale</target>
-<source>Start comparison</source>
-<target>Avviare confronto</target>
-
-<source>Comparison settings</source>
-<target>Impostazioni di comparazione</target>
-
-<source>Synchronization settings</source>
-<target>Parametri di sincronizzazione</target>
-
-<source>Start synchronization</source>
-<target>Avvia sincronizzazione</target>
-
<source>Confirm</source>
<target>Confermare</target>
@@ -1238,11 +1250,11 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Show files that will be deleted on the right side</source>
<target>Mostra i file che verranno cancellati sul lato destro</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Mostra i file che verranno sovrascritti sul lato sinistro</target>
+<source>Show files that will be updated on the left side</source>
+<target>Mostra i file che verranno aggiornati sul lato sinistro</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Mostra i file che verranno sovrascritti sul lato destro</target>
+<source>Show files that will be updated on the right side</source>
+<target>Mostra i file che verranno aggiornati sul lato destro</target>
<source>Show files that won't be copied</source>
<target>Mostra i file che non saranno copiati</target>
@@ -1379,15 +1391,6 @@ 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>Exclude</source>
-<target>Escludi</target>
-
-<source>Direct</source>
-<target>Diretto</target>
-
-<source>Follow</source>
-<target>Segui</target>
-
<source>Today</source>
<target>Oggi</target>
@@ -1451,9 +1454,6 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Cannot monitor directory %x.</source>
<target>Impossibile monitorare la directory %x.</target>
-<source>Conversion error:</source>
-<target>Errore di conversione:</target>
-
<source>Cannot delete file %x.</source>
<target>Impossibile eliminare il file %x.</target>
@@ -1487,8 +1487,8 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Cannot create directory %x.</source>
<target>Impossibile creare la cartella %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Impossibile creare il collegamento %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Impossibile copiare collegamento %x per %y.</target>
<source>Cannot find system function %x.</source>
<target>Impossibile trovare la funzione di sistema %x.</target>
@@ -1571,3 +1571,72 @@ Questo garantisce uno stato consistente anche in caso di errore grave.
<source>Configuration file %x loaded partially only.</source>
<target>File di configurazione %x caricato solo parzialmente.</target>
+<source>Prepare installation</source>
+<target>Preparare l'installazione</target>
+
+<source>Choose which components you want to install.</source>
+<target>Scegliere i componenti che si desidera installare.</target>
+
+<source>Select installation type:</source>
+<target>Selezionare il tipo di installazione:</target>
+
+<source>Local</source>
+<target>Locale</target>
+
+<source>Portable</source>
+<target>Portatile</target>
+
+<source>recommended</source>
+<target>raccommandata</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Salva impostazioni in "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registra estensioni file di FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Creare voci del menu contestuale di Explorer</target>
+
+<source>Save settings in installation directory</source>
+<target>Salva impostazioni nella cartella di installazione</target>
+
+<source>Do not write to Registry</source>
+<target>Non scrive nel Registro di Windows</target>
+
+<source>Just copy the files</source>
+<target>Basta copiare i file</target>
+
+<source>Choose a directory for installation:</source>
+<target>Seleziona cartella di installazione:</target>
+
+<source>Create shortcuts:</source>
+<target>Crea collegamenti:</target>
+
+<source>Desktop</source>
+<target>Desktop</target>
+
+<source>Start menu</source>
+<target>Menù Avvio</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registra estensioni file FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Rimuovi registrazione estensioni file di FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Configurazione FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>File Batch FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>Database sincronizzazione FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Configurazione RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Modifica con FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/japanese.lng b/FreeFileSync/Build/Languages/japanese.lng
index dd8c6a0e..ab14ad2e 100644
--- a/FreeFileSync/Build/Languages/japanese.lng
+++ b/FreeFileSync/Build/Languages/japanese.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>ä»»æ„ã®æ•°ã®ä»£æ›¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒšã‚¢(ã²ã¨ã¤ã®æ§‹æˆãƒ•ã‚¡ã‚¤ãƒ«)</target>
+<source>Open configuration for edit without executing.</source>
+<target>実行ã—ãªã„ã§æ§‹æˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’編集用ã«é–‹ã.</target>
+
<source>Cannot find the following folders:</source>
<target>以下ã®ãƒ•ã‚©ãƒ«ãƒ€ãŒã¿ã¤ã‹ã‚Šã¾ã›ã‚“:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>ファイルをå³ã«ç§»å‹•</target>
-<source>Overwrite left item</source>
-<target>å·¦ã®é …ç›®ã«ä¸Šæ›¸ã</target>
+<source>Update left item</source>
+<target>å·¦ã®é …目を更新</target>
-<source>Overwrite right item</source>
-<target>å³ã®é …ç›®ã«ä¸Šæ›¸ã</target>
+<source>Update right item</source>
+<target>å³ã®é …目を更新</target>
<source>Do nothing</source>
<target>何もã—ãªã„</target>
@@ -216,6 +219,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>ファイル %x を読ã¿è¾¼ã‚ã¾ã›ã‚“.</target>
+
<source>Database file %x is incompatible.</source>
<target>データベース %x ã¨ã¯äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“.</target>
@@ -266,6 +272,9 @@
<source>Creating file %x</source>
<target>ファイル %x を作æˆä¸­</target>
+<source>Saving file %x...</source>
+<target>ファイル %x ã‚’ä¿å­˜ä¸­...</target>
+
<source>Items processed:</source>
<target>処ç†ã•ã‚ŒãŸè¦ç´ :</target>
@@ -292,9 +301,6 @@
<pluralform>%x スレッド</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>æ‹¡å¼µã•ã‚ŒãŸæ™‚間情報ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°: %x</target>
-
<source>/sec</source>
<target>/秒</target>
@@ -316,9 +322,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>FreeFileSync 64-bit 版を使用ã—ã¦ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã«ã‚·ãƒ£ãƒ‰ã‚¦ã‚³ãƒ”ーを作æˆã—ã¦ãã ã•ã„.</target>
-<source>Cannot load file %x.</source>
-<target>ファイル %x を読ã¿è¾¼ã‚ã¾ã›ã‚“.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>%x ã®ãƒœãƒªãƒ¥ãƒ¼ãƒ åãŒæ±ºå®šã•ã‚Œã¦ã„ã¾ã›ã‚“</target>
@@ -337,8 +340,8 @@
<source>Save &as...</source>
<target>別åä¿å­˜(&A)...</target>
-<source>&Quit</source>
-<target>終了(&Q)</target>
+<source>E&xit</source>
+<target>終了(&X)</target>
<source>&File</source>
<target>ファイル(&F)</target>
@@ -432,6 +435,9 @@ The command is triggered if:
<source>&Show error</source>
<target>エラー表示(&S)</target>
+<source>&Quit</source>
+<target>終了(&Q)</target>
+
<source>Incorrect command line:</source>
<target>ä¸æ­£ãªã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³:</target>
@@ -477,11 +483,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>フォルダ %x を作æˆä¸­</target>
-<source>Overwriting file %x</source>
-<target>ファイル %x を上書ã中</target>
+<source>Updating file %x</source>
+<target>ファイル %x を更新中</target>
-<source>Overwriting symbolic link %x</source>
-<target>シンボリックリンク %x を上書ã中</target>
+<source>Updating symbolic link %x</source>
+<target>シンボリックリンク %x を更新中</target>
<source>Verifying file %x</source>
<target>ファイル %x ã®æ¤œè¨¼ä¸­</target>
@@ -495,21 +501,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>データ検証エラー: %x 㨠%y ã«ã¯ç•°ãªã‚‹å†…容ãŒå«ã¾ã‚Œã¦ã„ã¾ã™.</target>
-<source>Cannot find folder %x.</source>
-<target>%x フォルダãŒã¿ã¤ã‹ã‚Šã¾ã›ã‚“</target>
-
<source>Target folder %x already existing.</source>
<target>対象フォルダ %x ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™.</target>
+<source>Cannot find folder %x.</source>
+<target>%x フォルダãŒã¿ã¤ã‹ã‚Šã¾ã›ã‚“</target>
+
<source>Target folder input field must not be empty.</source>
<target>対象フォルダ入力欄ãŒç©ºç™½ã«ãªã£ã¦ã„ã¾ã™.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>ãƒãƒ¼ã‚¸ãƒ§ãƒ³ä»˜ã‘ã‚’ã™ã‚‹å¯¾è±¡ãƒ•ã‚©ãƒ«ãƒ€ã‚’入力</target>
-
<source>Source folder %x not found.</source>
<target>ソースフォルダ %x ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“</target>
+<source>Please enter a target folder for versioning.</source>
+<target>ãƒãƒ¼ã‚¸ãƒ§ãƒ³ä»˜ã‘ã‚’ã™ã‚‹å¯¾è±¡ãƒ•ã‚©ãƒ«ãƒ€ã‚’入力</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>以下ã®é …ç›®ã¯ã€æœªè§£æ±ºã®ç«¶åˆãŒå­˜åœ¨ã™ã‚‹ãŸã‚åŒæœŸå‡¦ç†ã‚’実行ã§ãã¾ã›ã‚“ã§ã—ãŸ:</target>
@@ -552,8 +558,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>åŒæœŸå‡¦ç†ã¯ã™ã¹ã¦ãŒæ­£å¸¸ã«å®Œäº†ã—ã¾ã—ãŸ</target>
-<source>Saving log file %x...</source>
-<target>ログファイル %x ã‚’ä¿å­˜ä¸­...</target>
+<source>Cleaning up old log files...</source>
+<target>å¤ã„ログファイルをクリーン...</target>
<source>Stopped</source>
<target>åœæ­¢</target>
@@ -605,8 +611,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync ã¯æœ€æ–°ã§ã™.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Sourceforge.net ã«æŽ¥ç¶šã§ãã¾ã›ã‚“.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>FreeFileSync.org ã«æŽ¥ç¶šã§ãã¾ã›ã‚“.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>ç¾åœ¨ã® FreeFileSync ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ã‚’確èªã§ãã¾ã›ã‚“ã§ã—ãŸã€æ‰‹å‹•ã§ç¢ºèªã—ã¾ã™ã‹?</target>
@@ -692,9 +698,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>比較を開始(&C)</target>
+<source>C&omparison settings</source>
+<target>比較ã®è¨­å®š(&O)</target>
+
+<source>&Filter settings</source>
+<target>フィルター設定(&F)</target>
+
+<source>S&ynchronization settings</source>
+<target>åŒæœŸã®è¨­å®š(&Y)</target>
+
<source>Start &synchronization</source>
<target>åŒæœŸã‚’開始(&S)</target>
+<source>&Actions</source>
+<target>動作(&A)</target>
+
<source>&Options</source>
<target>設定(&O)</target>
@@ -773,8 +791,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>削除ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã€ãŠã‚ˆã³ãƒ•ã‚©ãƒ«ãƒ€ã®æ•°</target>
-<source>Number of files that will be overwritten</source>
-<target>上書ãã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®æ•°</target>
+<source>Number of files that will be updated</source>
+<target>æ›´æ–°ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®æ•°</target>
<source>Number of files and folders that will be created</source>
<target>作æˆã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã€ãŠã‚ˆã³ãƒ•ã‚©ãƒ«ãƒ€ã®æ•°</target>
@@ -803,8 +821,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>å¤æ™‚é–“ã®å–り扱ã„</target>
-<source>Symbolic links:</source>
-<target>シンボリック リンク:</target>
+<source>Include symbolic links:</source>
+<target>Sym リンクをå«ã‚ã‚‹:</target>
+
+<source>Direct</source>
+<target>直接</target>
+
+<source>Follow</source>
+<target>考慮</target>
<source>More information</source>
<target>æ›´ã«è©³ç´°ãªæƒ…å ±</target>
@@ -833,24 +857,24 @@ The command is triggered if:
<source>Maximum:</source>
<target>最大:</target>
-<source>C&lear</source>
-<target>クリア(&L)</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>åŒæœŸå‡¦ç†ã‹ã‚‰ç‰¹å®šã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’除外ã™ã‚‹ãŸã‚ã®ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼è¦å‰‡ã‚’é¸æŠžã€å¯¾å¿œã™ã‚‹ãれらフォルダ ペアã‹ã‚‰ã®ç›¸å¯¾ãƒ•ã‚¡ã‚¤ãƒ«ãƒ‘スを入力ã—ã¾ã™.</target>
+<source>C&lear</source>
+<target>クリア(&L)</target>
+
<source>Detect moved files</source>
<target>移動済ã¿ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’検出ã™ã‚‹</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- データベースファイルã®ä½œæˆã¨è¦æ±‚
-- åˆæœŸåŒæœŸå¾Œã«ã‚¢ã‚¯ãƒ†ã‚£ãƒ–を検出
-- ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã«ã¯éžå¯¾å¿œ
+- åˆæœŸåŒæœŸã®å¾Œã€ã‚¢ã‚¯ãƒ†ã‚£ãƒ–を検出
+- å¿…è¦ãªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作æˆ
+- ã™ã¹ã¦ã®ã‚·ã‚¹ãƒ†ãƒ ã«ã¯å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1063,27 +1087,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>表示設定</target>
-<source>Overview</source>
-<target>概è¦</target>
-
<source>Configuration</source>
<target>構æˆè¨­å®š</target>
+<source>Overview</source>
+<target>概è¦</target>
+
<source>Main Bar</source>
<target>メインãƒãƒ¼</target>
-<source>Start comparison</source>
-<target>比較を開始</target>
-
-<source>Comparison settings</source>
-<target>比較設定</target>
-
-<source>Synchronization settings</source>
-<target>åŒæœŸå‡¦ç†è¨­å®š</target>
-
-<source>Start synchronization</source>
-<target>åŒæœŸã®é–‹å§‹</target>
-
<source>Confirm</source>
<target>確èª</target>
@@ -1230,11 +1242,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>å³å´ã§å‰Šé™¤ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示</target>
-<source>Show files that will be overwritten on left side</source>
-<target>å·¦å´ã§ä¸Šæ›¸ãã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示</target>
+<source>Show files that will be updated on the left side</source>
+<target>å·¦å´ã§æ›´æ–°ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示</target>
-<source>Show files that will be overwritten on right side</source>
-<target>å³å´ã§ä¸Šæ›¸ãã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示</target>
+<source>Show files that will be updated on the right side</source>
+<target>å³å´ã§æ›´æ–°ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示</target>
<source>Show files that won't be copied</source>
<target>コピーã•ã‚Œãªã‹ã£ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’表示</target>
@@ -1367,16 +1379,7 @@ This guarantees a consistent state even in case of a serious error.
<target>æ–°ã—ã„ã€ã¾ãŸã¯æ›´æ–°ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’å³å´ãƒ•ã‚©ãƒ«ãƒ€ã«ã‚³ãƒ”ーã—ã¾ã™ã€‚</target>
<source>Configure your own synchronization rules.</source>
-<target>ã‚ãªãŸã®è¨­å®šã—ãŸåŒæœŸè¦å‰‡ã‚’使用ã—ã¾ã™ã€‚</target>
-
-<source>Exclude</source>
-<target>除外</target>
-
-<source>Direct</source>
-<target>ダイレクト</target>
-
-<source>Follow</source>
-<target>考慮ã™ã‚‹</target>
+<target>ã‚ãªãŸãŒä½¿ç”¨ã™ã‚‹åŒæœŸè¦å‰‡ã‚’設定ã—ã¾ã™ã€‚</target>
<source>Today</source>
<target>今日</target>
@@ -1441,9 +1444,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>ディレクトリ %x を監視ã§ãã¾ã›ã‚“.</target>
-<source>Conversion error:</source>
-<target>変æ›ã‚¨ãƒ©ãƒ¼:</target>
-
<source>Cannot delete file %x.</source>
<target>ファイル %x を削除出æ¥ã¾ã›ã‚“.</target>
@@ -1477,8 +1477,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>ディレクトリ %x を作æˆå‡ºæ¥ã¾ã›ã‚“.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>シンボリックリンク %x を作æˆå‡ºæ¥ã¾ã›ã‚“</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>シンボリックリンク %x ã‚’ %y ã«ã‚³ãƒ”ーã§ãã¾ã›ã‚“.</target>
<source>Cannot find system function %x.</source>
<target>システム関数 %x ãŒã¿ã¤ã‹ã‚Šã¾ã›ã‚“.</target>
@@ -1558,3 +1558,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>構æˆãƒ•ã‚¡ã‚¤ãƒ« %x ã¯éƒ¨åˆ†çš„ã®ã¿èª­ã¿è¾¼ã¾ã‚Œã¾ã™.</target>
+<source>Prepare installation</source>
+<target>インストールã®æº–å‚™</target>
+
+<source>Choose which components you want to install.</source>
+<target>インストールã™ã‚‹ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã‚’é¸æŠž</target>
+
+<source>Select installation type:</source>
+<target>インストールã®ç¨®é¡žã‚’é¸æŠž</target>
+
+<source>Local</source>
+<target>ローカル</target>
+
+<source>Portable</source>
+<target>ãƒãƒ¼ã‚¿ãƒ–ル</target>
+
+<source>recommended</source>
+<target>推奨</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>設定ã®ä¿å­˜å…ˆ "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>ファイル拡張å­ã‚’登録</target>
+
+<source>Create Explorer context menu entries</source>
+<target>エクスプローラã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼é …ç›®ã«çµ±åˆ</target>
+
+<source>Save settings in installation directory</source>
+<target>設定をインストールディレクトリã«ä¿å­˜</target>
+
+<source>Do not write to Registry</source>
+<target>レジストリを使用ã—ãªã„</target>
+
+<source>Just copy the files</source>
+<target>ファイルã®ã‚³ãƒ”ーã®ã¿</target>
+
+<source>Choose a directory for installation:</source>
+<target>インストールã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠž:</target>
+
+<source>Create shortcuts:</source>
+<target>ショートカットã®ä½œæˆ:</target>
+
+<source>Desktop</source>
+<target>デスクトップ</target>
+
+<source>Start menu</source>
+<target>スタートメニュー</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>FreeFileSync ファイル拡張å­ã‚’登録中</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>FreeFileSync ファイル拡張å­ã®ç™»éŒ²è§£é™¤ä¸­</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync 構æˆè¨­å®š</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync 一括ファイル</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync åŒæœŸãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync 構æˆè¨­å®š</target>
+
+<source>Edit with FreeFileSync</source>
+<target>FreeFileSync ã§ç·¨é›†</target>
+
diff --git a/FreeFileSync/Build/Languages/korean.lng b/FreeFileSync/Build/Languages/korean.lng
index 08385610..8495026c 100644
--- a/FreeFileSync/Build/Languages/korean.lng
+++ b/FreeFileSync/Build/Languages/korean.lng
@@ -89,11 +89,14 @@
<target>GlobalSettings.xml 대체 파ì¼ì— 대한 경로</target>
<source>Any number of FreeFileSync .ffs_gui and/or .ffs_batch configuration files.</source>
-<target>FreeFileSync .ffs_gui ë˜ëŠ” .ffs_batch ì„¤ì •íŒŒì¼ ê°œìˆ˜</target>
+<target>FreeFileSync .ffs_gui ë˜ëŠ” .ffs_batch 설정 íŒŒì¼ ê°œìˆ˜</target>
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>최대 1ê°œ 설정파ì¼ì— 대한 대체 디렉토리 페어 개수</target>
+<source>Open configuration for edit without executing.</source>
+<target>실행하지 ì•Šì€ ìƒíƒœë¡œ 편집 구성 열기</target>
+
<source>Cannot find the following folders:</source>
<target>ë‹¤ìŒ í´ë”를 ì°¾ì„ ìˆ˜ 없습니다:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>우측 íŒŒì¼ ì´ë™</target>
-<source>Overwrite left item</source>
-<target>좌측 항목 ë®ì–´ì“°ê¸°</target>
+<source>Update left item</source>
+<target>좌측 항목 ì—…ë°ì´íŠ¸</target>
-<source>Overwrite right item</source>
-<target>우측 항목 ë®ì–´ì“°ê¸°</target>
+<source>Update right item</source>
+<target>우측 항목 ì—…ë°ì´íŠ¸</target>
<source>Do nothing</source>
<target>아무 ê²ƒë„ í•˜ì§€ ì•ŠìŒ</target>
@@ -216,6 +219,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>íŒŒì¼ %xì„(를) 로드할 수 없습니다.</target>
+
<source>Database file %x is incompatible.</source>
<target>ë°ì´í„°ë² ì´ìŠ¤ íŒŒì¼ %x ì€(는) 호환 불가능합니다.</target>
@@ -266,6 +272,9 @@
<source>Creating file %x</source>
<target>íŒŒì¼ %x ìƒì„± 중</target>
+<source>Saving file %x...</source>
+<target>íŒŒì¼ %x 저장 중...</target>
+
<source>Items processed:</source>
<target>ì²˜ë¦¬ëœ í•­ëª©:</target>
@@ -292,9 +301,6 @@
<pluralform>%x 스레드</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>ì¸ì½”딩 확장 시간 ì •ë³´: %x</target>
-
<source>/sec</source>
<target>/ì´ˆ</target>
@@ -316,9 +322,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>본 ìš´ì˜ì²´ì œì—ì„œì˜ Shadow Copy ìƒì„±ì€ FreeFileSync 64-비트 ë²„ì „ì„ ì‚¬ìš©í•˜ì„¸ìš”.</target>
-<source>Cannot load file %x.</source>
-<target>íŒŒì¼ %xì„(를) 로드할 수 없습니다.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>%x ì— ëŒ€í•œ 볼륨 ì´ë¦„ì„ ê²°ì •í•  수 없습니다.</target>
@@ -337,8 +340,8 @@
<source>Save &as...</source>
<target>다른 ì´ë¦„으로 저장(&a)</target>
-<source>&Quit</source>
-<target>종료(&Q)</target>
+<source>E&xit</source>
+<target>나가기(&x)</target>
<source>&File</source>
<target>파ì¼(&F)</target>
@@ -365,7 +368,7 @@
<target>3. '시작'ì„ ëˆ„ë¥´ì„¸ìš”.</target>
<source>To get started just import a .ffs_batch file.</source>
-<target>시작하려면 .ffs_batch file (ì¼ê´„ 파ì¼)ì„ ê°€ì ¸ì˜¤ì‹­ì‹œì˜¤.</target>
+<target>시작하려면 .ffs_batch fileì„ ê°€ì ¸ 오십시오.</target>
<source>Folders to watch:</source>
<target>ì—´ì–´ ë³¼ í´ë”:</target>
@@ -432,6 +435,9 @@ The command is triggered if:
<source>&Show error</source>
<target>오류 표시(&S)</target>
+<source>&Quit</source>
+<target>종료(&Q)</target>
+
<source>Incorrect command line:</source>
<target>부정확한 명령줄:</target>
@@ -445,7 +451,7 @@ The command is triggered if:
<target>íŒŒì¼ ì‹œê°„ ë° í¬ê¸°</target>
<source>Two way</source>
-<target>ì–‘ë°©/ì–‘ë©´ (Two Way)</target>
+<target>양측 방향 (Two Way)</target>
<source>Mirror</source>
<target>미러</target>
@@ -477,11 +483,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>í´ë” %x ìƒì„± 중</target>
-<source>Overwriting file %x</source>
-<target>íŒŒì¼ %x ë®ì–´ì“°ëŠ” 중</target>
+<source>Updating file %x</source>
+<target>íŒŒì¼ %x ì—…ë°ì´íŠ¸ 중</target>
-<source>Overwriting symbolic link %x</source>
-<target>심볼릭 ë§í¬ %x ë®ì–´ì“°ëŠ” 중</target>
+<source>Updating symbolic link %x</source>
+<target>심볼릭 ë§í¬ %x ì—…ë°ì´íŠ¸ 중</target>
<source>Verifying file %x</source>
<target>íŒŒì¼ %x í™•ì¸ ì¤‘</target>
@@ -495,21 +501,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>ë°ì´í„° í™•ì¸ ì˜¤ë¥˜: %x ë° %y ì˜ ë‚´ìš©ì´ ì„œë¡œ 다릅니다.</target>
-<source>Cannot find folder %x.</source>
-<target>%x í´ë”를 ì°¾ì„ ìˆ˜ 없습니다.</target>
-
<source>Target folder %x already existing.</source>
<target>ëŒ€ìƒ í´ë” %xì´(ê°€) ì´ë¯¸ 존재함.</target>
+<source>Cannot find folder %x.</source>
+<target>%x í´ë”를 ì°¾ì„ ìˆ˜ 없습니다.</target>
+
<source>Target folder input field must not be empty.</source>
<target>ëŒ€ìƒ í´ë” ìž…ë ¥ 필드가 비어 있어서는 안 ë©ë‹ˆë‹¤.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>버저ë‹ì„ 위한 ëŒ€ìƒ í´ë”를 입력하세요.</target>
-
<source>Source folder %x not found.</source>
<target>소스 í´ë” %xì„(를) ì°¾ì„ ìˆ˜ ì—†ìŒ.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>버저ë‹ì„ 위한 ëŒ€ìƒ í´ë”를 입력하세요.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>ì•„ëž˜ì˜ í•­ëª©ë“¤ì€ í•´ê²°ì¹˜ 못 í•œ 충ëŒë¡œ ì¸í•´ ë™ê¸°í™”í•  수 없습니다:</target>
@@ -552,8 +558,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>ë™ê¸°í™”ê°€ 성공ì ìœ¼ë¡œ 완료 ë습니다</target>
-<source>Saving log file %x...</source>
-<target>로그 íŒŒì¼ %x 저장 중...</target>
+<source>Cleaning up old log files...</source>
+<target>ì´ì „ 로그 íŒŒì¼ ì •ë¦¬ 중...</target>
<source>Stopped</source>
<target>중단</target>
@@ -605,8 +611,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync는 현재 최신버전 ìƒíƒœìž…니다.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Sourceforge.netì— ì ‘ì†í•  수 없습니다.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>FreeFileSync.org.ì— ì ‘ì†í•  수 없습니다.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>현재 사용 ì¤‘ì¸ FreeFileSync 버전 번호를 온ë¼ì¸ì—ì„œ ì°¾ì„ ìˆ˜ 없습니다. 수ë™ìœ¼ë¡œ 확ì¸í•´ 보시겠습니까?</target>
@@ -692,9 +698,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>ë¹„êµ ì‹œìž‘(&C)</target>
+<source>C&omparison settings</source>
+<target>ë¹„êµ ì„¤ì •(&o)</target>
+
+<source>&Filter settings</source>
+<target>필터 설정(&F)</target>
+
+<source>S&ynchronization settings</source>
+<target>ë™ê¸°í™” 설정(&y)</target>
+
<source>Start &synchronization</source>
<target>ë™ê¸°í™” 시작(&S)</target>
+<source>&Actions</source>
+<target>실행(&A)</target>
+
<source>&Options</source>
<target>옵션(&O)</target>
@@ -773,8 +791,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>ì‚­ì œë  íŒŒì¼ ë° í´ë” 개수</target>
-<source>Number of files that will be overwritten</source>
-<target>ë®ì–´ 씌어질 íŒŒì¼ ê°œìˆ˜</target>
+<source>Number of files that will be updated</source>
+<target>ì—…ë°ì´íŠ¸ ë  íŒŒì¼ ê°œìˆ˜</target>
<source>Number of files and folders that will be created</source>
<target>ìƒì„±ë  íŒŒì¼ ë° í´ë” 개수</target>
@@ -803,8 +821,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>서머타임 설정</target>
-<source>Symbolic links:</source>
-<target>ì‹¬ë³¼ë§ ë§í¬:</target>
+<source>Include symbolic links:</source>
+<target>심볼릭 ë§í¬ í¬í•¨:</target>
+
+<source>Direct</source>
+<target>다ì´ë ‰íŠ¸</target>
+
+<source>Follow</source>
+<target>팔로우</target>
<source>More information</source>
<target>ìƒì„¸ ì •ë³´</target>
@@ -833,24 +857,24 @@ The command is triggered if:
<source>Maximum:</source>
<target>최대:</target>
-<source>C&lear</source>
-<target>제거(&l)</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>ë™ê¸°í™”ì—ì„œ 특정 파ì¼ì„ 제외시키는 í•„í„° ê·œì¹™ì„ ì„ íƒí•©ë‹ˆë‹¤. 해당 í´ë” íŽ˜ì–´ì— ëŒ€í•œ ìƒëŒ€ íŒŒì¼ ê²½ë¡œë¥¼ 입력하세요.</target>
+<source>C&lear</source>
+<target>제거(&l)</target>
+
<source>Detect moved files</source>
<target>ì´ë™ íŒŒì¼ íƒì§€</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- ë°ì´í„°ë² ì´ìŠ¤ íŒŒì¼ í•„ìš” ë° ìƒì„±
- 초기 ë™ê¸°í™” ì´í›„ íƒì§€ê¸°ëŠ¥ 활성화
-- 모든 íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ 지ì›ë˜ì§€ ì•ŠìŒ
+- ë°ì´í„°ë² ì´ìŠ¤ íŒŒì¼ ìš”ì²­ ë° ìƒì„±
+- 모든 íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ 지ì›ë˜ì§€ëŠ” ì•ŠìŒ
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -935,7 +959,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>
@@ -1063,27 +1087,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>설정 보기</target>
-<source>Overview</source>
-<target>개요</target>
-
<source>Configuration</source>
<target>구성 설정</target>
+<source>Overview</source>
+<target>개요</target>
+
<source>Main Bar</source>
<target>ë©”ì¸ ë°”</target>
-<source>Start comparison</source>
-<target>ë¹„êµ ì‹œìž‘</target>
-
-<source>Comparison settings</source>
-<target>ë¹„êµ ì„¤ì •</target>
-
-<source>Synchronization settings</source>
-<target>ë™ê¸°í™” 설정</target>
-
-<source>Start synchronization</source>
-<target>ë™ê¸°í™” 시작</target>
-
<source>Confirm</source>
<target>확ì¸</target>
@@ -1177,7 +1189,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>
@@ -1230,11 +1242,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>우측ì—ì„œ ì‚­ì œë  íŒŒì¼ í‘œì‹œ</target>
-<source>Show files that will be overwritten on left side</source>
-<target>ì¢Œì¸¡ì— ë®ì–´ì“°ì—¬ì§ˆ íŒŒì¼ í‘œì‹œ</target>
+<source>Show files that will be updated on the left side</source>
+<target>ì¢Œì¸¡ì— ì—…ë°ì´íŠ¸ ë  íŒŒì¼ í‘œì‹œ</target>
-<source>Show files that will be overwritten on right side</source>
-<target>ìš°ì¸¡ì— ë®ì–´ì“°ì—¬ì§ˆ íŒŒì¼ í‘œì‹œ</target>
+<source>Show files that will be updated on the right side</source>
+<target>ìš°ì¸¡ì— ì—…ë°ì´íŠ¸ ë  íŒŒì¼ í‘œì‹œ</target>
<source>Show files that won't be copied</source>
<target>복사ë˜ì§€ ì•Šì„ íŒŒì¼ í‘œì‹œ</target>
@@ -1369,15 +1381,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>ê°œì¸ ë™ê¸°í™” 규칙 설정</target>
-<source>Exclude</source>
-<target>제외</target>
-
-<source>Direct</source>
-<target>다ì´ë ‰íŠ¸</target>
-
-<source>Follow</source>
-<target>팔로우</target>
-
<source>Today</source>
<target>오늘</target>
@@ -1441,9 +1444,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>디렉토리 %xì„(를) ëª¨ë‹ˆí„°ë§ í•  수 없습니다.</target>
-<source>Conversion error:</source>
-<target>변환 오류:</target>
-
<source>Cannot delete file %x.</source>
<target>íŒŒì¼ %xì„(를) 삭제할 수 없습니다.</target>
@@ -1477,8 +1477,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>디렉토리 %xì„(를) ìƒì„±í•  수 없습니다.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>심볼릭 ë§í¬ %xì„(를) ìƒì„±í•  수 없습니다.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>심볼릭 ë§í¬ %xì„(를) %y(으)ë¡œ 복사할 수 없습니다.</target>
<source>Cannot find system function %x.</source>
<target>시스템 함수 %xì„(를) ì°¾ì„ ìˆ˜ 없습니다.</target>
@@ -1558,3 +1558,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>구성 íŒŒì¼ %xì´(ê°€) 부분ì ìœ¼ë¡œë§Œ 로드 ë˜ì—ˆìŒ.</target>
+<source>Prepare installation</source>
+<target>설치 준비</target>
+
+<source>Choose which components you want to install.</source>
+<target>설치할 구성 요소를 ì„ íƒí•˜ì„¸ìš”.</target>
+
+<source>Select installation type:</source>
+<target>설치 유형 ì„ íƒ:</target>
+
+<source>Local</source>
+<target>로컬</target>
+
+<source>Portable</source>
+<target>í¬í„°ë¸”</target>
+
+<source>recommended</source>
+<target>권장</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>"%APPDATA%\FreeFileSync"ì— ì„¤ì • 저장</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>FreeFileSync íŒŒì¼ í™•ìž¥ìž ë“±ë¡</target>
+
+<source>Create Explorer context menu entries</source>
+<target>ìµìŠ¤í”Œë¡œëŸ¬ 컨í…스트 메뉴 항목 ìƒì„±</target>
+
+<source>Save settings in installation directory</source>
+<target>설치 ë””ë ‰í† ë¦¬ì— ì„¤ì • 저장</target>
+
+<source>Do not write to Registry</source>
+<target>ë ˆì§€ìŠ¤íŠ¸ë¦¬ì— ê¸°ë¡ ì•ˆ 함</target>
+
+<source>Just copy the files</source>
+<target>파ì¼ë§Œ 복사</target>
+
+<source>Choose a directory for installation:</source>
+<target>설치할 디렉토리를 ì„ íƒí•˜ì„¸ìš” :</target>
+
+<source>Create shortcuts:</source>
+<target>바로가기 ìƒì„± :</target>
+
+<source>Desktop</source>
+<target>바탕화면</target>
+
+<source>Start menu</source>
+<target>시작 메뉴</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>FreeFileSync íŒŒì¼ í™•ìž¥ìž ë“±ë¡ ì¤‘</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>FreeFileSync íŒŒì¼ í™•ìž¥ìž ë“±ë¡ í•´ì œ 중</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync 환경설정</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync 배치(ì¼ê´„) 파ì¼</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync ë™ê¸°í™” ë°ì´í„°ë² ì´ìŠ¤</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync (실시간 ë™ê¸°í™”) 환경설정</target>
+
+<source>Edit with FreeFileSync</source>
+<target>FreeFileSync로 편집</target>
+
diff --git a/FreeFileSync/Build/Languages/lithuanian.lng b/FreeFileSync/Build/Languages/lithuanian.lng
index d8e0573f..78af9c50 100644
--- a/FreeFileSync/Build/Languages/lithuanian.lng
+++ b/FreeFileSync/Build/Languages/lithuanian.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Bet koks skaiÄius alternatyvių katalogų grupuojams tik su vienu konfigÅ«raciniu failu</target>
+<source>Open configuration for edit without executing.</source>
+<target>Atidaryti ir koreguoti pasirinkimus be programos vykdymo</target>
+
<source>Cannot find the following folders:</source>
<target>Nepavyksta rasti šių aplankų:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Perkelti failą į dešinę</target>
-<source>Overwrite left item</source>
-<target>Perrašyti kairįjį elementą</target>
+<source>Update left item</source>
+<target>Atnaujinti kairėje esantį elementą</target>
-<source>Overwrite right item</source>
-<target>Perrašyti dešinįjį elementą</target>
+<source>Update right item</source>
+<target>Atnaujinti dešinėje esantį elementą</target>
<source>Do nothing</source>
<target>Nieko nedaryti</target>
@@ -273,6 +276,9 @@
<source>Creating file %x</source>
<target>Kuriamas failas %x</target>
+<source>Saving file %x...</source>
+<target>IÅ¡saugomas failas %x...</target>
+
<source>Items processed:</source>
<target>Elementų apdorota:</target>
@@ -301,9 +307,6 @@
<pluralform>%x srautų</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Koduojama išplėstinė laiko informacija: %x</target>
-
<source>/sec</source>
<target>/sek.</target>
@@ -343,8 +346,8 @@
<source>Save &as...</source>
<target>IÅ¡saugoti &kaip...</target>
-<source>&Quit</source>
-<target>&IÅ¡eiti</target>
+<source>E&xit</source>
+<target>I&Å¡eiti</target>
<source>&File</source>
<target>&Failas</target>
@@ -438,6 +441,9 @@ Komanda inicijuojama jei:
<source>&Show error</source>
<target>&Parodyti klaidÄ…</target>
+<source>&Quit</source>
+<target>&IÅ¡eiti</target>
+
<source>Incorrect command line:</source>
<target>Netaisyklinga KomandinÄ— eilutÄ—:</target>
@@ -483,11 +489,11 @@ Komanda inicijuojama jei:
<source>Creating folder %x</source>
<target>Kuriamas aplankas %x</target>
-<source>Overwriting file %x</source>
-<target>Perrašomas failas %x</target>
+<source>Updating file %x</source>
+<target>Atnaujinamas failas %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Perrašoma simbolinė nuoroda %x</target>
+<source>Updating symbolic link %x</source>
+<target>Atnaujinama virtuali nuoroda %x</target>
<source>Verifying file %x</source>
<target>Tikrinamas failas %x</target>
@@ -558,8 +564,8 @@ Komanda inicijuojama jei:
<source>Synchronization completed successfully</source>
<target>Suvienodinimas sÄ—kmingai baigtas</target>
-<source>Saving log file %x...</source>
-<target>Iš saugomas žurnalo failas %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Išvalomi seni žurnalo įrašai...</target>
<source>Stopped</source>
<target>Sustabdyta</target>
@@ -613,8 +619,8 @@ Komanda inicijuojama jei:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync yra naujausia.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Nepavyksta prisijungti prie sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Nepavyko prisijungti prie 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>
@@ -656,7 +662,7 @@ Komanda inicijuojama jei:
<target>Veiksmas</target>
<source>Drag && drop</source>
-<target>Vilkti && numesti</target>
+<target>Vilkti && Numesti</target>
<source>Local comparison settings</source>
<target>Vietiniai palyginimo parametrai</target>
@@ -700,9 +706,21 @@ Komanda inicijuojama jei:
<source>Start &comparison</source>
<target>PradÄ—ti &palyginimÄ…</target>
+<source>C&omparison settings</source>
+<target>P&alyginimo parametrai</target>
+
+<source>&Filter settings</source>
+<target>&Filtro parametrai</target>
+
+<source>S&ynchronization settings</source>
+<target>S&uvienodinimo parametrai</target>
+
<source>Start &synchronization</source>
<target>PradÄ—ti &suvienodinimÄ…</target>
+<source>&Actions</source>
+<target>&Veiksmai</target>
+
<source>&Options</source>
<target>&Parinktys</target>
@@ -781,8 +799,8 @@ Komanda inicijuojama jei:
<source>Number of files and folders that will be deleted</source>
<target>Failų ir aplankų, kurie bus iÅ¡trinti, skaiÄius</target>
-<source>Number of files that will be overwritten</source>
-<target>SkaiÄius failų, kurie bus perraÅ¡yti</target>
+<source>Number of files that will be updated</source>
+<target>Atnaujinamų failų kiekis</target>
<source>Number of files and folders that will be created</source>
<target>Failų ir aplankų, kurie bus sukurti, skaiÄius</target>
@@ -811,8 +829,14 @@ Komanda inicijuojama jei:
<source>Handle daylight saving time</source>
<target>Naudoti vasaros laikÄ…</target>
-<source>Symbolic links:</source>
-<target>SimbolinÄ—s nuorodos:</target>
+<source>Include symbolic links:</source>
+<target>PridÄ—ti simbolinias nuorodas:</target>
+
+<source>Direct</source>
+<target>Tiesiogiai</target>
+
+<source>Follow</source>
+<target>Sekti</target>
<source>More information</source>
<target>Daugiau informacijos</target>
@@ -841,24 +865,24 @@ Komanda inicijuojama jei:
<source>Maximum:</source>
<target>Didžiausias:</target>
-<source>C&lear</source>
-<target>&IÅ¡valyti</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Pasirinkti filtro taisykles norint išskirti pasirinktus failus iš Suvienodinimo. Įveskite failo kelią, kuris atitinka aplanką.</target>
+<source>C&lear</source>
+<target>&IÅ¡valyti</target>
+
<source>Detect moved files</source>
<target>Rasti perkeltus failus</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Sukuriami reikalingi duomenų bazės failai
-- Aktyvus tikrinimas vykdant suvienodinimÄ…
-- Nesuderinamas su visomis failų sistemomis
+- Aptikimas aktyvuosis pradÄ—jus suvienodinimui
+- Sukuriami būtini duomenų bazės failai
+- Nesuderinama su visomis failų sistemomis
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1071,27 +1095,15 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>View Settings</source>
<target>Rodymo parametrai</target>
-<source>Overview</source>
-<target>Apžvalga</target>
-
<source>Configuration</source>
<target>Nustatymai</target>
+<source>Overview</source>
+<target>Apžvalga</target>
+
<source>Main Bar</source>
<target>Pagrindinė įrankinė</target>
-<source>Start comparison</source>
-<target>PradÄ—ti palyginimÄ…</target>
-
-<source>Comparison settings</source>
-<target>Palyginimo nustatymai</target>
-
-<source>Synchronization settings</source>
-<target>Suvienodinimo nustatymai</target>
-
-<source>Start synchronization</source>
-<target>PradÄ—ti suvienodinimÄ…</target>
-
<source>Confirm</source>
<target>Patvirtinti</target>
@@ -1246,11 +1258,11 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Show files that will be deleted on the right side</source>
<target>Rodyti failus, kurie bus ištrinti dešinėje pusėje</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Rodyti failus, kurie bus perrašyti kairėje pusėje</target>
+<source>Show files that will be updated on the left side</source>
+<target>Rodyti failus, kurie bus atnaujinti kairÄ—je pusÄ—je</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Rodyti failus, kurie bus perrašyti dešinėje pusėje</target>
+<source>Show files that will be updated on the right side</source>
+<target>Rodyti failus, kurie bus atnaujinti dešinėje pusėje</target>
<source>Show files that won't be copied</source>
<target>Rodyti failus, kurie ne bus kopijuojami</target>
@@ -1389,15 +1401,6 @@ 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>Exclude</source>
-<target>Neįtraukti</target>
-
-<source>Direct</source>
-<target>Tiesiogiai</target>
-
-<source>Follow</source>
-<target>Sekti</target>
-
<source>Today</source>
<target>Å iandien</target>
@@ -1461,9 +1464,6 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Cannot monitor directory %x.</source>
<target>Nepavyko stebÄ—ti katalogo %x.</target>
-<source>Conversion error:</source>
-<target>Konvertavimo klaida:</target>
-
<source>Cannot delete file %x.</source>
<target>Nepavyksta ištrinti failo %x.</target>
@@ -1497,17 +1497,17 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Cannot create directory %x.</source>
<target>Nepavyksta sukurti katalogo %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Nepavyko sukurti simbolinÄ—s nuorodos %x</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Nepavyko nukopijuoti simbolinės nuorodos %x į %y.</target>
<source>Cannot find system function %x.</source>
-<target>Nepavyksta rasti sistemos funkcijos %x.</target>
+<target>Nepavyksta rasti sisteminÄ—s funkcijos %x.</target>
<source>Cannot copy file %x to %y.</source>
-<target>Nepavyksta nukopijuoti failo %x į %y.</target>
+<target>Nepavyksta nukopijuoti failų %x į %y.</target>
<source>Type of item %x is not supported:</source>
-<target>Element tipas %x nepalaikomas:</target>
+<target>Elemento tipas %x nepalaikomas:</target>
<source>Cannot resolve symbolic link %x.</source>
<target>Nepavyko rasti simbolinės nuorodos %x reikšmės</target>
@@ -1584,3 +1584,72 @@ Tai garantuos pastovią buseną, netgi įvykus rimtai klaidai.
<source>Configuration file %x loaded partially only.</source>
<target>Nustatymų failas %x įkeltas tik dalinai.</target>
+<source>Prepare installation</source>
+<target>Ruošiamasi įdiegimui</target>
+
+<source>Choose which components you want to install.</source>
+<target>Pasirinkite kuriuos komponentus norėtumėte įdiegti</target>
+
+<source>Select installation type:</source>
+<target>Pasirinkti įdiegimo būdą</target>
+
+<source>Local</source>
+<target>Vietoje</target>
+
+<source>Portable</source>
+<target>Nešiojamas</target>
+
+<source>recommended</source>
+<target>rekomenduojama</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Išsaugoti nustatymus į "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Įrašyti FreeFileSync failų plėtinius</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Sukurti failų naršyklės turinio įrašus</target>
+
+<source>Save settings in installation directory</source>
+<target>Išsaugoti parametrus įdiegimo kataloge</target>
+
+<source>Do not write to Registry</source>
+<target>Nerašyti į registrų skiltį</target>
+
+<source>Just copy the files</source>
+<target>Tiesiog kopijuoti failus</target>
+
+<source>Choose a directory for installation:</source>
+<target>Pasirinkite aplanką į kurį norėtumėte įdiegti:</target>
+
+<source>Create shortcuts:</source>
+<target>Sukurti nuorodas:</target>
+
+<source>Desktop</source>
+<target>Darbalaukis</target>
+
+<source>Start menu</source>
+<target>PradÄ—ti meniu</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registruojami FreeFileSync failų plėtiniai</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Išregistruojami FreeFileSync failų plėtiniai</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync Konfigūracijos</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync Failų Paketas</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync Suvienodinimo duomenų bazė</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Realaus laiko suvienodinimo konfiguracija</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Koreguoti su FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/norwegian.lng b/FreeFileSync/Build/Languages/norwegian.lng
index 914184dc..50096dbb 100644
--- a/FreeFileSync/Build/Languages/norwegian.lng
+++ b/FreeFileSync/Build/Languages/norwegian.lng
@@ -1,37 +1,12 @@
<header>
<language>Norsk</language>
- <translator>bjorn039</translator>
+ <translator>bjorn96</translator>
<locale>nb_NO</locale>
<image>flag_norway.png</image>
<plural_count>2</plural_count>
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>Cannot copy symbolic link %x to %y.</source>
-<target></target>
-
-<source>
-- Detection active after initial sync
-- Requires and creates database files
-- Not supported by all file systems
-</source>
-<target></target>
-
-<source>C&lear</source>
-<target></target>
-
-<source>Consider file times with specified offset as equal</source>
-<target></target>
-
-<source>Unable to connect to freefilesync.org.</source>
-<target></target>
-
-<source>Removing old log files exceeding limit...</source>
-<target></target>
-
-<source>Open configuration for edit without executing.</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Begge sider er endret siden siste synkronisering.</target>
@@ -119,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Et ubegrenset antall alternative kataloger for maksimalt én konfigurasjonsfil</target>
+<source>Open configuration for edit without executing.</source>
+<target>Åpne konfigurasjon for å redigere, uten å kjøre den</target>
+
<source>Cannot find the following folders:</source>
<target>Kan ikke finne følgende mapper:</target>
@@ -209,11 +187,11 @@
<source>Move file on right</source>
<target>Flytt filen til høyre</target>
-<source>Overwrite left item</source>
-<target>Overskriv venstre mappe</target>
+<source>Update left item</source>
+<target>Oppdater fil til venstre</target>
-<source>Overwrite right item</source>
-<target>Overskriv høyre mappe</target>
+<source>Update right item</source>
+<target>Oppdater fil til høyre</target>
<source>Do nothing</source>
<target>Ikke gjør noe</target>
@@ -296,8 +274,8 @@
<source>Creating file %x</source>
<target>Oppretter filen %x</target>
-<source>Saving log file %x...</source>
-<target>Lagrer rapport %x...</target>
+<source>Saving file %x...</source>
+<target>Lagrer fil %x...</target>
<source>Items processed:</source>
<target>Mapper behandlet:</target>
@@ -365,8 +343,8 @@
<source>Save &as...</source>
<target>Lagre &som...</target>
-<source>&Quit</source>
-<target>&Avslutt</target>
+<source>E&xit</source>
+<target>A&vslutt</target>
<source>&File</source>
<target>&Fil</target>
@@ -460,6 +438,9 @@ Kommandoen utføres hvis:
<source>&Show error</source>
<target>&Vis feil</target>
+<source>&Quit</source>
+<target>&Avslutt</target>
+
<source>Incorrect command line:</source>
<target>Ugyldig kommando:</target>
@@ -505,11 +486,11 @@ Kommandoen utføres hvis:
<source>Creating folder %x</source>
<target>Oppretter mappen %x</target>
-<source>Overwriting file %x</source>
-<target>Overskriver filen %x</target>
+<source>Updating file %x</source>
+<target>Oppdaterer fil %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Overskriver symlinken %x</target>
+<source>Updating symbolic link %x</source>
+<target>Oppdaterer symbolsk link %x</target>
<source>Verifying file %x</source>
<target>Verifiserer filen %x</target>
@@ -580,6 +561,9 @@ Kommandoen utføres hvis:
<source>Synchronization completed successfully</source>
<target>Synkronisering gjennomført</target>
+<source>Cleaning up old log files...</source>
+<target>Fjerner gamle loggfiler</target>
+
<source>Stopped</source>
<target>Avbrutt</target>
@@ -631,6 +615,9 @@ Kommandoen utføres hvis:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync er oppdatert.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Kan ikke koble til FreeFileSync.org</target>
+
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Kunne ikke finne FreeFileSync's versjonsnummer online. Vil du kontrollere manuelt?</target>
@@ -715,9 +702,21 @@ Kommandoen utføres hvis:
<source>Start &comparison</source>
<target>Start &sammenligning</target>
+<source>C&omparison settings</source>
+<target>S&ammenligner instillinger</target>
+
+<source>&Filter settings</source>
+<target>&Filtrer instillinger</target>
+
+<source>S&ynchronization settings</source>
+<target>S&ynkroniserings-instillinger</target>
+
<source>Start &synchronization</source>
<target>Start &synkronisering</target>
+<source>&Actions</source>
+<target>&Handling</target>
+
<source>&Options</source>
<target>&Valg</target>
@@ -796,8 +795,8 @@ Kommandoen utføres hvis:
<source>Number of files and folders that will be deleted</source>
<target>Antall filer og mapper som slettes</target>
-<source>Number of files that will be overwritten</source>
-<target>Antall filer som overskrives</target>
+<source>Number of files that will be updated</source>
+<target>Antall filer som vil bli oppdatert</target>
<source>Number of files and folders that will be created</source>
<target>Antall filer og mapper som vil bli opprettet</target>
@@ -820,11 +819,20 @@ Kommandoen utføres hvis:
<source>Ignore time shift (in hours)</source>
<target>Ignorer tidsbytte (i timer)</target>
+<source>Consider file times with specified offset as equal</source>
+<target>Vurder filtidspunkt med spesifisert oppstilling som like</target>
+
<source>Handle daylight saving time</source>
<target>Behandle sommertid</target>
-<source>Symbolic links:</source>
-<target>Symbolsk link:</target>
+<source>Include symbolic links:</source>
+<target>Inkluder symbolske linker:</target>
+
+<source>Direct</source>
+<target>Direkte</target>
+
+<source>Follow</source>
+<target>Følg</target>
<source>More information</source>
<target>Mer informasjon</target>
@@ -856,9 +864,23 @@ Kommandoen utføres hvis:
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Angi filterregler til ekskludering av bestemte filer fra synkroniseringen. Filstier skal relatere til kildemappene.</target>
+<source>C&lear</source>
+<target>F&jern</target>
+
<source>Detect moved files</source>
<target>Gjennkjenn flyttede filer</target>
+<source>
+- Detection active after initial sync
+- Requires and creates database files
+- Not supported by all file systems
+</source>
+<target>
+- Detektering er aktiv etter første synkronisering
+- Krever og skaper databasefiler
+- Ikke støttet av alle filsystemer
+</target>
+
<source>Detect synchronization directions with the help of database files</source>
<target>Gjennkjenn synkretninger ved hjelp av databasefiler</target>
@@ -1019,7 +1041,7 @@ This guarantees a consistent state even in case of a serious error.
<target>&Standard</target>
<source>Source code written in C++ using:</source>
-<target>Kildekoden er skrevet i C++ med Hjelp fra:</target>
+<target>Kildekoden er skrevet i C++ med hjelp fra:</target>
<source>If you like FreeFileSync</source>
<target>Hvis du liker FreeFileSync</target>
@@ -1075,18 +1097,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Main Bar</source>
<target>Hovedlinje</target>
-<source>Start comparison</source>
-<target>Start sammenligning</target>
-
-<source>Comparison settings</source>
-<target>Analyseinnstillinger</target>
-
-<source>Synchronization settings</source>
-<target>Synkroniseringsinnstillinger</target>
-
-<source>Start synchronization</source>
-<target>Start synkronisering</target>
-
<source>Confirm</source>
<target>Bekreft</target>
@@ -1125,8 +1135,8 @@ This guarantees a consistent state even in case of a serious error.
<pluralform>Showing %y of %x rows</pluralform>
</source>
<target>
-<pluralform>Viser %y af 1 rekke</pluralform>
-<pluralform>Viser %y af %x rekker</pluralform>
+<pluralform>Viser %y av 1 rekke</pluralform>
+<pluralform>Viser %y av %x rekker</pluralform>
</target>
<source>Set direction:</source>
@@ -1237,11 +1247,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Vis filer som slettes på høyre side</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Vis filer som overskrives på venstre side</target>
+<source>Show files that will be updated on the left side</source>
+<target>Vis filer som vil bli oppdaters på venstre side</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Vis filer som overskrives på høyre side</target>
+<source>Show files that will be updated on the right side</source>
+<target>Vis filer som vil bli oppdatert på høyre side</target>
<source>Show files that won't be copied</source>
<target>Vis filer som ikke kopieres</target>
@@ -1378,15 +1388,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Oppret dine egne synkroniseringsregler.</target>
-<source>Exclude</source>
-<target>Ekskludér</target>
-
-<source>Direct</source>
-<target>Direkte</target>
-
-<source>Follow</source>
-<target>Følg</target>
-
<source>Today</source>
<target>I dag</target>
@@ -1483,6 +1484,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Kan ikke opprette mappen %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Kan ikke kopiere symolsk link %x til %y</target>
+
<source>Cannot find system function %x.</source>
<target>Kan ikke finne systemfunksjonen %x.</target>
@@ -1564,3 +1568,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Konfigureringsfilen %x er delvis innlastet</target>
+<source>Prepare installation</source>
+<target>Forbered installering</target>
+
+<source>Choose which components you want to install.</source>
+<target>Velg hva du vil installere</target>
+
+<source>Select installation type:</source>
+<target>Velg installasjonstype</target>
+
+<source>Local</source>
+<target>Lokal</target>
+
+<source>Portable</source>
+<target>Portabel (USB)</target>
+
+<source>recommended</source>
+<target>anbefalt</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Lagre innstillinger til "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registrer FreeFileSync filendelser</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Legg til i høyreklikkmeny</target>
+
+<source>Save settings in installation directory</source>
+<target>Lagre innstillinger i installasjonsmappen</target>
+
+<source>Do not write to Registry</source>
+<target>Ikke skriv til registeret</target>
+
+<source>Just copy the files</source>
+<target>Bare kopier filene</target>
+
+<source>Choose a directory for installation:</source>
+<target>Velg en mappe for installasjon:</target>
+
+<source>Create shortcuts:</source>
+<target>Opprett snarveier:</target>
+
+<source>Desktop</source>
+<target>Skrivebord</target>
+
+<source>Start menu</source>
+<target>Startmeny</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registrerer FreeFileSync filendelser</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Avregistrerer FreeFileSync filendelser</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync konfigurering</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync Batch Fil</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync Synkronisering</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/scottish_gaelic.lng b/FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng
index 14ff1dc5..90aeaa2b 100644
--- a/FreeFileSync/Build/Languages/scottish_gaelic.lng
+++ b/FreeFileSync/Build/Languages/outdated/scottish_gaelic.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Àireamh sam bith de phaidhrichean pasgain eile airson aon fhaidhle rèiteachaidh air a’ char as fhaide</target>
+<source>Open configuration for edit without executing.</source>
+<target></target>
+
<source>Cannot find the following folders:</source>
<target>Chan urrainn dhuinn na pasgain a leanas a lorg:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Gluais am faidhle a tha air an taobh deas</target>
-<source>Overwrite left item</source>
-<target>Sgrìobh thairis air an nì chlì</target>
+<source>Update left item</source>
+<target></target>
-<source>Overwrite right item</source>
-<target>Sgrìobh thairis air an nì deas</target>
+<source>Update right item</source>
+<target></target>
<source>Do nothing</source>
<target>Na dèan dad</target>
@@ -219,6 +222,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Cha ghabh am faidhle %x a lorg.</target>
+
<source>Database file %x is incompatible.</source>
<target>Chan eil am faidhle stòir-dhàta %x co-chòrdail.</target>
@@ -272,6 +278,9 @@
<source>Creating file %x</source>
<target>A’ cruthachadh an fhaidhle %x</target>
+<source>Saving file %x...</source>
+<target></target>
+
<source>Items processed:</source>
<target>Nithean a tha deiseil:</target>
@@ -301,9 +310,6 @@
<pluralform>%x snàithlean</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>A’ còdachadh fiosrachadh leudaichte an ama: %x</target>
-
<source>/sec</source>
<target>/diog</target>
@@ -325,9 +331,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Nach cleachd sibh an tionndadh 64 biot de FreeFileSync gus lethbhreacan-sgàile a chruthachadh air an t-siostam seo?</target>
-<source>Cannot load file %x.</source>
-<target>Cha ghabh am faidhle %x a lorg.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Chan urrainn dhuinn ainm an draibh airson %x a dhearbhadh.</target>
@@ -346,8 +349,8 @@
<source>Save &as...</source>
<target>Sàbhail &mar...</target>
-<source>&Quit</source>
-<target>&Fàg</target>
+<source>E&xit</source>
+<target></target>
<source>&File</source>
<target>&Faidhle</target>
@@ -441,6 +444,9 @@ Thèid an loidhne-àithne a chur gu dol:
<source>&Show error</source>
<target>&Seall a’ mhearachd</target>
+<source>&Quit</source>
+<target>&Fàg</target>
+
<source>Incorrect command line:</source>
<target>Loidhne-àithne chearr:</target>
@@ -486,11 +492,11 @@ Thèid an loidhne-àithne a chur gu dol:
<source>Creating folder %x</source>
<target>A’ cruthachadh a’ phasgain %x</target>
-<source>Overwriting file %x</source>
-<target>A’ sgrìobhadh thairis air an fhaidhle %x</target>
+<source>Updating file %x</source>
+<target></target>
-<source>Overwriting symbolic link %x</source>
-<target>A’ sgrìobhadh thairis air an symbolic link %x</target>
+<source>Updating symbolic link %x</source>
+<target></target>
<source>Verifying file %x</source>
<target>A’ dearbhadh an fhaidhle %x</target>
@@ -504,21 +510,21 @@ Thèid an loidhne-àithne a chur gu dol:
<source>Data verification error: %x and %y have different content.</source>
<target>Mearachd le dearbhadh an dàta: tha susbaint eadar-dhealaichte ann an %x agus %y.</target>
-<source>Cannot find folder %x.</source>
-<target>Chan urrainn dhuinn am pasgan %x a lorg</target>
-
<source>Target folder %x already existing.</source>
<target>Tha am pasgan-uidhe %x ann mu thràth.</target>
+<source>Cannot find folder %x.</source>
+<target>Chan urrainn dhuinn am pasgan %x a lorg</target>
+
<source>Target folder input field must not be empty.</source>
<target>Chan fhaod raon a’ phasgain a bhith falamh.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Cuir a-steach pasgan-targaide a chum versioning.</target>
-
<source>Source folder %x not found.</source>
<target>Cha deach am pasgan tùsail %x a lorg.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Cuir a-steach pasgan-targaide a chum versioning.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Tha còmstrithean aig na nithean a leanas fhathast is cha dèid an sioncronachadh:</target>
@@ -561,8 +567,8 @@ Thèid an loidhne-àithne a chur gu dol:
<source>Synchronization completed successfully</source>
<target>Chaidh a shioncronachadh</target>
-<source>Saving log file %x...</source>
-<target>A’ sàbhaladh faidhle an loga %x...</target>
+<source>Cleaning up old log files...</source>
+<target></target>
<source>Stopped</source>
<target>Chaidh stad a chur air</target>
@@ -617,8 +623,8 @@ Thèid an loidhne-àithne a chur gu dol:
<source>FreeFileSync is up to date.</source>
<target>Tha FreeFileSync cho ùr ’s a ghabhas.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Cha b’ urrainn dhuinn ceangal a dhèanamh ri Sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target></target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Chan urrainn dhuinn àireamh an tionndaidh làithrich aig FreeFileSync a lorg air loidhne. A bheil thu airson sùil a thoirt thu fhèin?</target>
@@ -704,9 +710,21 @@ Thèid an loidhne-àithne a chur gu dol:
<source>Start &comparison</source>
<target>Tòisich air a’ &choimheas</target>
+<source>C&omparison settings</source>
+<target></target>
+
+<source>&Filter settings</source>
+<target></target>
+
+<source>S&ynchronization settings</source>
+<target></target>
+
<source>Start &synchronization</source>
<target>Tòisich air an t-&sioncronachadh</target>
+<source>&Actions</source>
+<target></target>
+
<source>&Options</source>
<target>R&oghainnean</target>
@@ -785,8 +803,8 @@ Thèid an loidhne-àithne a chur gu dol:
<source>Number of files and folders that will be deleted</source>
<target>Àireamh nam faidhle ’s nam pasgan a thèid a sguabadh às</target>
-<source>Number of files that will be overwritten</source>
-<target>Àireamh nam faidhle a thèid sgrìobhadh thairis orra</target>
+<source>Number of files that will be updated</source>
+<target></target>
<source>Number of files and folders that will be created</source>
<target>Àireamh nam faidhle ’s nam pasgan a thèid a chruthachadh</target>
@@ -815,8 +833,14 @@ Thèid an loidhne-àithne a chur gu dol:
<source>Handle daylight saving time</source>
<target>Aire ri tìde an t-samhraidh</target>
-<source>Symbolic links:</source>
-<target>Ceanglaichean samhlachail:</target>
+<source>Include symbolic links:</source>
+<target></target>
+
+<source>Direct</source>
+<target>Dìreach</target>
+
+<source>Follow</source>
+<target>Lean</target>
<source>More information</source>
<target>Barrachd fiosrachaidh</target>
@@ -845,25 +869,21 @@ Thèid an loidhne-àithne a chur gu dol:
<source>Maximum:</source>
<target>Air a’ char as motha:</target>
-<source>C&lear</source>
-<target>Fala&mhaich</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Tagh riaghailteach criathraidh gus seòrsachan àraidh de dh’fhaidhlichean fhàgail às an t-sioncronachadh. Cuir a-steach slighean fhaidhlichean a-rèir paidhir an dà phasgan aca.</target>
+<source>C&lear</source>
+<target>Fala&mhaich</target>
+
<source>Detect moved files</source>
<target>Mothaich do dh’fhaidhlichean a chaidh a ghluasad</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
-<target>
-- Feumaidh seo faidhlichean stòir-dhàta ’s cruthaichidh seo faidhlichean mar sin
-- Bidh am mothachadh an gnìomh an dèidh a’ chiad sioncronachaidh
-- Chan eil gach siostam fhaidhlichean a’ cur taic ris
-</target>
+<target></target>
<source>Detect synchronization directions with the help of database files</source>
<target>Mothaich do chomhair an t-sioncronachaidh le taic o fhaidhlichean stòir-dhàta</target>
@@ -1075,27 +1095,15 @@ Nì seo cinnteach gum bi fuasgladh ann ma thachras mearachd mhòr.
<source>View Settings</source>
<target>Seall na roghainnean</target>
-<source>Overview</source>
-<target>Foir-shealladh</target>
-
<source>Configuration</source>
<target>Rèiteachadh</target>
+<source>Overview</source>
+<target>Foir-shealladh</target>
+
<source>Main Bar</source>
<target>Am prìomh-bhàr</target>
-<source>Start comparison</source>
-<target>Tòisich air a’ choimeasadh</target>
-
-<source>Comparison settings</source>
-<target>Roghainnean a’ choimeasaidh</target>
-
-<source>Synchronization settings</source>
-<target>Roghainnean an t-sioncronachaidh</target>
-
-<source>Start synchronization</source>
-<target>Tòisich air an t-sioncronachadh</target>
-
<source>Confirm</source>
<target>Dearbh</target>
@@ -1254,11 +1262,11 @@ Nì seo cinnteach gum bi fuasgladh ann ma thachras mearachd mhòr.
<source>Show files that will be deleted on the right side</source>
<target>Seall faidhlichean a thèid a sguabadh às air an taobh deas</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Seall faidhlichean a thèid a thar-sgrìobhadh air an taobh chlì</target>
+<source>Show files that will be updated on the left side</source>
+<target></target>
-<source>Show files that will be overwritten on right side</source>
-<target>Seall faidhlichean a thèid a thar-sgrìobhadh air an taobh deas</target>
+<source>Show files that will be updated on the right side</source>
+<target></target>
<source>Show files that won't be copied</source>
<target>Seall faidhlichean nach dèid lethbhreac a dhèanamh dhiubh</target>
@@ -1399,15 +1407,6 @@ Nì seo cinnteach gum bi fuasgladh ann ma thachras mearachd mhòr.
<source>Configure your own synchronization rules.</source>
<target>Sònraich riaghailtean sioncronachaidh thu fhèin.</target>
-<source>Exclude</source>
-<target>Dùin a-mach</target>
-
-<source>Direct</source>
-<target>Dìreach</target>
-
-<source>Follow</source>
-<target>Lean</target>
-
<source>Today</source>
<target>An-diugh</target>
@@ -1471,9 +1470,6 @@ Nì seo cinnteach gum bi fuasgladh ann ma thachras mearachd mhòr.
<source>Cannot monitor directory %x.</source>
<target>Chan urrainn dhuinn sùil a chumail air %x.</target>
-<source>Conversion error:</source>
-<target>Mearachd iompachaidh:</target>
-
<source>Cannot delete file %x.</source>
<target>Cha ghabh am faidhle %x a sguabadh às.</target>
@@ -1507,8 +1503,8 @@ Nì seo cinnteach gum bi fuasgladh ann ma thachras mearachd mhòr.
<source>Cannot create directory %x.</source>
<target>Cha ghabh am pasgan %x a chruthachadh.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Cha ghabh an symbolic link %x a chruthachadh</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target></target>
<source>Cannot find system function %x.</source>
<target>Chan urrainn dhuinn foincsean an t-siostaim %x a lorg.</target>
@@ -1597,3 +1593,72 @@ Nì seo cinnteach gum bi fuasgladh ann ma thachras mearachd mhòr.
<source>Configuration file %x loaded partially only.</source>
<target>Cha deach faidhle an rèiteachaidh %x a luchdadh gu tur.</target>
+<source>Prepare installation</source>
+<target></target>
+
+<source>Choose which components you want to install.</source>
+<target></target>
+
+<source>Select installation type:</source>
+<target></target>
+
+<source>Local</source>
+<target></target>
+
+<source>Portable</source>
+<target></target>
+
+<source>recommended</source>
+<target></target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target></target>
+
+<source>Register FreeFileSync file extensions</source>
+<target></target>
+
+<source>Create Explorer context menu entries</source>
+<target></target>
+
+<source>Save settings in installation directory</source>
+<target></target>
+
+<source>Do not write to Registry</source>
+<target></target>
+
+<source>Just copy the files</source>
+<target></target>
+
+<source>Choose a directory for installation:</source>
+<target></target>
+
+<source>Create shortcuts:</source>
+<target></target>
+
+<source>Desktop</source>
+<target></target>
+
+<source>Start menu</source>
+<target></target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target></target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target></target>
+
+<source>FreeFileSync Configuration</source>
+<target></target>
+
+<source>FreeFileSync Batch File</source>
+<target></target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target></target>
+
+<source>RealtimeSync Configuration</source>
+<target></target>
+
+<source>Edit with FreeFileSync</source>
+<target></target>
+
diff --git a/FreeFileSync/Build/Languages/slovenian.lng b/FreeFileSync/Build/Languages/outdated/slovenian.lng
index 5832b3f7..be8afc55 100644
--- a/FreeFileSync/Build/Languages/slovenian.lng
+++ b/FreeFileSync/Build/Languages/outdated/slovenian.lng
@@ -94,6 +94,9 @@
<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 edit without executing.</source>
+<target></target>
+
<source>Cannot find the following folders:</source>
<target>Ne morem najti naslednjih map:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Premakni datoteko na desno</target>
-<source>Overwrite left item</source>
-<target>Prepiši levi element</target>
+<source>Update left item</source>
+<target></target>
-<source>Overwrite right item</source>
-<target>Prepiši desni element</target>
+<source>Update right item</source>
+<target></target>
<source>Do nothing</source>
<target>Ne naredi niÄesar</target>
@@ -219,6 +222,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Ne morem naložiti datoteko %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Datoteka podatkovne baze %x je nekompatibilna.</target>
@@ -272,6 +278,9 @@
<source>Creating file %x</source>
<target>Ustvarjam datoteko %x</target>
+<source>Saving file %x...</source>
+<target></target>
+
<source>Items processed:</source>
<target>Obdelanih elementov:</target>
@@ -301,9 +310,6 @@
<pluralform>%x niti</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Podrobne informacije o Äasu enkodiranja: %x</target>
-
<source>/sec</source>
<target>/sek</target>
@@ -325,9 +331,6 @@
<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>
-<source>Cannot load file %x.</source>
-<target>Ne morem naložiti datoteko %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Ne morem doloÄiti ime nosilca za %x.</target>
@@ -346,8 +349,8 @@
<source>Save &as...</source>
<target>Shr&ani kot...</target>
-<source>&Quit</source>
-<target>&Zapri</target>
+<source>E&xit</source>
+<target></target>
<source>&File</source>
<target>&Datoteka</target>
@@ -441,6 +444,9 @@ Ukaz se sproži Äe:
<source>&Show error</source>
<target>&Pokaži napako</target>
+<source>&Quit</source>
+<target>&Zapri</target>
+
<source>Incorrect command line:</source>
<target>NapaÄna ukazna vrstica:</target>
@@ -486,11 +492,11 @@ Ukaz se sproži Äe:
<source>Creating folder %x</source>
<target>Ustvarjam mapo %x</target>
-<source>Overwriting file %x</source>
-<target>Prepisujem datoteko %x</target>
+<source>Updating file %x</source>
+<target></target>
-<source>Overwriting symbolic link %x</source>
-<target>Prepisujem simboliÄno povezavo %x</target>
+<source>Updating symbolic link %x</source>
+<target></target>
<source>Verifying file %x</source>
<target>Preverjam datoteko %x</target>
@@ -504,21 +510,21 @@ Ukaz se sproži Äe:
<source>Data verification error: %x and %y have different content.</source>
<target>Napaka pri preverjanju podatkov: %x in %y imata drugaÄno vsebino.</target>
-<source>Cannot find folder %x.</source>
-<target>Ne najdem mape %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Ciljna mapa %x že obstaja.</target>
+<source>Cannot find folder %x.</source>
+<target>Ne najdem mape %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Vnosno polje za ciljno mapo ne sme biti prazno.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Prosimo vnesite ciljno mapo za verzioniranje.</target>
-
<source>Source folder %x not found.</source>
<target>Izvorna mapa %x se ne najde.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Prosimo 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>
@@ -561,8 +567,8 @@ Ukaz se sproži Äe:
<source>Synchronization completed successfully</source>
<target>Sinhronizacija se je uspeÅ¡no konÄala</target>
-<source>Saving log file %x...</source>
-<target>Shranjujem datoteko beleženja %x...</target>
+<source>Cleaning up old log files...</source>
+<target></target>
<source>Stopped</source>
<target>Ustavljen</target>
@@ -617,8 +623,8 @@ Ukaz se sproži Äe:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync je posodobljen.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Ne morem se povezati na sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target></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>
@@ -704,9 +710,21 @@ Ukaz se sproži Äe:
<source>Start &comparison</source>
<target>ZaÄni &primerjavo</target>
+<source>C&omparison settings</source>
+<target></target>
+
+<source>&Filter settings</source>
+<target></target>
+
+<source>S&ynchronization settings</source>
+<target></target>
+
<source>Start &synchronization</source>
<target>ZaÄni &sinhnorizacijo</target>
+<source>&Actions</source>
+<target></target>
+
<source>&Options</source>
<target>&Možnosti</target>
@@ -785,8 +803,8 @@ 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 overwritten</source>
-<target>Å tevilo datotek, ki bodo prepisane</target>
+<source>Number of files that will be updated</source>
+<target></target>
<source>Number of files and folders that will be created</source>
<target>Å tevilo datotek in map, ki bodo ustvarjene</target>
@@ -815,8 +833,14 @@ Ukaz se sproži Äe:
<source>Handle daylight saving time</source>
<target>UpoÅ¡tevaj poletni in zimski Äas</target>
-<source>Symbolic links:</source>
-<target>SimboliÄne povezave:</target>
+<source>Include symbolic links:</source>
+<target></target>
+
+<source>Direct</source>
+<target>Neposredno</target>
+
+<source>Follow</source>
+<target>Sledi</target>
<source>More information</source>
<target>VeÄ informacij</target>
@@ -845,25 +869,21 @@ Ukaz se sproži Äe:
<source>Maximum:</source>
<target>Maksimum:</target>
-<source>C&lear</source>
-<target>&PoÄisti</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>
+<source>C&lear</source>
+<target>&PoÄisti</target>
+
<source>Detect moved files</source>
<target>Zaznaj premaknjene datoteke</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
-<target>
-- Zahteva in ustvari datoteke podatkovne baze
-- Zaznavane je aktivno po zaÄetnem sinhnoriziranju
-- Ni podprto s strani vseh datoteÄnih sistemov
-</target>
+<target></target>
<source>Detect synchronization directions with the help of database files</source>
<target>Zaznaj smer sinhnorizacije s pomoÄjo datotek podatkovne baze</target>
@@ -1075,27 +1095,15 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>View Settings</source>
<target>Nastavitve pogleda</target>
-<source>Overview</source>
-<target>Pregled</target>
-
<source>Configuration</source>
<target>Konfiguracija</target>
+<source>Overview</source>
+<target>Pregled</target>
+
<source>Main Bar</source>
<target>Glavna vrstica</target>
-<source>Start comparison</source>
-<target>ZaÄni primerjavo</target>
-
-<source>Comparison settings</source>
-<target>Nastavitve primerjanja</target>
-
-<source>Synchronization settings</source>
-<target>Nastavitve sinhronizacije</target>
-
-<source>Start synchronization</source>
-<target>ZaÄni sinhronizacijo</target>
-
<source>Confirm</source>
<target>Potrdi</target>
@@ -1254,11 +1262,11 @@ 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 overwritten on left side</source>
-<target>Prikaži datoteke, ki bodo prepisane na levi strani</target>
+<source>Show files that will be updated on the left side</source>
+<target></target>
-<source>Show files that will be overwritten on right side</source>
-<target>Prikaži datoteke, ki bodo prepisane na desni strani</target>
+<source>Show files that will be updated on the right side</source>
+<target></target>
<source>Show files that won't be copied</source>
<target>Prikaži datoteke, ki ne bodo kopirane</target>
@@ -1399,15 +1407,6 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Configure your own synchronization rules.</source>
<target>Konfigurirajte vaša lastna sinhronizacijska pravila.</target>
-<source>Exclude</source>
-<target>IzkljuÄi</target>
-
-<source>Direct</source>
-<target>Neposredno</target>
-
-<source>Follow</source>
-<target>Sledi</target>
-
<source>Today</source>
<target>Danes</target>
@@ -1471,9 +1470,6 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Cannot monitor directory %x.</source>
<target>Ne morem nadzorovati imenika %x.</target>
-<source>Conversion error:</source>
-<target>Napaka pri pretvorbi:</target>
-
<source>Cannot delete file %x.</source>
<target>Ne morem izbrisati datoteke %x.</target>
@@ -1507,8 +1503,8 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Cannot create directory %x.</source>
<target>Ne morem ustvariti imenika %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Ne morem ustvariti simboliÄne povezave %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target></target>
<source>Cannot find system function %x.</source>
<target>Ne morem najti sistemske funkcije %x.</target>
@@ -1597,3 +1593,72 @@ To zagotavlja konsistenco podatkov v primeru napake.
<source>Configuration file %x loaded partially only.</source>
<target>Nastavitvena datoteka %x naložena samo delno.</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>
+
+<source>Select installation type:</source>
+<target></target>
+
+<source>Local</source>
+<target>Lokalna</target>
+
+<source>Portable</source>
+<target>Prenosna</target>
+
+<source>recommended</source>
+<target>priporoÄena</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>
+
+<source>Create Explorer context menu entries</source>
+<target></target>
+
+<source>Save settings in installation directory</source>
+<target>Shrani nastavitve v namestitveni imenik</target>
+
+<source>Do not write to Registry</source>
+<target>Ne zapisuj v register</target>
+
+<source>Just copy the files</source>
+<target>Kopiraj samo datoteke</target>
+
+<source>Choose a directory for installation:</source>
+<target>Izberite imenik za namestitev:</target>
+
+<source>Create shortcuts:</source>
+<target>Ustvari bližnjice:</target>
+
+<source>Desktop</source>
+<target>Namizje</target>
+
+<source>Start menu</source>
+<target>Start meni</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registriram FreeFileSync datoteÄne konÄnice</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Odregistriram FreeFileSync datoteÄne konÄnice</target>
+
+<source>FreeFileSync Configuration</source>
+<target></target>
+
+<source>FreeFileSync Batch File</source>
+<target></target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target></target>
+
+<source>RealtimeSync Configuration</source>
+<target></target>
+
+<source>Edit with FreeFileSync</source>
+<target></target>
+
diff --git a/FreeFileSync/Build/Languages/outdated/ukrainian.lng b/FreeFileSync/Build/Languages/outdated/ukrainian.lng
index e8314f07..65091b8f 100644
--- a/FreeFileSync/Build/Languages/outdated/ukrainian.lng
+++ b/FreeFileSync/Build/Languages/outdated/ukrainian.lng
@@ -7,81 +7,6 @@
<plural_definition>n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2</plural_definition>
</header>
-<source>&Show</source>
-<target></target>
-
-<source>Show hidden dialogs and warning messages again?</source>
-<target></target>
-
-<source>Clear filter</source>
-<target></target>
-
-<source>Start comparison</source>
-<target></target>
-
-<source>Show all permanently hidden dialogs and warning messages again</source>
-<target></target>
-
-<source>Show hidden dialogs again</source>
-<target></target>
-
-<source>&Stop</source>
-<target></target>
-
-<source>Bytes copied:</source>
-<target></target>
-
-<source>&Pop-up</source>
-<target></target>
-
-<source>&Versioning</source>
-<target></target>
-
-<source>&Permanent</source>
-<target></target>
-
-<source>C&lear</source>
-<target></target>
-
-<source>Handle daylight saving time</source>
-<target></target>
-
-<source>Consider file times with specified offset as equal</source>
-<target></target>
-
-<source>Ignore time shift (in hours)</source>
-<target></target>
-
-<source>New</source>
-<target></target>
-
-<source>&Reset layout</source>
-<target></target>
-
-<source>Start &synchronization</source>
-<target></target>
-
-<source>Start &comparison</source>
-<target></target>
-
-<source>Clear local filter</source>
-<target></target>
-
-<source>Relative folder</source>
-<target></target>
-
-<source>Multiple folder pairs write to a common subfolder. Please review your configuration.</source>
-<target></target>
-
-<source>Cannot find folder %x.</source>
-<target></target>
-
-<source>&File</source>
-<target></target>
-
-<source>The following folder paths are dependent from each other:</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>З моменту оÑтанньої Ñинхронізації з обох Ñторін відбулиÑÑ Ð·Ð¼Ñ–Ð½Ð¸.</target>
@@ -172,6 +97,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Будь-Ñка кількіÑÑ‚ÑŒ альтернативних пар каталогів Ð´Ð»Ñ Ð½Ðµ більше одного конфігураційного файлу.</target>
+<source>Open configuration for edit without executing.</source>
+<target></target>
+
<source>Cannot find the following folders:</source>
<target>Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ такі папки:</target>
@@ -184,6 +112,9 @@
<source>The corresponding folder will be considered as empty.</source>
<target>Відповідна папка буде вважатиÑÑ Ð¿Ð¾Ñ€Ð¾Ð¶Ð½ÑŒÐ¾ÑŽ.</target>
+<source>The following folder paths are dependent from each other:</source>
+<target></target>
+
<source>File %x has an invalid date.</source>
<target>Файл %x має неіÑнуючу дату.</target>
@@ -259,11 +190,11 @@
<source>Move file on right</source>
<target>ПереміÑтити файли праворуч</target>
-<source>Overwrite left item</source>
-<target>ПерезапиÑати елемент ліворуч</target>
+<source>Update left item</source>
+<target></target>
-<source>Overwrite right item</source>
-<target>ПерезапиÑати елемент праворуч</target>
+<source>Update right item</source>
+<target></target>
<source>Do nothing</source>
<target>Ðічого не робити</target>
@@ -348,6 +279,9 @@
<source>Creating file %x</source>
<target>Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ %x</target>
+<source>Saving file %x...</source>
+<target></target>
+
<source>Items processed:</source>
<target>Елементів оброблено:</target>
@@ -376,9 +310,6 @@
<pluralform>%x нитей виконаннÑ</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¾Ñ— інформації про чаÑ: %x</target>
-
<source>/sec</source>
<target>/Ñек</target>
@@ -418,8 +349,11 @@
<source>Save &as...</source>
<target>Зберегти &Ñк...</target>
-<source>&Quit</source>
-<target>&Вихід</target>
+<source>E&xit</source>
+<target></target>
+
+<source>&File</source>
+<target></target>
<source>&View help</source>
<target>&ПереглÑд довідки</target>
@@ -510,6 +444,9 @@ The command is triggered if:
<source>&Show error</source>
<target>&Показати помилку</target>
+<source>&Quit</source>
+<target>&Вихід</target>
+
<source>Incorrect command line:</source>
<target>Ðеправильний командний Ñ€Ñдок:</target>
@@ -555,11 +492,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸ %x</target>
-<source>Overwriting file %x</source>
-<target>ÐŸÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ñƒ %x</target>
+<source>Updating file %x</source>
+<target></target>
-<source>Overwriting symbolic link %x</source>
-<target>ÐŸÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ñимвольного поÑÐ¸Ð»Ð°Ð½Ð½Ñ %x</target>
+<source>Updating symbolic link %x</source>
+<target></target>
<source>Verifying file %x</source>
<target>Перевірка файлу %x</target>
@@ -576,6 +513,9 @@ The command is triggered if:
<source>Target folder %x already existing.</source>
<target>Цільова папка %x вже Ñ–Ñнує.</target>
+<source>Cannot find folder %x.</source>
+<target></target>
+
<source>Target folder input field must not be empty.</source>
<target>Поле цільової папки не повинно бути порожнім.</target>
@@ -600,6 +540,9 @@ The command is triggered if:
<source>Available:</source>
<target>ДоÑтупно:</target>
+<source>Multiple folder pairs write to a common subfolder. Please review your configuration.</source>
+<target></target>
+
<source>Synchronizing folder pair:</source>
<target>Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð¿Ð°Ñ€Ð¸ папок:</target>
@@ -624,8 +567,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ ÑƒÑпішно завершена</target>
-<source>Saving log file %x...</source>
-<target>Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° журналу %x...</target>
+<source>Cleaning up old log files...</source>
+<target></target>
<source>Stopped</source>
<target>Зупинено</target>
@@ -679,8 +622,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>У Ð’Ð°Ñ Ð½Ð°Ð¹Ð½Ð¾Ð²Ñ–ÑˆÐ° верÑÑ–Ñ FreeFileSync.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Ðе можна з’єднатиÑÑ Ð· sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target></target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ номер поточної верÑÑ–Ñ— FreeFileSync онлайн. Бажаєте перевірити вручну?</target>
@@ -700,6 +643,9 @@ The command is triggered if:
<source>Name</source>
<target>Ðазва</target>
+<source>Relative folder</source>
+<target></target>
+
<source>Base folder</source>
<target>Базова папка</target>
@@ -739,6 +685,9 @@ The command is triggered if:
<source>Remove local settings</source>
<target>Вилучити локальні налаштуваннÑ</target>
+<source>Clear local filter</source>
+<target></target>
+
<source>Copy</source>
<target>Копіювати</target>
@@ -757,6 +706,24 @@ The command is triggered if:
<source>Save as &batch job...</source>
<target>Зберегти Ñк &пакетне завданнÑ</target>
+<source>Start &comparison</source>
+<target></target>
+
+<source>C&omparison settings</source>
+<target></target>
+
+<source>&Filter settings</source>
+<target></target>
+
+<source>S&ynchronization settings</source>
+<target></target>
+
+<source>Start &synchronization</source>
+<target></target>
+
+<source>&Actions</source>
+<target></target>
+
<source>&Options</source>
<target>&Опції</target>
@@ -766,6 +733,9 @@ The command is triggered if:
<source>&Find...</source>
<target>&Знайти...</target>
+<source>&Reset layout</source>
+<target></target>
+
<source>&Export file list...</source>
<target>&ЕкÑпортувати ÑпиÑок файлів...</target>
@@ -808,6 +778,9 @@ The command is triggered if:
<source>Match case</source>
<target>Враховувати регіÑÑ‚Ñ€</target>
+<source>New</source>
+<target></target>
+
<source>Open...</source>
<target>Відкрити...</target>
@@ -829,8 +802,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>КількіÑÑ‚ÑŒ файлів Ñ– папок, Ñкі будуть вилучені</target>
-<source>Number of files that will be overwritten</source>
-<target>КількіÑÑ‚ÑŒ файлів, Ñкі будуть перезапиÑані</target>
+<source>Number of files that will be updated</source>
+<target></target>
<source>Number of files and folders that will be created</source>
<target>КількіÑÑ‚ÑŒ файлів Ñ– папок, Ñкі будуть Ñтворені</target>
@@ -850,8 +823,23 @@ The command is triggered if:
<source>Identify equal files by comparing the file content.</source>
<target>Визначити однакові файли порівнюючи Ñ—Ñ… вміÑÑ‚.</target>
-<source>Symbolic links:</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>Direct</source>
+<target>ПрÑмо</target>
+
+<source>Follow</source>
+<target>ПоÑлідовно</target>
<source>More information</source>
<target>Додаткова інформаціÑ</target>
@@ -883,19 +871,18 @@ The command is triggered if:
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Виберіть правила фільтрації Ð´Ð»Ñ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´ÐµÑких файлів із Ñинхронізації. Введіть шлÑхи файлів відноÑно відповідної пари папок.</target>
+<source>C&lear</source>
+<target></target>
+
<source>Detect moved files</source>
<target>ВиÑвлÑти переміщені файли</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
-<target>
-- Вимагає Ñ– Ñтворює файли бази даних
-- Ðктивне ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð¿ÐµÑ€Ð²Ð¸Ð½Ð½Ð¾Ñ— Ñинхронізації
-- ПідтримуєтьÑÑ Ð½Ðµ вÑіма файловими ÑиÑтемами
-</target>
+<target></target>
<source>Detect synchronization directions with the help of database files</source>
<target>Визначити напрÑмок Ñинхронізації за допомогою файлів баз даних</target>
@@ -903,6 +890,9 @@ The command is triggered if:
<source>Delete files:</source>
<target>Вилучити файли:</target>
+<source>&Permanent</source>
+<target></target>
+
<source>Delete or overwrite files permanently</source>
<target>Вилучати чи перезапиÑати файли назавжди</target>
@@ -912,6 +902,9 @@ The command is triggered if:
<source>Back up deleted and overwritten files in the recycle bin</source>
<target>Резервно зберегти вилучені та перезаиÑані файли в Корзині</target>
+<source>&Versioning</source>
+<target></target>
+
<source>Move files to a user-defined folder</source>
<target>ПереміÑтити файли у визначену кориÑтувачем папку</target>
@@ -924,6 +917,9 @@ The command is triggered if:
<source>Hide all error and warning messages</source>
<target>Приховати вÑÑ– помилки Ñ– Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· попередженнÑми</target>
+<source>&Pop-up</source>
+<target></target>
+
<source>Show pop-up on errors or warnings</source>
<target>Показувати виринаючі вікна при помилках та попередженнÑÑ…</target>
@@ -957,6 +953,9 @@ The command is triggered if:
<source>Minimize to notification area</source>
<target>Згорнути в облаÑÑ‚ÑŒ повідомлень</target>
+<source>Bytes copied:</source>
+<target></target>
+
<source>Close</source>
<target>Замкнути</target>
@@ -969,6 +968,9 @@ The command is triggered if:
<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>
+<source>&Stop</source>
+<target></target>
+
<source>Stop synchronization at first error</source>
<target>Зупинити Ñинхронізацію при першій помилці</target>
@@ -1035,6 +1037,12 @@ This guarantees a consistent state even in case of a serious error.
<source>Description</source>
<target>ОпиÑ</target>
+<source>Show hidden dialogs again</source>
+<target></target>
+
+<source>Show all permanently hidden dialogs and warning messages again</source>
+<target></target>
+
<source>&Default</source>
<target>&За замовчуваннÑм</target>
@@ -1086,24 +1094,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду</target>
-<source>Overview</source>
-<target>ОглÑд</target>
-
<source>Configuration</source>
<target>ÐалаштуваннÑ</target>
+<source>Overview</source>
+<target>ОглÑд</target>
+
<source>Main Bar</source>
<target>Головна панель</target>
-<source>Comparison settings</source>
-<target>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ</target>
-
-<source>Synchronization settings</source>
-<target>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñинхронізації</target>
-
-<source>Start synchronization</source>
-<target>Розпочати Ñинхронізацію</target>
-
<source>Confirm</source>
<target>Підтвердити</target>
@@ -1222,6 +1221,9 @@ This guarantees a consistent state even in case of a serious error.
<source>Synchronization Settings</source>
<target>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ—</target>
+<source>Clear filter</source>
+<target></target>
+
<source>Show files that exist on left side only</source>
<target>Показати файли, Ñкі Ñ” тільки ліворуч</target>
@@ -1255,11 +1257,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Показати файли, Ñкі будуть вилучені праворуч</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Показати файли, Ñкі будуть перезапиÑані ліворуч</target>
+<source>Show files that will be updated on the left side</source>
+<target></target>
-<source>Show files that will be overwritten on right side</source>
-<target>Показати файли, Ñкі будуть перезапиÑані праворуч</target>
+<source>Show files that will be updated on the right side</source>
+<target></target>
<source>Show files that won't be copied</source>
<target>Показати файли, Ñкі не будуть зкопійовані</target>
@@ -1380,6 +1382,12 @@ This guarantees a consistent state even in case of a serious error.
<source>- Other side's counterpart to %item_folder%</source>
<target>- Елемент з протилежної Ñторони до %item_folder%</target>
+<source>Show hidden dialogs and warning messages again?</source>
+<target></target>
+
+<source>&Show</source>
+<target></target>
+
<source>Identify and propagate changes on both sides. Deletions, moves and conflicts are detected automatically using a database.</source>
<target>ВиÑвити та поширити зміни на обидві Ñторони. ВидаленнÑ, Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° конфлікти визначаютьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ викориÑтовуючи базу даних.</target>
@@ -1392,15 +1400,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Ðалаштувати влаÑні правила Ñинхронізації.</target>
-<source>Exclude</source>
-<target>Виключити</target>
-
-<source>Direct</source>
-<target>ПрÑмо</target>
-
-<source>Follow</source>
-<target>ПоÑлідовно</target>
-
<source>Today</source>
<target>Сьогодні</target>
@@ -1464,9 +1463,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Ðе вдаєтьÑÑ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŽÐ²Ð°Ñ‚Ð¸ каталог %x.</target>
-<source>Conversion error:</source>
-<target>Помилка перетвореннÑ:</target>
-
<source>Cannot delete file %x.</source>
<target>Ðе вдаєтьÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ файл %x.</target>
@@ -1500,8 +1496,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Ðе вдаєтьÑÑ Ñтворити каталогу %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Ðе вдаєтьÑÑ Ñтворити Ñимвольного поÑÐ¸Ð»Ð°Ð½Ð½Ñ %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target></target>
<source>Cannot find system function %x.</source>
<target>Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ÑиÑтемної функції %x.</target>
@@ -1587,3 +1583,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Файл конфігурації %x завантажено лише чаÑтково.</target>
+<source>Prepare installation</source>
+<target>Підготовка інÑталÑції</target>
+
+<source>Choose which components you want to install.</source>
+<target>Виберіть Ñкі компоненти ви хочете вÑтановити.</target>
+
+<source>Select installation type:</source>
+<target></target>
+
+<source>Local</source>
+<target>Локальна</target>
+
+<source>Portable</source>
+<target>Портативна</target>
+
+<source>recommended</source>
+<target>рекомендовано</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Зберегти Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð² "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>ЗареєÑтрувати Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target></target>
+
+<source>Save settings in installation directory</source>
+<target>Зберегти Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ каталозі вÑтановленнÑ</target>
+
+<source>Do not write to Registry</source>
+<target>Ðе запиÑувати у РеєÑÑ‚Ñ€</target>
+
+<source>Just copy the files</source>
+<target>ПроÑто зкопіювати файли</target>
+
+<source>Choose a directory for installation:</source>
+<target>Виберіть каталог Ð´Ð»Ñ Ð²ÑтановленнÑ:</target>
+
+<source>Create shortcuts:</source>
+<target>Створити Ñрлики:</target>
+
+<source>Desktop</source>
+<target>Робочий Ñтіл</target>
+
+<source>Start menu</source>
+<target>Меню ПуÑк</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>РеєÑтрую Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Вилучаю реєÑтрацію Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target></target>
+
+<source>FreeFileSync Batch File</source>
+<target></target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target></target>
+
+<source>RealtimeSync Configuration</source>
+<target></target>
+
+<source>Edit with FreeFileSync</source>
+<target></target>
+
diff --git a/FreeFileSync/Build/Languages/polish.lng b/FreeFileSync/Build/Languages/polish.lng
index 6aac661e..f5aac64e 100644
--- a/FreeFileSync/Build/Languages/polish.lng
+++ b/FreeFileSync/Build/Languages/polish.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Dowolna liczba alternatywnych par katalogów dla najwyżej jednego pliku konfiguracyjnego.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Otwórz konfigurację do edycji bez uruchamiania synchronizacji.</target>
+
<source>Cannot find the following folders:</source>
<target>Nie można znaleźć następujących katalogów:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>PrzenieÅ› plik na prawÄ… stronÄ™</target>
-<source>Overwrite left item</source>
-<target>Nadpisz lewy element</target>
+<source>Update left item</source>
+<target>Aktualizuj lewy element</target>
-<source>Overwrite right item</source>
-<target>Nadpisz prawy element</target>
+<source>Update right item</source>
+<target>Aktualizuj prawy element</target>
<source>Do nothing</source>
<target>Nie rób nic</target>
@@ -273,6 +276,9 @@
<source>Creating file %x</source>
<target>Tworzenie pliku %x</target>
+<source>Saving file %x...</source>
+<target>Zapisywanie pliku %x...</target>
+
<source>Items processed:</source>
<target>Przetworzone elementy:</target>
@@ -301,9 +307,6 @@
<pluralform>%x wątków</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Odkodowywanie rozszerzonych informacji o czasie: %x</target>
-
<source>/sec</source>
<target>/sekundÄ™</target>
@@ -343,8 +346,8 @@
<source>Save &as...</source>
<target>&Zapisz jako...</target>
-<source>&Quit</source>
-<target>Zam&knij</target>
+<source>E&xit</source>
+<target>&Wyjście</target>
<source>&File</source>
<target>&Plik</target>
@@ -438,6 +441,9 @@ Komenda jest wykonywana gdy:
<source>&Show error</source>
<target>Pokaż &błędy</target>
+<source>&Quit</source>
+<target>Zam&knij</target>
+
<source>Incorrect command line:</source>
<target>Niepoprawne polecenie:</target>
@@ -483,11 +489,11 @@ Komenda jest wykonywana gdy:
<source>Creating folder %x</source>
<target>Tworzenie folderu %x</target>
-<source>Overwriting file %x</source>
-<target>Nadpisywanie pliku %x</target>
+<source>Updating file %x</source>
+<target>Aktualizowanie pliku %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Nadpisywanie dowiÄ…zania symbolicznego %x</target>
+<source>Updating symbolic link %x</source>
+<target>Aktualizowanie dowiÄ…zania symbolicznego %x</target>
<source>Verifying file %x</source>
<target>Weryfikowanie pliku %x</target>
@@ -544,7 +550,7 @@ Komenda jest wykonywana gdy:
<target>nazwa zadania</target>
<source>Synchronization stopped</source>
-<target>Synchronizacja zatrzymana</target>
+<target>Synchronizacja przerwana</target>
<source>Synchronization completed with errors</source>
<target>Synchronizacja zakończona z błędami</target>
@@ -558,8 +564,8 @@ Komenda jest wykonywana gdy:
<source>Synchronization completed successfully</source>
<target>Synchronizacja zakończona pomyślnie</target>
-<source>Saving log file %x...</source>
-<target>Zapisywanie pliku logów %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Usuwanie starych plików logów...</target>
<source>Stopped</source>
<target>Zatrzymana</target>
@@ -613,8 +619,8 @@ Komenda jest wykonywana gdy:
<source>FreeFileSync is up to date.</source>
<target>Posiadasz aktualnÄ… wersjÄ™ FreeFileSync.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Nie można się połączyć z sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Nie można połączyć się z 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>
@@ -700,9 +706,21 @@ Komenda jest wykonywana gdy:
<source>Start &comparison</source>
<target>Rozpo&cznij porównywanie</target>
+<source>C&omparison settings</source>
+<target>Ustawienia &porównywania</target>
+
+<source>&Filter settings</source>
+<target>Ustawienia &filtra</target>
+
+<source>S&ynchronization settings</source>
+<target>U&stawienia synchronizacji</target>
+
<source>Start &synchronization</source>
<target>Rozpocznij &synchronizacjÄ™</target>
+<source>&Actions</source>
+<target>&akcje</target>
+
<source>&Options</source>
<target>&Opcje</target>
@@ -781,8 +799,8 @@ Komenda jest wykonywana gdy:
<source>Number of files and folders that will be deleted</source>
<target>Liczba plików i katalogów, które zostaną usunięte</target>
-<source>Number of files that will be overwritten</source>
-<target>Liczba plików, które zostaną nadpisane</target>
+<source>Number of files that will be updated</source>
+<target>Liczba plików, która będą zaktualizowane</target>
<source>Number of files and folders that will be created</source>
<target>Liczba plików i katalogów, które zostaną utworzone</target>
@@ -811,8 +829,14 @@ Komenda jest wykonywana gdy:
<source>Handle daylight saving time</source>
<target>Uwzględniaj przesunięcie czasu</target>
-<source>Symbolic links:</source>
-<target>DowiÄ…zania symboliczne:</target>
+<source>Include symbolic links:</source>
+<target>Uwzględniaj dowiązania symboliczne</target>
+
+<source>Direct</source>
+<target>Bezpośrednio</target>
+
+<source>Follow</source>
+<target>Podążaj</target>
<source>More information</source>
<target>Więcej informacji</target>
@@ -841,24 +865,24 @@ Komenda jest wykonywana gdy:
<source>Maximum:</source>
<target>Maksymalny:</target>
-<source>C&lear</source>
-<target>&Wyczyść</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Określ reguły filtrowania w celu wykluczenia niektórych plików z synchronizacji. Ścieżki plików muszą być relatywne do podanych par katalogów.</target>
+<source>C&lear</source>
+<target>&Wyczyść</target>
+
<source>Detect moved files</source>
<target>Wykryj przeniesione pliki.</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Wymagane utworzenie pliku bazy danych
-- Funkcja aktywna po pierwszej synchronizacji
-- Niewspierany przez wszystkie systemy plików
+- Wykrywanie aktywne po pierwszej synchronizacji
+- Wymaga utworzenia plików bazy danych
+- Nie jest wspierana przez wszystkie systemy plików
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1071,27 +1095,15 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>View Settings</source>
<target>Ustawienia widoku</target>
-<source>Overview</source>
-<target>PrzeglÄ…d</target>
-
<source>Configuration</source>
<target>Konfiguracja</target>
+<source>Overview</source>
+<target>PrzeglÄ…d</target>
+
<source>Main Bar</source>
<target>Główny pasek</target>
-<source>Start comparison</source>
-<target>Rozpocznij porównywanie</target>
-
-<source>Comparison settings</source>
-<target>Ustawienia porównywania</target>
-
-<source>Synchronization settings</source>
-<target>Ustawienia synchronizacji</target>
-
-<source>Start synchronization</source>
-<target>Rozpocznij synchronizacjÄ™</target>
-
<source>Confirm</source>
<target>Potwierdź</target>
@@ -1246,11 +1258,11 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Show files that will be deleted on the right side</source>
<target>Pokaż pliki, które będą usunięte po prawej stronie</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Pokaż pliki, które zostaną nadpisane po lewej stronie</target>
+<source>Show files that will be updated on the left side</source>
+<target>Pokaż pliki, które będą zaktualizowane po lewej stronie</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Pokaż pliki, które zostaną nadpisane po prawej stronie</target>
+<source>Show files that will be updated on the right side</source>
+<target>Pokaż pliki, które będą zaktualizowane po prawej stronie</target>
<source>Show files that won't be copied</source>
<target>Pokaż pliki, które nie będą kopiowane</target>
@@ -1389,15 +1401,6 @@ 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>Exclude</source>
-<target>Wyklucz</target>
-
-<source>Direct</source>
-<target>Bezpośrednio</target>
-
-<source>Follow</source>
-<target>Podążaj</target>
-
<source>Today</source>
<target>Dzisiaj</target>
@@ -1461,9 +1464,6 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Cannot monitor directory %x.</source>
<target>Nie można monitorować katalogu %x.</target>
-<source>Conversion error:</source>
-<target>BÅ‚Ä…d konwersji:</target>
-
<source>Cannot delete file %x.</source>
<target>Nie można usunąć pliku %x.</target>
@@ -1497,8 +1497,8 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Cannot create directory %x.</source>
<target>Nie można utworzyć katalogu %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Nie można utworzyć dowiązania symbolicznego dla %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Nie można skopiować linku symbolicznego %x do %y.</target>
<source>Cannot find system function %x.</source>
<target>Nie można odnaleźć funkcji systemowej %x.</target>
@@ -1584,3 +1584,72 @@ program kopiuje zawartość do pliku tymczasowego (*.ffs_tmp), a następnie nadp
<source>Configuration file %x loaded partially only.</source>
<target>Plik konfiguracyjny %x został wczytany tylko częściowo.</target>
+<source>Prepare installation</source>
+<target>Przygotuj instalacjÄ™</target>
+
+<source>Choose which components you want to install.</source>
+<target>Określ komponenty do instalacji.</target>
+
+<source>Select installation type:</source>
+<target>Typ instalacji:</target>
+
+<source>Local</source>
+<target>Lokalna</target>
+
+<source>Portable</source>
+<target>Przenośna</target>
+
+<source>recommended</source>
+<target>rekomendowana</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Zapisuje ustawienia do "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Tworzy powiązania plików z programem FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Integracja z menu kontekstowym Windows Explorer</target>
+
+<source>Save settings in installation directory</source>
+<target>Zapisz ustawienia w katalogu instalacyjnym</target>
+
+<source>Do not write to Registry</source>
+<target>Nie tworzy wpisów w rejestrze</target>
+
+<source>Just copy the files</source>
+<target>Kopiuje tylko pliki</target>
+
+<source>Choose a directory for installation:</source>
+<target>Wybierz katalog docelowy:</target>
+
+<source>Create shortcuts:</source>
+<target>Utwórz skróty:</target>
+
+<source>Desktop</source>
+<target>Na Pulpicie</target>
+
+<source>Start menu</source>
+<target>Menu Start</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Rejestrowanie rozszerzeń plików FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Usuwanie rozszerzeń plików FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Konfiguracja FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Plik wsadowy FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>Baza danych FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Konfiguracja RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Edytuj przy użyciu FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/portuguese.lng b/FreeFileSync/Build/Languages/portuguese.lng
index 662c1cdf..306129ae 100644
--- a/FreeFileSync/Build/Languages/portuguese.lng
+++ b/FreeFileSync/Build/Languages/portuguese.lng
@@ -1,6 +1,6 @@
<header>
<language>Português</language>
- <translator>Carlos Balseiro</translator>
+ <translator>Miguel Balseiro</translator>
<locale>pt_PT</locale>
<image>flag_portugal.png</image>
<plural_count>2</plural_count>
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Qualquer número de pares de directórios alternativos para apenas um ficheiro de configuração.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Abrir a configuração para editar sem executar.</target>
+
<source>Cannot find the following folders:</source>
<target>Não é possível encontrar as seguintes pastas:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Mover ficheiro à direita</target>
-<source>Overwrite left item</source>
-<target>Substituir item da esquerda</target>
+<source>Update left item</source>
+<target>Atualizar item esquerdo</target>
-<source>Overwrite right item</source>
-<target>Substituir item da direita</target>
+<source>Update right item</source>
+<target>Atualizar item direito</target>
<source>Do nothing</source>
<target>Não fazer nada</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Não é possível carregar o ficheiro %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Base de dados %x não é compatível.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Criar ficheiro %x</target>
+<source>Saving file %x...</source>
+<target>Guardar ficheiro %x...</target>
+
<source>Items processed:</source>
<target>Elementos processados:</target>
@@ -295,9 +304,6 @@
<pluralform>%x threads</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>A codificar dados temporais extendidos: %x</target>
-
<source>/sec</source>
<target>/seg</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Utilize a versão 64-bit do FreeFileSync para criar cópias sombra neste sistema.</target>
-<source>Cannot load file %x.</source>
-<target>Não é possível carregar o ficheiro %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Não é possível determinar o nome do volume para %x.</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>Guardar &como...</target>
-<source>&Quit</source>
-<target>&Sair</target>
+<source>E&xit</source>
+<target>S&air</target>
<source>&File</source>
<target>&Ficheiro</target>
@@ -435,6 +438,9 @@ O comando é executado se:
<source>&Show error</source>
<target>Mostrar &erro</target>
+<source>&Quit</source>
+<target>&Sair</target>
+
<source>Incorrect command line:</source>
<target>Linha de comandos incorrecta:</target>
@@ -480,11 +486,11 @@ O comando é executado se:
<source>Creating folder %x</source>
<target>Criar pasta %x</target>
-<source>Overwriting file %x</source>
-<target>Substituir ficheiro %x</target>
+<source>Updating file %x</source>
+<target>Atualizar ficheiro %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Substituir link simbólico %x</target>
+<source>Updating symbolic link %x</source>
+<target>Atualizar link simbólico %x</target>
<source>Verifying file %x</source>
<target>A verificar ficheiro %x</target>
@@ -498,21 +504,21 @@ O comando é executado se:
<source>Data verification error: %x and %y have different content.</source>
<target>Erro de verificação de dados: %x e %y têm conteúdo diferente.</target>
-<source>Cannot find folder %x.</source>
-<target>Não é possível encontrar a pasta %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Directório de destino %x já existe.</target>
+<source>Cannot find folder %x.</source>
+<target>Não é possível encontrar a pasta %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Campo de directório de destino não deve estar vazio.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Introduza uma pasta de destino para o controlo de versões.</target>
-
<source>Source folder %x not found.</source>
<target>Directório %x não encontrado.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Introduza uma pasta de destino para o controlo de versões.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Os seguintes itens têm conflitos não resolvidos, e não serão sincronizados:</target>
@@ -555,8 +561,8 @@ O comando é executado se:
<source>Synchronization completed successfully</source>
<target>Sincronização completa com sucesso</target>
-<source>Saving log file %x...</source>
-<target>A guardar ficheiro log %x...</target>
+<source>Cleaning up old log files...</source>
+<target>A limpar ficheiros log antigos...</target>
<source>Stopped</source>
<target>Parado</target>
@@ -609,8 +615,8 @@ O comando é executado se:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync está actualizado.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Não é possível ligar a sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Não é possível ligar a 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>
@@ -696,9 +702,21 @@ O comando é executado se:
<source>Start &comparison</source>
<target>Iniciar &comparaçao</target>
+<source>C&omparison settings</source>
+<target>Opções de c&omparação</target>
+
+<source>&Filter settings</source>
+<target>Opções de &filtros</target>
+
+<source>S&ynchronization settings</source>
+<target>Opções de s&incronização</target>
+
<source>Start &synchronization</source>
<target>Iniciar &sincronização</target>
+<source>&Actions</source>
+<target>&Acções</target>
+
<source>&Options</source>
<target>&Opções</target>
@@ -777,8 +795,8 @@ O comando é executado se:
<source>Number of files and folders that will be deleted</source>
<target>Número de ficheiros e pastas a ser eliminados</target>
-<source>Number of files that will be overwritten</source>
-<target>Número de ficheiros substituidos</target>
+<source>Number of files that will be updated</source>
+<target>Número de ficheiros a ser atualizados</target>
<source>Number of files and folders that will be created</source>
<target>Número de ficheiros e pastas a ser criados</target>
@@ -807,8 +825,14 @@ O comando é executado se:
<source>Handle daylight saving time</source>
<target>Lidar com horário de verão</target>
-<source>Symbolic links:</source>
-<target>Links simbólicos:</target>
+<source>Include symbolic links:</source>
+<target>Incluir links simbólicos:</target>
+
+<source>Direct</source>
+<target>Direto</target>
+
+<source>Follow</source>
+<target>Seguir</target>
<source>More information</source>
<target>Mais informação</target>
@@ -837,23 +861,23 @@ O comando é executado se:
<source>Maximum:</source>
<target>Máximo</target>
-<source>C&lear</source>
-<target>&Limpar</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Seleccionar regras de filtro para excluir certos ficheiros da sincronização. Insira os caminhos relativos ao par de directórios correspondente.</target>
+<source>C&lear</source>
+<target>&Limpar</target>
+
<source>Detect moved files</source>
<target>Detectar ficheiros movidos</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Requer o uso de base de dados (cria ficheiro)
-- Detecção activa após sincronização inicial
+- Detecção ativa após sincronização inicial
+- Requer e cria ficheiro de base de dados
- Não é suportado por todos os sistemas de ficheiros
</target>
@@ -1067,27 +1091,15 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>View Settings</source>
<target>Ver Opções</target>
-<source>Overview</source>
-<target>Vista</target>
-
<source>Configuration</source>
<target>Configuração</target>
+<source>Overview</source>
+<target>Vista</target>
+
<source>Main Bar</source>
<target>Barra principal</target>
-<source>Start comparison</source>
-<target>Iniciar comparação</target>
-
-<source>Comparison settings</source>
-<target>Opções de comparação</target>
-
-<source>Synchronization settings</source>
-<target>Parametros de sincronização</target>
-
-<source>Start synchronization</source>
-<target>Iniciar a sincronização</target>
-
<source>Confirm</source>
<target>Confirmar</target>
@@ -1238,11 +1250,11 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Show files that will be deleted on the right side</source>
<target>Mostrar ficheiros a ser apagados à direita</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Mostrar ficheiros a ser substituidos do lado esquerdo</target>
+<source>Show files that will be updated on the left side</source>
+<target>Mostrar ficheiros a ser atualizados à esquerda</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Mostrar ficheiros a ser substituidos do lado direito</target>
+<source>Show files that will be updated on the right side</source>
+<target>Mostrar ficheiros a ser atualizados à direita</target>
<source>Show files that won't be copied</source>
<target>Mostrar ficheiros que não serão copiados</target>
@@ -1379,15 +1391,6 @@ 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>Exclude</source>
-<target>Excluir</target>
-
-<source>Direct</source>
-<target>Direto</target>
-
-<source>Follow</source>
-<target>Seguir</target>
-
<source>Today</source>
<target>Hoje</target>
@@ -1451,9 +1454,6 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Cannot monitor directory %x.</source>
<target>Não é possível monitorizar o directório %x.</target>
-<source>Conversion error:</source>
-<target>Erro de conversão:</target>
-
<source>Cannot delete file %x.</source>
<target>Não é possível eliminar o ficheiro %x.</target>
@@ -1487,8 +1487,8 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Cannot create directory %x.</source>
<target>Não é possível criar o directório %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Não é possível criar link simbólico %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Não é possível criar o link simbólico de %x para %y.</target>
<source>Cannot find system function %x.</source>
<target>Não é possível encontrar a função do sistema %x.</target>
@@ -1571,3 +1571,72 @@ Isto garante um estado consistente mesmo em caso de falha grave.
<source>Configuration file %x loaded partially only.</source>
<target>Ficheiro de configuração %x carregado parcialmente.</target>
+<source>Prepare installation</source>
+<target>A preparar a instalação</target>
+
+<source>Choose which components you want to install.</source>
+<target>Escolha os componentes a instalar.</target>
+
+<source>Select installation type:</source>
+<target>Selecionar tipo de instalação:</target>
+
+<source>Local</source>
+<target>Local</target>
+
+<source>Portable</source>
+<target>Portátil</target>
+
+<source>recommended</source>
+<target>recomendada</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Guardar as definições em "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registar as extensões do FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Criar entradas de menu de contexto no Explorer</target>
+
+<source>Save settings in installation directory</source>
+<target>Guardar as definições no directório da instalação</target>
+
+<source>Do not write to Registry</source>
+<target>Não escrever no Registo</target>
+
+<source>Just copy the files</source>
+<target>Copiar apenas os ficheiros</target>
+
+<source>Choose a directory for installation:</source>
+<target>Escolha um directório para a instalação:</target>
+
+<source>Create shortcuts:</source>
+<target>Criar atalhos:</target>
+
+<source>Desktop</source>
+<target>Ãrea de trabalho</target>
+
+<source>Start menu</source>
+<target>Menu Iniciar</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>A registar as extensões do FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>A apagar o registo das extensões do FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Configuração do FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Ficheiro Batch FreeFileSync</target>
+
+<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>Edit with FreeFileSync</source>
+<target>Editar com FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/portuguese_br.lng b/FreeFileSync/Build/Languages/portuguese_br.lng
index 31d03fba..3bbda548 100644
--- a/FreeFileSync/Build/Languages/portuguese_br.lng
+++ b/FreeFileSync/Build/Languages/portuguese_br.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Qualquer número de pares alternativos de diretórios para no máximo um arquivo de configuração.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Abrir configuração para editar sem executar.</target>
+
<source>Cannot find the following folders:</source>
<target>Não foi possível localizar as seguintes pastas:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Mover arquivo à direita</target>
-<source>Overwrite left item</source>
-<target>Sobrescrever item à esquerda</target>
+<source>Update left item</source>
+<target>Atualizar item da esquerda</target>
-<source>Overwrite right item</source>
-<target>Sobrescrever item à direita</target>
+<source>Update right item</source>
+<target>Atualizar item da direita</target>
<source>Do nothing</source>
<target>Não fazer nada</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Não foi possível carregar o aquivo %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>O arquivo de banco de dados %x é incompatível.</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Criando arquivo %x</target>
+<source>Saving file %x...</source>
+<target>Salvando arquivo %x...</target>
+
<source>Items processed:</source>
<target>Elementos processados:</target>
@@ -295,9 +304,6 @@
<pluralform>%x threads</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Codificando informações adicionais de tempo: %x</target>
-
<source>/sec</source>
<target>/seg</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Por favor, utilize a versão 64 bits do FreeFileSync para criar cópias de sombra neste sistema.</target>
-<source>Cannot load file %x.</source>
-<target>Não foi possível carregar o aquivo %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Não foi possível determinar o nome do volume para %x.</target>
@@ -340,7 +343,7 @@
<source>Save &as...</source>
<target>Salvar &como...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>Sai&r</target>
<source>&File</source>
@@ -435,6 +438,9 @@ O comando é disparado se:
<source>&Show error</source>
<target>&Mostrar erro</target>
+<source>&Quit</source>
+<target>Sai&r</target>
+
<source>Incorrect command line:</source>
<target>Linha de comando incorreta:</target>
@@ -480,11 +486,11 @@ O comando é disparado se:
<source>Creating folder %x</source>
<target>Criando pasta %x</target>
-<source>Overwriting file %x</source>
-<target>Substituindo arquivo %x</target>
+<source>Updating file %x</source>
+<target>Atualizando arquivo %x...</target>
-<source>Overwriting symbolic link %x</source>
-<target>Substituindo link simbólico %x</target>
+<source>Updating symbolic link %x</source>
+<target>Atualizando link simbólico %x</target>
<source>Verifying file %x</source>
<target>Verificando arquivo %x</target>
@@ -498,21 +504,21 @@ O comando é disparado se:
<source>Data verification error: %x and %y have different content.</source>
<target>Erro na verificação dos dados: %x e %y têm conteúdo diferente.</target>
-<source>Cannot find folder %x.</source>
-<target>Não foi possível encontrar a pasta %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Pasta de destino %x já existe.</target>
+<source>Cannot find folder %x.</source>
+<target>Não foi possível encontrar a pasta %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Campo de entrada da pasta de destino não pode ficar vazio.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Por favor, entre com uma pasta destino para controle de versões.</target>
-
<source>Source folder %x not found.</source>
<target>Pasta de origem %x não foi encontrada.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Por favor, entre com uma pasta destino para controle de versões.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Os seguintes itens possuem conflitos não resolvidos e não serão sincronizados:</target>
@@ -555,8 +561,8 @@ O comando é disparado se:
<source>Synchronization completed successfully</source>
<target>Sincronização finalizada com sucesso</target>
-<source>Saving log file %x...</source>
-<target>Salvando arquivo de log %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Limpando arquivo de log antigo...</target>
<source>Stopped</source>
<target>Interrompido</target>
@@ -609,8 +615,8 @@ O comando é disparado se:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync está atualizado.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Não foi possível conectar a sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Não foi possível conectar a 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>
@@ -694,10 +700,22 @@ O comando é disparado se:
<target>Salvar como &tarefa em lote...</target>
<source>Start &comparison</source>
-<target>Iniciar c&omparação</target>
+<target>Iniciar &Comparação</target>
+
+<source>C&omparison settings</source>
+<target>Configurações de C&omparação</target>
+
+<source>&Filter settings</source>
+<target>Configurações de &Filtro</target>
+
+<source>S&ynchronization settings</source>
+<target>Configurações de S&incronização</target>
<source>Start &synchronization</source>
-<target>Iniciar s&incronização</target>
+<target>Iniciar &Sincronização</target>
+
+<source>&Actions</source>
+<target>A&ções</target>
<source>&Options</source>
<target>&Opções</target>
@@ -777,8 +795,8 @@ O comando é disparado se:
<source>Number of files and folders that will be deleted</source>
<target>Número de arquivos e pastas que serão apagados</target>
-<source>Number of files that will be overwritten</source>
-<target>Número de arquivos que serão substituídos</target>
+<source>Number of files that will be updated</source>
+<target>Número de arquivos que serão atualizados</target>
<source>Number of files and folders that will be created</source>
<target>Número de arquivos e pastas que serão criados</target>
@@ -807,8 +825,14 @@ O comando é disparado se:
<source>Handle daylight saving time</source>
<target>Como lidar com horário de verão</target>
-<source>Symbolic links:</source>
-<target>Links simbólicos:</target>
+<source>Include symbolic links:</source>
+<target>Incluir links simbólicos:</target>
+
+<source>Direct</source>
+<target>Direto</target>
+
+<source>Follow</source>
+<target>Seguir</target>
<source>More information</source>
<target>Mais informação</target>
@@ -837,24 +861,24 @@ O comando é disparado se:
<source>Maximum:</source>
<target>Máximo:</target>
-<source>C&lear</source>
-<target>&Limpar</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Selecione regras de filtro para exlcuir certos arquivos da sincronização. Entre com os caminhos relativos dos pares de pastas correspondentes.</target>
+<source>C&lear</source>
+<target>&Limpar</target>
+
<source>Detect moved files</source>
<target>Detectar arquivos movidos</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
+- Detecção ativa após sincronização inicial
- Requer e cria arquivos de banco de dados
-- Detecção ativa após sincronismo incial
-- Não suportado por todos os sistemas de arquivo
+- Não suportado por todos os sistemas
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1067,27 +1091,15 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>View Settings</source>
<target>Ver configurações</target>
-<source>Overview</source>
-<target>Parâmetros</target>
-
<source>Configuration</source>
<target>Configuração</target>
+<source>Overview</source>
+<target>Parâmetros</target>
+
<source>Main Bar</source>
<target>Barra Principal</target>
-<source>Start comparison</source>
-<target>Iniciar comparação</target>
-
-<source>Comparison settings</source>
-<target>Parâmetros de comparação</target>
-
-<source>Synchronization settings</source>
-<target>Parâmetros de sincronização</target>
-
-<source>Start synchronization</source>
-<target>Iniciar a sincronização</target>
-
<source>Confirm</source>
<target>Confirmar</target>
@@ -1238,11 +1250,11 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Show files that will be deleted on the right side</source>
<target>Mostrar arquivos que serão apagados no lado direito</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Mostrar arquivos que serão substituídos no lado esquerdo</target>
+<source>Show files that will be updated on the left side</source>
+<target>Mostrar arquivos que serão atualizados no lado esquerdo</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Mostrar arquivos que serão substituídos no lado direito</target>
+<source>Show files that will be updated on the right side</source>
+<target>Mostrar arquivos que serão atualizados no lado direito</target>
<source>Show files that won't be copied</source>
<target>Mostrar arquivos que não serão copiados</target>
@@ -1379,15 +1391,6 @@ 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>Exclude</source>
-<target>Excluir</target>
-
-<source>Direct</source>
-<target>Direto</target>
-
-<source>Follow</source>
-<target>Seguir</target>
-
<source>Today</source>
<target>Hoje</target>
@@ -1451,9 +1454,6 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Cannot monitor directory %x.</source>
<target>Não foi possível monitorar o diretório %x.</target>
-<source>Conversion error:</source>
-<target>Erro de conversão:</target>
-
<source>Cannot delete file %x.</source>
<target>Não foi possível apagar o arquivo %x.</target>
@@ -1487,8 +1487,8 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Cannot create directory %x.</source>
<target>Não foi possível criar o diretório %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Não foi possível criar o link simbólico %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Não foi possível copiar o link simbólico %x para %y.</target>
<source>Cannot find system function %x.</source>
<target>Não foi possível localizar a função de sistema %x.</target>
@@ -1571,3 +1571,72 @@ Isto garante um estado consistente mesmo em caso de erro grave.
<source>Configuration file %x loaded partially only.</source>
<target>O arquivo de configuração %x foi carregado parcialmente.</target>
+<source>Prepare installation</source>
+<target>Preparando a instalação</target>
+
+<source>Choose which components you want to install.</source>
+<target>Escolha os componentes a serem instalados.</target>
+
+<source>Select installation type:</source>
+<target>Selecione o tipo de instalação:</target>
+
+<source>Local</source>
+<target>Local</target>
+
+<source>Portable</source>
+<target>Portátil</target>
+
+<source>recommended</source>
+<target>recomendada</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Salva as configurações em "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registra as extensões de arquivos do FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Cria entrada no menu de contexto do Explorer</target>
+
+<source>Save settings in installation directory</source>
+<target>Salva as configurações no diretório de instalação</target>
+
+<source>Do not write to Registry</source>
+<target>Não escreve no Registro</target>
+
+<source>Just copy the files</source>
+<target>Apenas copia os arquivos</target>
+
+<source>Choose a directory for installation:</source>
+<target>Escolha um diretório para a instalação:</target>
+
+<source>Create shortcuts:</source>
+<target>Criar atalhos:</target>
+
+<source>Desktop</source>
+<target>Ãrea de trabalho</target>
+
+<source>Start menu</source>
+<target>Menu Iniciar</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registrando as extensões de arquivos do FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Desregistrando as extensões de arquivos do FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Configuração do FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Arquivo de lote do FreeFileSync</target>
+
+<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>Edit with FreeFileSync</source>
+<target>Editar com FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/romanian.lng b/FreeFileSync/Build/Languages/romanian.lng
index ee8e29ac..cfe2119f 100644
--- a/FreeFileSync/Build/Languages/romanian.lng
+++ b/FreeFileSync/Build/Languages/romanian.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Orice număr de perechi alternative de dosare pentru cel mult o filă de configurare.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Deschide configurația pentru editare fără executarea ei.</target>
+
<source>Cannot find the following folders:</source>
<target>Nu pot găsi dosarele următoare:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Mută fila în dreapta</target>
-<source>Overwrite left item</source>
-<target>Suprascrie elementul stîng cu cel drept</target>
+<source>Update left item</source>
+<target>Actualizează elementul stîng</target>
-<source>Overwrite right item</source>
-<target>Suprascrie elementul drept cu cel stîng</target>
+<source>Update right item</source>
+<target>Actualizează elementul drept</target>
<source>Do nothing</source>
<target>Nici o acțiune</target>
@@ -218,6 +221,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Nu pot deschide fila %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Fila cu baza de date %x este incompatibilă.</target>
@@ -270,6 +276,9 @@
<source>Creating file %x</source>
<target>Creez fila %x</target>
+<source>Saving file %x...</source>
+<target>Salvez fila %x...</target>
+
<source>Items processed:</source>
<target>Elemente Procesate:</target>
@@ -298,9 +307,6 @@
<pluralform>%x de fire</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Codez informațiile extinse despre timp: %x</target>
-
<source>/sec</source>
<target>/sec</target>
@@ -322,9 +328,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Folosește versiunea pe 64-biți a FreeFileSync pentru a crea conservări (copii de rezervă) pe acest sistem.</target>
-<source>Cannot load file %x.</source>
-<target>Nu pot deschide fila %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Nu pot determina numele volumului pentru %x.</target>
@@ -343,7 +346,7 @@
<source>Save &as...</source>
<target>Salvează c&a...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>&Ieși</target>
<source>&File</source>
@@ -368,7 +371,7 @@
<target>2. Scrie calea.</target>
<source>3. Press 'Start'.</source>
-<target>3. Apasă 'Pornește'.</target>
+<target>3. Apasă pe 'Pornește'.</target>
<source>To get started just import a .ffs_batch file.</source>
<target>Pentru a începe, importă o filă de tipul .ffs_batch.</target>
@@ -438,6 +441,9 @@ Comanda este declanșată dacă:
<source>&Show error</source>
<target>A&rată eroarea</target>
+<source>&Quit</source>
+<target>&Ieși</target>
+
<source>Incorrect command line:</source>
<target>Linie de comandă incorectă:</target>
@@ -483,11 +489,11 @@ Comanda este declanșată dacă:
<source>Creating folder %x</source>
<target>Creez dosarul %x</target>
-<source>Overwriting file %x</source>
-<target>Suprascriu fila %x</target>
+<source>Updating file %x</source>
+<target>Actualizez fila %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Suprascriu legătura simbolică %x</target>
+<source>Updating symbolic link %x</source>
+<target>Actualizez legătura simbolică %x</target>
<source>Verifying file %x</source>
<target>Verific fila %x</target>
@@ -501,21 +507,21 @@ Comanda este declanșată dacă:
<source>Data verification error: %x and %y have different content.</source>
<target>Eroare la verificarea datelor: %x și %y au conținut diferit.</target>
-<source>Cannot find folder %x.</source>
-<target>Nu pot găsi dosarul %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Dosarul țintă %x există deja.</target>
+<source>Cannot find folder %x.</source>
+<target>Nu pot găsi dosarul %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Cîmpul de introducere a dosarului țintă nu trebuie să fie gol.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Introdu dosarul țintă pentru versionare.</target>
-
<source>Source folder %x not found.</source>
<target>Dosarul sursă %x nu a fost găsit.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Introdu dosarul țintă pentru versionare.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Există conflicte nerezolvate la elementele listate mai jos, deci ele nu vor fi sincronizate:</target>
@@ -558,8 +564,8 @@ Comanda este declanșată dacă:
<source>Synchronization completed successfully</source>
<target>Sincronizare realizată cu succes</target>
-<source>Saving log file %x...</source>
-<target>Salvez fila jurnal %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Curăț filele de jurnalizare vechi...</target>
<source>Stopped</source>
<target>Oprită</target>
@@ -613,8 +619,8 @@ Comanda este declanșată dacă:
<source>FreeFileSync is up to date.</source>
<target>Ai deja ultima versiune a softului.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Conectarea la situl sourceforge.net nu poate fi realizată.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Nu pot face conectarea la 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>
@@ -668,7 +674,7 @@ Comanda este declanșată dacă:
<target>Filtru Local</target>
<source>Active</source>
-<target>Activ</target>
+<target>Activă</target>
<source>None</source>
<target>Nimic</target>
@@ -700,9 +706,21 @@ Comanda este declanșată dacă:
<source>Start &comparison</source>
<target>Pornește &Compararea</target>
+<source>C&omparison settings</source>
+<target>Setările C&omparării</target>
+
+<source>&Filter settings</source>
+<target>Setările &Filtrării</target>
+
+<source>S&ynchronization settings</source>
+<target>Setările Sincroni&zării</target>
+
<source>Start &synchronization</source>
<target>Pornește &Sincronizarea</target>
+<source>&Actions</source>
+<target>&Acțiuni</target>
+
<source>&Options</source>
<target>&Opțiuni</target>
@@ -770,7 +788,7 @@ Comanda este declanșată dacă:
<target>Salvează ca...</target>
<source>View type:</source>
-<target>Tipul de Vedere:</target>
+<target>Tipul Vederii:</target>
<source>Select view:</source>
<target>Selectează Vederea:</target>
@@ -781,8 +799,8 @@ Comanda este declanșată dacă:
<source>Number of files and folders that will be deleted</source>
<target>Numărul de file și dosare care vor fi șterse</target>
-<source>Number of files that will be overwritten</source>
-<target>Numărul de file care vor fi suprascrise</target>
+<source>Number of files that will be updated</source>
+<target>Numărul filelor care vor fi actualizate</target>
<source>Number of files and folders that will be created</source>
<target>Numărul de file și dosare care vor fi create</target>
@@ -811,8 +829,14 @@ Comanda este declanșată dacă:
<source>Handle daylight saving time</source>
<target>Gestionarea timpului de vară (DST)</target>
-<source>Symbolic links:</source>
-<target>Legături Simbolice:</target>
+<source>Include symbolic links:</source>
+<target>Include legăturile simbolice:</target>
+
+<source>Direct</source>
+<target>Direcționează</target>
+
+<source>Follow</source>
+<target>Urmărește</target>
<source>More information</source>
<target>Mai multe informații</target>
@@ -841,24 +865,24 @@ Comanda este declanșată dacă:
<source>Maximum:</source>
<target>Maxim:</target>
-<source>C&lear</source>
-<target>C&urăță</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Selectează regulile filtrului pentru a exclude anumite file de la sincronizare. Introdu căile filelor relative la perechea lor de dosare corespondentă.</target>
+<source>C&lear</source>
+<target>C&urăță</target>
+
<source>Detect moved files</source>
<target>Detectează filele mutate</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Solicită și creează file cu baze de date
- Detectare activă după sincronizarea inițială
-- Nesuportat de toate sistemele de file
+- Necesită și creează file cu bază de date
+- Nu-i suportat de toate sistemele de file
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1071,27 +1095,15 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>View Settings</source>
<target>Setări de Vedere</target>
-<source>Overview</source>
-<target>Panoramă</target>
-
<source>Configuration</source>
<target>Configurație</target>
+<source>Overview</source>
+<target>Panoramă</target>
+
<source>Main Bar</source>
<target>Bara Principală</target>
-<source>Start comparison</source>
-<target>Pornește Compararea</target>
-
-<source>Comparison settings</source>
-<target>Setările Comparării</target>
-
-<source>Synchronization settings</source>
-<target>Setările Sincronizării</target>
-
-<source>Start synchronization</source>
-<target>Pornește Sincronizarea</target>
-
<source>Confirm</source>
<target>Confirmă</target>
@@ -1246,11 +1258,11 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Show files that will be deleted on the right side</source>
<target>Arată elementele (file/dosare) care vor fi șterse în dreapta</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Arată elementele (file/dosare) care vor fi suprascrise în stînga</target>
+<source>Show files that will be updated on the left side</source>
+<target>Arată elementele (file/dosare) care vor fi actualizate în partea stîngă</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Arată elementele (file/dosare) care vor fi suprascrise în dreapta</target>
+<source>Show files that will be updated on the right side</source>
+<target>Arată elementele (file/dosare) care vor fi actualizate în partea dreaptă</target>
<source>Show files that won't be copied</source>
<target>Arată elementele (file/dosare) care nu vor fi copiate</target>
@@ -1262,7 +1274,7 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<target>Setează ca implicit</target>
<source>Filter</source>
-<target>Filtru</target>
+<target>Filtrare</target>
<source>All files are in sync</source>
<target>Toate filele sînt sincronizate</target>
@@ -1389,15 +1401,6 @@ 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>Exclude</source>
-<target>Exclude</target>
-
-<source>Direct</source>
-<target>Direcționează</target>
-
-<source>Follow</source>
-<target>Urmărește</target>
-
<source>Today</source>
<target>Azi</target>
@@ -1461,9 +1464,6 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Cannot monitor directory %x.</source>
<target>Nu pot monitoriza dosarul %x.</target>
-<source>Conversion error:</source>
-<target>Eroare de convertire:</target>
-
<source>Cannot delete file %x.</source>
<target>Nu pot șterge fila %x.</target>
@@ -1497,8 +1497,8 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Cannot create directory %x.</source>
<target>Nu pot crea dosarul %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Nu pot crea legătura simbolică %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Nu pot copia legătura simbolică %x în %y.</target>
<source>Cannot find system function %x.</source>
<target>Nu pot găsi funcția de sistem %x.</target>
@@ -1584,3 +1584,72 @@ Aceasta garantează consecvența stării filelor chiar și în cazul apariției
<source>Configuration file %x loaded partially only.</source>
<target>Fila de configurație %x a fost deschisă doar parțial.</target>
+<source>Prepare installation</source>
+<target>Pregătirea Instalării</target>
+
+<source>Choose which components you want to install.</source>
+<target>Alege ce componente vrei să instalezi.</target>
+
+<source>Select installation type:</source>
+<target>Selectează tipul de instalare:</target>
+
+<source>Local</source>
+<target>Locală</target>
+
+<source>Portable</source>
+<target>Portabilă</target>
+
+<source>recommended</source>
+<target>recomandată</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Salvează setările în "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Înregistrează extensiile de file FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Creează intrări în meniul contextual al Exploratorului de File</target>
+
+<source>Save settings in installation directory</source>
+<target>Salvează setările în dosarul de instalare</target>
+
+<source>Do not write to Registry</source>
+<target>Nu scrie în Registru</target>
+
+<source>Just copy the files</source>
+<target>Copiază doar filele</target>
+
+<source>Choose a directory for installation:</source>
+<target>Alege un dosar pentru instalare:</target>
+
+<source>Create shortcuts:</source>
+<target>Creează scurtături:</target>
+
+<source>Desktop</source>
+<target>Birou [Desktop]</target>
+
+<source>Start menu</source>
+<target>Meniul de Start</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>ÃŽnregistrez extensiile de file FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Dezînregistrez extensiile de file FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Configurație FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Filă Set [Batch] FreeFileSync</target>
+
+<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>Edit with FreeFileSync</source>
+<target>Editează cu FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/russian.lng b/FreeFileSync/Build/Languages/russian.lng
index ca7d03f9..e052fbf9 100644
--- a/FreeFileSync/Build/Languages/russian.lng
+++ b/FreeFileSync/Build/Languages/russian.lng
@@ -97,6 +97,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Любое количеÑтво альтернативных пар папок Ð´Ð»Ñ Ð½Ðµ более одного конфигурационного файла.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Открыть конфигурацию Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ· выполнениÑ.</target>
+
<source>Cannot find the following folders:</source>
<target>Ðевозможно найти Ñледующие папки:</target>
@@ -187,11 +190,11 @@
<source>Move file on right</source>
<target>ПеремеÑтить файл направо</target>
-<source>Overwrite left item</source>
-<target>ПерезапиÑать Ñлемент Ñлева</target>
+<source>Update left item</source>
+<target>Обновить Ñлемент Ñлева</target>
-<source>Overwrite right item</source>
-<target>ПерезапиÑать Ñлемент Ñправа</target>
+<source>Update right item</source>
+<target>Обновить Ñлемент Ñправа</target>
<source>Do nothing</source>
<target>Ðичего не делать</target>
@@ -221,6 +224,9 @@
<source>%x GB</source>
<target>%x ГБ</target>
+<source>Cannot load file %x.</source>
+<target>Ðевозможно загрузить файл %x.</target>
+
<source>Database file %x is incompatible.</source>
<target>Файл базы данных %x неÑовмеÑтим.</target>
@@ -273,6 +279,9 @@
<source>Creating file %x</source>
<target>Создание файла %x</target>
+<source>Saving file %x...</source>
+<target>Сохранение файла %x...</target>
+
<source>Items processed:</source>
<target>Элементов обработано:</target>
@@ -301,9 +310,6 @@
<pluralform>%x потоков</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Кодирование раÑширенной информации о времени: %x</target>
-
<source>/sec</source>
<target>/Ñ</target>
@@ -325,9 +331,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>ПожалуйÑта, иÑпользуйте 64-разрÑдную верÑию FreeFileSync Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ‚ÐµÐ½ÐµÐ²Ñ‹Ñ… копий на Ñтой ÑиÑтеме.</target>
-<source>Cannot load file %x.</source>
-<target>Ðевозможно загрузить файл %x.</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Ðевозможно определить Ð¸Ð¼Ñ Ñ‚Ð¾Ð¼Ð° Ð´Ð»Ñ %x.</target>
@@ -346,7 +349,7 @@
<source>Save &as...</source>
<target>Сохранить &как...</target>
-<source>&Quit</source>
+<source>E&xit</source>
<target>&Выход</target>
<source>&File</source>
@@ -441,6 +444,9 @@ The command is triggered if:
<source>&Show error</source>
<target>&Показать ошибку</target>
+<source>&Quit</source>
+<target>&Выход</target>
+
<source>Incorrect command line:</source>
<target>ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока:</target>
@@ -486,11 +492,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>Создание папки %x</target>
-<source>Overwriting file %x</source>
-<target>ПерезапиÑÑŒ файла %x</target>
+<source>Updating file %x</source>
+<target>Обновление файла %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>ПерезапиÑÑŒ Ñимвольной ÑÑылки %x</target>
+<source>Updating symbolic link %x</source>
+<target>Обновление Ñимвольной ÑÑылки %x</target>
<source>Verifying file %x</source>
<target>Проверка файла %x</target>
@@ -504,21 +510,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>Ошибка проверки данных: %x и %y имеют разное Ñодержание!</target>
-<source>Cannot find folder %x.</source>
-<target>Ðевозможно найти папку %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Ð¦ÐµÐ»ÐµÐ²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° %x уже ÑущеÑтвует.</target>
+<source>Cannot find folder %x.</source>
+<target>Ðевозможно найти папку %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Поле ввода целевой папки не должно быть пуÑтым.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>ПожалуйÑта, введите целевую папку Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð².</target>
-
<source>Source folder %x not found.</source>
<target>ИÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð¿Ð°Ð¿ÐºÐ° %x не найдена.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>ПожалуйÑта, введите целевую папку Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð².</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Следующие Ñлементы имеют неурегулированные конфликты и не будут Ñинхронизированы:</target>
@@ -564,8 +570,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð° уÑпешно</target>
-<source>Saving log file %x...</source>
-<target>Сохранение лог-файла %x...</target>
+<source>Cleaning up old log files...</source>
+<target>ОчиÑтка Ñтарых лог-файлов (журналов)</target>
<source>Stopped</source>
<target>ОÑтановлено</target>
@@ -619,8 +625,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>У Ð’Ð°Ñ ÑÐ°Ð¼Ð°Ñ Ð¿Ð¾ÑледнÑÑ Ð²ÐµÑ€ÑÐ¸Ñ FreeFileSync.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Ðевозможно ÑоединитьÑÑ Ñ sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Ðевозможно ÑоединитьÑÑ Ñ FreeFileSync.org.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Ðевозможно найти номер текущей верÑии FreeFileSync онлайн! Ð’Ñ‹ хотите проверить вручную?</target>
@@ -706,9 +712,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>Ðачать Ñ&равнение</target>
+<source>C&omparison settings</source>
+<target>ÐаÑтройки Ñра&внениÑ</target>
+
+<source>&Filter settings</source>
+<target>ÐаÑтройки &фильтра</target>
+
+<source>S&ynchronization settings</source>
+<target>ÐаÑтройки Ñин&хронизации</target>
+
<source>Start &synchronization</source>
<target>Ðачать Ñ&инхронизацию</target>
+<source>&Actions</source>
+<target>&ДейÑтвиÑ</target>
+
<source>&Options</source>
<target>&ÐаÑтройки</target>
@@ -716,7 +734,7 @@ The command is triggered if:
<target>&Язык</target>
<source>&Find...</source>
-<target>&Ðайти...</target>
+<target>Ð&айти...</target>
<source>&Reset layout</source>
<target>&СброÑить раÑположение</target>
@@ -787,8 +805,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>КоличеÑтво файлов и папок, которые будут удалены</target>
-<source>Number of files that will be overwritten</source>
-<target>КоличеÑтво файлов, которые будут перезапиÑаны</target>
+<source>Number of files that will be updated</source>
+<target>КоличеÑтво файлов, которые будут обновлены</target>
<source>Number of files and folders that will be created</source>
<target>КоличеÑтво файлов и папок, которые будут Ñозданы</target>
@@ -817,8 +835,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>Ручной переход на летнее времÑ</target>
-<source>Symbolic links:</source>
-<target>Символьные ÑÑылки:</target>
+<source>Include symbolic links:</source>
+<target>Включать Ñимвольные ÑÑылки:</target>
+
+<source>Direct</source>
+<target>ПрÑмое</target>
+
+<source>Follow</source>
+<target>ПоÑледовательное</target>
<source>More information</source>
<target>Больше информации</target>
@@ -847,28 +871,28 @@ The command is triggered if:
<source>Maximum:</source>
<target>макÑимум:</target>
-<source>C&lear</source>
-<target>&ОчиÑтить</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Выберите правила фильтрации Ð´Ð»Ñ Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ñ… файлов из Ñинхронизации. Введите пути файлов отноÑÑщиеÑÑ Ðº ÑоответÑтвующим парам папок.</target>
+<source>C&lear</source>
+<target>&ОчиÑтить</target>
+
<source>Detect moved files</source>
<target>Обнаруживать перемещенные файлы</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Создает базу данных файлов
-- Обнаруживает активноÑÑ‚ÑŒ поÑле начальной Ñинхронизации
+- Обнаружение активируетÑÑ Ð¿Ð¾Ñле первой Ñинхронизации
+- Требует и Ñоздает базы данных в Ñинхронизируемых папках
- ПоддерживаетÑÑ Ð½Ðµ вÑеми файловыми ÑиÑтемами
</target>
<source>Detect synchronization directions with the help of database files</source>
-<target>Обнаружение Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñинхронизации Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ файлов баз данных</target>
+<target>Обнаружение Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñинхронизации Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ базы данных</target>
<source>Delete files:</source>
<target>Удаление файлов:</target>
@@ -965,13 +989,13 @@ The command is triggered if:
<target>ЗапуÑтить Ñвернутым</target>
<source>Save log:</source>
-<target>Сохранить лог-файл:</target>
+<target>СохранÑÑ‚ÑŒ лог-файлы (журналы):</target>
<source>Limit:</source>
<target>Ограничение:</target>
<source>Limit maximum number of log files</source>
-<target>Ограничить макÑимальное количеÑтво лог-файлов</target>
+<target>Ограничить макÑимальное количеÑтво лог-файлов (журналов)</target>
<source>How can I schedule a batch job?</source>
<target>Как запланировать пакетное задание?</target>
@@ -1081,27 +1105,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>ÐаÑтройки проÑмотра</target>
-<source>Overview</source>
-<target>ГлавнаÑ</target>
-
<source>Configuration</source>
<target>КонфигурациÑ</target>
+<source>Overview</source>
+<target>ГлавнаÑ</target>
+
<source>Main Bar</source>
<target>Ð“Ð»Ð°Ð²Ð½Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ</target>
-<source>Start comparison</source>
-<target>Ðачать Ñравнение</target>
-
-<source>Comparison settings</source>
-<target>ÐаÑтройки ÑравнениÑ</target>
-
-<source>Synchronization settings</source>
-<target>ÐаÑтройки Ñинхронизации</target>
-
-<source>Start synchronization</source>
-<target>Ðачать Ñинхронизацию</target>
-
<source>Confirm</source>
<target>Подтвердить</target>
@@ -1256,11 +1268,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Показать файлы, которые будут удалены на правой Ñтороне</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Показать файлы, которые будут перезапиÑаны на левой Ñтороне</target>
+<source>Show files that will be updated on the left side</source>
+<target>Показать файлы, которые будут обновлены на левой Ñтороне</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Показать файлы, которые будут перезапиÑаны на правой Ñтороне</target>
+<source>Show files that will be updated on the right side</source>
+<target>Показать файлы, которые будут обновлены на правой Ñтороне</target>
<source>Show files that won't be copied</source>
<target>Показать файлы, которые не будут Ñкопированы</target>
@@ -1402,15 +1414,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>ÐаÑтроить Ñвои ÑобÑтвенные правила Ñинхронизации.</target>
-<source>Exclude</source>
-<target>ИÑключить</target>
-
-<source>Direct</source>
-<target>ПрÑмое</target>
-
-<source>Follow</source>
-<target>ПоÑледовательное</target>
-
<source>Today</source>
<target>ÑегоднÑ</target>
@@ -1474,9 +1477,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Ðевозможно наблюдать папку %x.</target>
-<source>Conversion error:</source>
-<target>Ошибка преобразованиÑ:</target>
-
<source>Cannot delete file %x.</source>
<target>Ðевозможно удалить файл %x.</target>
@@ -1510,8 +1510,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Ðевозможно Ñоздать папку %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Ðевозможно Ñоздать Ñимвольную ÑÑылку %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Ðевозможно Ñкопировать Ñимвольную ÑÑылку %x в %y.</target>
<source>Cannot find system function %x.</source>
<target>Ðевозможно найти ÑиÑтемную функцию %x.</target>
@@ -1597,3 +1597,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Конфигурационный файл %x загрузилÑÑ Ñ‡Ð°Ñтично.</target>
+<source>Prepare installation</source>
+<target>Подготовка уÑтановки</target>
+
+<source>Choose which components you want to install.</source>
+<target>Выберите, какие компоненты вы хотите уÑтановить.</target>
+
+<source>Select installation type:</source>
+<target>Выберите тип уÑтановки:</target>
+
+<source>Local</source>
+<target>ЛокальнаÑ</target>
+
+<source>Portable</source>
+<target>ПереноÑнаÑ</target>
+
+<source>recommended</source>
+<target>рекомендуетÑÑ</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>СохранÑет наÑтройки в "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>РегиÑтрирует раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Создать пункты контекÑтного меню в Проводнике</target>
+
+<source>Save settings in installation directory</source>
+<target>СохранÑет наÑтройки в папке уÑтановки</target>
+
+<source>Do not write to Registry</source>
+<target>Ðичего не пишет в РееÑÑ‚Ñ€</target>
+
+<source>Just copy the files</source>
+<target>Только копирует файлы</target>
+
+<source>Choose a directory for installation:</source>
+<target>Выберите папку Ð´Ð»Ñ ÑƒÑтановки:</target>
+
+<source>Create shortcuts:</source>
+<target>Создать Ñрлыки:</target>
+
+<source>Desktop</source>
+<target>на рабочем Ñтоле</target>
+
+<source>Start menu</source>
+<target>в меню ПуÑк</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>РегиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñ€Ð°Ñширений файлов FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Удаление региÑтрации раÑширений файлов FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Файл пакетного Ð·Ð°Ð´Ð°Ð½Ð¸Ñ FreeFileSync</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>База данных Ñинхронизации FreeFileSync</target>
+
+<source>RealtimeSync Configuration</source>
+<target>ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ RealtimeSync</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Редактировать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/serbian.lng b/FreeFileSync/Build/Languages/serbian.lng
index be37ffa6..cf1a15d0 100644
--- a/FreeFileSync/Build/Languages/serbian.lng
+++ b/FreeFileSync/Build/Languages/serbian.lng
@@ -7,9 +7,6 @@
<plural_definition>n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2</plural_definition>
</header>
-<source>Unable to set application identifier.</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Обе Ñу Ñтране промењене од поÑледње Ñинхронизације.</target>
@@ -97,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Било који број алтернативних фолдерÑких парова за бар једну конфигурациону датотеку.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Отвори конфигурацију за уређивање без покретања.</target>
+
<source>Cannot find the following folders:</source>
<target>Ðе могу пронаћи Ñледеће фолдере:</target>
@@ -187,11 +187,11 @@
<source>Move file on right</source>
<target>ПремеÑти датотеку деÑно</target>
-<source>Overwrite left item</source>
-<target>Замени леву Ñтавку</target>
+<source>Update left item</source>
+<target>Ðжурирај леву Ñтавку</target>
-<source>Overwrite right item</source>
-<target>Замени деÑну Ñтавку</target>
+<source>Update right item</source>
+<target>Ðжурирај деÑну Ñтавку</target>
<source>Do nothing</source>
<target>Ðе ради ништа</target>
@@ -276,6 +276,9 @@
<source>Creating file %x</source>
<target>Правим датотеку %x</target>
+<source>Saving file %x...</source>
+<target>УпиÑујем датотеку %x...</target>
+
<source>Items processed:</source>
<target>Обрађени елементи:</target>
@@ -304,9 +307,6 @@
<pluralform>%x нити</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Кодирам проширене информације о времену: %x</target>
-
<source>/sec</source>
<target>/Ñек</target>
@@ -346,8 +346,8 @@
<source>Save &as...</source>
<target>Сачувај &као...</target>
-<source>&Quit</source>
-<target>&Излаз</target>
+<source>E&xit</source>
+<target>И&зађи</target>
<source>&File</source>
<target>&Датотека</target>
@@ -441,6 +441,9 @@ The command is triggered if:
<source>&Show error</source>
<target>&Прикажи грешку</target>
+<source>&Quit</source>
+<target>&Излаз</target>
+
<source>Incorrect command line:</source>
<target>Ðетачна командна линија:</target>
@@ -486,11 +489,11 @@ The command is triggered if:
<source>Creating folder %x</source>
<target>Креирам фолдер %x</target>
-<source>Overwriting file %x</source>
-<target>Замењујем датотеку %x</target>
+<source>Updating file %x</source>
+<target>Ðжурирам датотеку %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Замењујем Ñимболичну везу %x</target>
+<source>Updating symbolic link %x</source>
+<target>Ðжурирам Ñимболичну везу %x</target>
<source>Verifying file %x</source>
<target>Проверавам датотеку %x</target>
@@ -504,21 +507,21 @@ The command is triggered if:
<source>Data verification error: %x and %y have different content.</source>
<target>Грешка при провери података: %x и %y имају различит Ñадржај.</target>
-<source>Cannot find folder %x.</source>
-<target>Ðе могу пронаћи фолдер %x.</target>
-
<source>Target folder %x already existing.</source>
<target>Одредишни фолдер %x већ поÑтоји.</target>
+<source>Cannot find folder %x.</source>
+<target>Ðе могу пронаћи фолдер %x.</target>
+
<source>Target folder input field must not be empty.</source>
<target>Поље за одабир одредишног фолдера не може бити празно.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Молим унеÑите одредишни фолдер за верзионирање.</target>
-
<source>Source folder %x not found.</source>
<target>Изворни фолдер %x није пронађен.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Молим унеÑите одредишни фолдер за верзионирање.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Следеће Ñтавке имају неразрешених конфликата и неће бити Ñинхронизоване:</target>
@@ -561,8 +564,8 @@ The command is triggered if:
<source>Synchronization completed successfully</source>
<target>Синхронизација уÑпешно завршена</target>
-<source>Saving log file %x...</source>
-<target>УпиÑујем лог датотеку %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Уклањање Ñтарих датотека лога...</target>
<source>Stopped</source>
<target>ЗауÑтављено</target>
@@ -616,8 +619,8 @@ The command is triggered if:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync је ажуриран.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Ðе могу Ñе повезати на sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Ðе може Ñе уÑпоÑтавити веза Ñа FreeFileSync.org.</target>
<source>Cannot find current FreeFileSync version number online. Do you want to check manually?</source>
<target>Ðе могу на мрежи пронаћи тренутни број верзије FreeFileSync-а. Да ли желите да проверите ручно?</target>
@@ -703,9 +706,21 @@ The command is triggered if:
<source>Start &comparison</source>
<target>Почни &упоређивање</target>
+<source>C&omparison settings</source>
+<target>Подешавања уп&оређивања</target>
+
+<source>&Filter settings</source>
+<target>Подешавања &филтера</target>
+
+<source>S&ynchronization settings</source>
+<target>Подешавања &Ñинхронизације</target>
+
<source>Start &synchronization</source>
<target>Почни &Ñинхронизацију</target>
+<source>&Actions</source>
+<target>&Ðкције</target>
+
<source>&Options</source>
<target>&Опције</target>
@@ -784,8 +799,8 @@ The command is triggered if:
<source>Number of files and folders that will be deleted</source>
<target>Број датотека и фолдера који ће бити избриÑани</target>
-<source>Number of files that will be overwritten</source>
-<target>Број датотека које ће бити замењене у Ñадржају</target>
+<source>Number of files that will be updated</source>
+<target>Број датотека које ће бити ажуриране</target>
<source>Number of files and folders that will be created</source>
<target>Број датотека и фолдера који ће бити креирани</target>
@@ -814,8 +829,14 @@ The command is triggered if:
<source>Handle daylight saving time</source>
<target>Руковођење ÑезонÑким рачунањем времена</target>
-<source>Symbolic links:</source>
-<target>Симболичне везе:</target>
+<source>Include symbolic links:</source>
+<target>Укључи Ñимболичне везе:</target>
+
+<source>Direct</source>
+<target>ÐепоÑредно</target>
+
+<source>Follow</source>
+<target>Следи</target>
<source>More information</source>
<target>Више информација</target>
@@ -844,24 +865,24 @@ The command is triggered if:
<source>Maximum:</source>
<target>МакÑимум:</target>
-<source>C&lear</source>
-<target>О&бриши</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Одаберите филтерÑка подешавања да би иÑкључили одређене датотеке из Ñинхронизације. УнеÑите путање датотека релативно према њиховим одговарајућим фолдерÑким паровима.</target>
+<source>C&lear</source>
+<target>О&бриши</target>
+
<source>Detect moved files</source>
<target>Уочи премештене датотеке</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Потребује и креира датотеке база
-- Детекција активна поÑле иницијалног Ñинка
-- Ðије подржано за Ñве ÑиÑтеме датотека
+- Детекција активна поÑле почетне Ñинхронизације
+- Потребује и креира датотеке базе
+- Ðије подржано од Ñвих ÑиÑтема датотека
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1074,27 +1095,15 @@ This guarantees a consistent state even in case of a serious error.
<source>View Settings</source>
<target>Подешавања приказа</target>
-<source>Overview</source>
-<target>Преглед</target>
-
<source>Configuration</source>
<target>Подешавања</target>
+<source>Overview</source>
+<target>Преглед</target>
+
<source>Main Bar</source>
<target>Главна трака</target>
-<source>Start comparison</source>
-<target>Почни упоређивање</target>
-
-<source>Comparison settings</source>
-<target>Подешавања упоређивања</target>
-
-<source>Synchronization settings</source>
-<target>Подешавања Ñинхронизације</target>
-
-<source>Start synchronization</source>
-<target>Почни Ñинхронизацију</target>
-
<source>Confirm</source>
<target>Потврди</target>
@@ -1249,11 +1258,11 @@ This guarantees a consistent state even in case of a serious error.
<source>Show files that will be deleted on the right side</source>
<target>Прикажи датотеке које ће бити избриÑане на деÑној Ñтрани</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Прикажи датотеке које ће бити замењене на левој Ñтрани</target>
+<source>Show files that will be updated on the left side</source>
+<target>Прикажи датотеке које ће бити ажуриране на левој Ñтрани</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Прикажи датотеке које ће бити замењене на деÑној Ñтрани</target>
+<source>Show files that will be updated on the right side</source>
+<target>Прикажи датотеке које ће бити ажуриране на деÑној Ñтрани</target>
<source>Show files that won't be copied</source>
<target>Прикажи датотеке које неће бити копиране</target>
@@ -1392,15 +1401,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Configure your own synchronization rules.</source>
<target>Конфигуришите ваша влаÑтита Ñинхронизациона правила.</target>
-<source>Exclude</source>
-<target>ИÑкључи</target>
-
-<source>Direct</source>
-<target>ÐепоÑредно</target>
-
-<source>Follow</source>
-<target>Следи</target>
-
<source>Today</source>
<target>ДанаÑ</target>
@@ -1464,9 +1464,6 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot monitor directory %x.</source>
<target>Ðе могу надгледати фолдер %x.</target>
-<source>Conversion error:</source>
-<target>Грешка при претварању:</target>
-
<source>Cannot delete file %x.</source>
<target>Ðе могу избриÑати датотеку %x.</target>
@@ -1500,8 +1497,8 @@ This guarantees a consistent state even in case of a serious error.
<source>Cannot create directory %x.</source>
<target>Ðе могу креирати фолдер %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Ðе могу креирати Ñимболичну везу %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Ðе могу копирати Ñимболичну везу %x у %y.</target>
<source>Cannot find system function %x.</source>
<target>Ðе могу пронаћи ÑиÑтемÑку функцију %x.</target>
@@ -1587,3 +1584,72 @@ This guarantees a consistent state even in case of a serious error.
<source>Configuration file %x loaded partially only.</source>
<target>Датотека подешавања %x учитана Ñамо делимично.</target>
+<source>Prepare installation</source>
+<target>Припремање инÑталације</target>
+
+<source>Choose which components you want to install.</source>
+<target>Одаберите које компоненте желите да инÑталирате.</target>
+
+<source>Select installation type:</source>
+<target>Одаберите тип инÑталације:</target>
+
+<source>Local</source>
+<target>Локални</target>
+
+<source>Portable</source>
+<target>ПреноÑни</target>
+
+<source>recommended</source>
+<target>препоручени</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Сачувај подешавања у "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>РегиÑтруј FreeFileSync екÑтензије датотека</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Ðаправи уноÑе ЕкÑплореровог контекÑтног менија</target>
+
+<source>Save settings in installation directory</source>
+<target>Сачувај подешавања у инÑталационом фолдеру</target>
+
+<source>Do not write to Registry</source>
+<target>Ðе упиÑуј у РегиÑтар бази</target>
+
+<source>Just copy the files</source>
+<target>Само копирај датотеке</target>
+
+<source>Choose a directory for installation:</source>
+<target>Одабери фолдер за инÑталацију:</target>
+
+<source>Create shortcuts:</source>
+<target>Ðаправи пречице:</target>
+
+<source>Desktop</source>
+<target>ДеÑктоп</target>
+
+<source>Start menu</source>
+<target>Старт мени</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>РегиÑтрација FreeFileSync екÑтензија датотека</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>ДерегиÑтрација FreeFileSync екÑтензија датотека</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Конфигурација FreeFileSync-а</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Беч датотека FreeFileSync-а</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>База података FreeFileSync Ñинхронизације</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Конфигурација RealtimeSync-а</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Уреди Ñа FreeFileSync-ом</target>
+
diff --git a/FreeFileSync/Build/Languages/spanish.lng b/FreeFileSync/Build/Languages/spanish.lng
index 3c142c1c..e2145d1d 100644
--- a/FreeFileSync/Build/Languages/spanish.lng
+++ b/FreeFileSync/Build/Languages/spanish.lng
@@ -7,9 +7,6 @@
<plural_definition>n == 1 ? 0 : 1</plural_definition>
</header>
-<source>Unable to set application identifier.</source>
-<target></target>
-
<source>Both sides have changed since last synchronization.</source>
<target>Ambos lados han cambiado desde la última sincronización.</target>
@@ -44,7 +41,7 @@
<target>Borrar carpeta %x</target>
<source>Deleting symbolic link %x</source>
-<target>Borrar vínculo simbólico %x</target>
+<target>Borrando vínculo simbólico %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>
@@ -97,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Cualquier número de pares de directorios alternativos para un archivo de configuración como máximo.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Abrir en edición sin ejecutar la configuración.</target>
+
<source>Cannot find the following folders:</source>
<target>No se pudieron encontrar las siguiente carpetas:</target>
@@ -187,11 +187,11 @@
<source>Move file on right</source>
<target>Mover archivo a la derecha</target>
-<source>Overwrite left item</source>
-<target>Sobrescribir elemento izquierdo</target>
+<source>Update left item</source>
+<target>Actualizar elemento izquierdo</target>
-<source>Overwrite right item</source>
-<target>Sobrescribir elemento derecho</target>
+<source>Update right item</source>
+<target>Actualizar elemento derecho</target>
<source>Do nothing</source>
<target>No hacer nada</target>
@@ -274,6 +274,9 @@
<source>Creating file %x</source>
<target>Creando archivo %x</target>
+<source>Saving file %x...</source>
+<target>Guardando archivo %x…</target>
+
<source>Items processed:</source>
<target>Elementos procesados:</target>
@@ -301,9 +304,6 @@
<pluralform>%x hilos</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Codificando información de hora extendida: %x</target>
-
<source>/sec</source>
<target>/seg</target>
@@ -343,8 +343,8 @@
<source>Save &as...</source>
<target>Guardar &como…</target>
-<source>&Quit</source>
-<target>&Salir</target>
+<source>E&xit</source>
+<target>Sal&ir</target>
<source>&File</source>
<target>&Archivo</target>
@@ -438,6 +438,9 @@ El comando es disparado si:
<source>&Show error</source>
<target>Mo&strar error</target>
+<source>&Quit</source>
+<target>&Salir</target>
+
<source>Incorrect command line:</source>
<target>Línea de comandos incorrecta:</target>
@@ -478,16 +481,16 @@ El comando es disparado si:
<target>Eliminando versiones antiguas…</target>
<source>Creating symbolic link %x</source>
-<target>Creando vínculo simbólico %x</target>
+<target>Creando el vínculo simbólico %x</target>
<source>Creating folder %x</source>
<target>Creando carpeta %x</target>
-<source>Overwriting file %x</source>
-<target>Sobrescribir archivo %x</target>
+<source>Updating file %x</source>
+<target>Actualizando archivo %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Sobrescribir vínculo simbólico %x</target>
+<source>Updating symbolic link %x</source>
+<target>Actualizando el vínculo simbólico %x</target>
<source>Verifying file %x</source>
<target>Verificación del archivo %x</target>
@@ -501,21 +504,21 @@ El comando es disparado si:
<source>Data verification error: %x and %y have different content.</source>
<target>Error al comprobar los datos: %x y %y tienen contenidos diferentes.</target>
-<source>Cannot find folder %x.</source>
-<target>No se puede encontrar la carpeta %x</target>
-
<source>Target folder %x already existing.</source>
<target>La carpeta de destino %x ya existe.</target>
+<source>Cannot find folder %x.</source>
+<target>No se puede encontrar la carpeta %x</target>
+
<source>Target folder input field must not be empty.</source>
<target>El campo de entrada de la carpeta de destino no debe estar vacío.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Indique una carpeta de destino para la versión.</target>
-
<source>Source folder %x not found.</source>
<target>El archivo de origen %x no ha sido encontrado.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Indique una carpeta de destino para la versión.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Los siguientes elementos tienen conflictos sin resolver y no serán sincronizados:</target>
@@ -558,8 +561,8 @@ El comando es disparado si:
<source>Synchronization completed successfully</source>
<target>Sincronización completada satisfactoriamente</target>
-<source>Saving log file %x...</source>
-<target>Guardando registro %x…</target>
+<source>Cleaning up old log files...</source>
+<target>Limpiando antiguos archivos de registro…</target>
<source>Stopped</source>
<target>Detenido</target>
@@ -612,8 +615,8 @@ El comando es disparado si:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync está actualizado.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>No se puede conectar con sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>No se puede conectar al sitio 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>
@@ -699,9 +702,21 @@ El comando es disparado si:
<source>Start &comparison</source>
<target>Iniciar la &comparación</target>
+<source>C&omparison settings</source>
+<target>Opciones de c&omparación</target>
+
+<source>&Filter settings</source>
+<target>Opciones de &filtro</target>
+
+<source>S&ynchronization settings</source>
+<target>Opciones de s&incronización</target>
+
<source>Start &synchronization</source>
<target>Iniciar la &sincronización</target>
+<source>&Actions</source>
+<target>&Acciones</target>
+
<source>&Options</source>
<target>&Opciones</target>
@@ -712,7 +727,7 @@ El comando es disparado si:
<target>&Buscar…</target>
<source>&Reset layout</source>
-<target>&Reiniciar la presentación</target>
+<target>&Reiniciar la disposición</target>
<source>&Export file list...</source>
<target>&Exportar lista de archivos…</target>
@@ -780,8 +795,8 @@ El comando es disparado si:
<source>Number of files and folders that will be deleted</source>
<target>Número de archivos y carpetas que serán eliminados</target>
-<source>Number of files that will be overwritten</source>
-<target>Número de archivos que serán sobrescritos</target>
+<source>Number of files that will be updated</source>
+<target>Número de archivos que serán actualizados</target>
<source>Number of files and folders that will be created</source>
<target>Número de archivos y carpetas que serán creados</target>
@@ -810,8 +825,14 @@ El comando es disparado si:
<source>Handle daylight saving time</source>
<target>Tener en cuenta la hora de verano</target>
-<source>Symbolic links:</source>
-<target>Vínculos simbólicos:</target>
+<source>Include symbolic links:</source>
+<target>Incluir vínculos simbólicos:</target>
+
+<source>Direct</source>
+<target>Directo</target>
+
+<source>Follow</source>
+<target>Seguir</target>
<source>More information</source>
<target>Más información</target>
@@ -840,23 +861,23 @@ El comando es disparado si:
<source>Maximum:</source>
<target>Máximo:</target>
-<source>C&lear</source>
-<target>B&orrar</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Seleccione reglas para excluir archivos durante la sincronización. Indique rutas relativas a la carpeta emparejada correspondiente.</target>
+<source>C&lear</source>
+<target>B&orrar</target>
+
<source>Detect moved files</source>
<target>Detectar archivos movidos</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Requiere y crea archivos de bases de datos
-- Detección activa tras syncronización inicial
+- Detección activa tras sync. inicial
+- Requiere y crea archivos de base de datos
- No compatible con todos los sistemas de archivos
</target>
@@ -1023,7 +1044,7 @@ Se garantiza un estado coherente incluso en caso de error grave.
<target>&Configuración predeterminada</target>
<source>Source code written in C++ using:</source>
-<target>Código fuente original en C++ con apoyo de:</target>
+<target>Código fuente C++ con soporte de :</target>
<source>If you like FreeFileSync</source>
<target>¿Te gusta FreeFileSync? :</target>
@@ -1032,7 +1053,7 @@ Se garantiza un estado coherente incluso en caso de error grave.
<target>Haz una donación por PayPal</target>
<source>Feedback and suggestions are welcome</source>
-<target>Comentarios y sugerencias bienvenidos :</target>
+<target>Sus comentarios y sugerencias son bienvenidos :</target>
<source>Homepage</source>
<target>Página de inicio</target>
@@ -1044,7 +1065,7 @@ Se garantiza un estado coherente incluso en caso de error grave.
<target>Publicado con derechos GNU General Public License :</target>
<source>Many thanks for localization:</source>
-<target>Agradecimientos por las traducciones a:</target>
+<target>Agradecimientos a los traductores :</target>
<source>Save as Batch Job</source>
<target>Guardar como tarea por lotes</target>
@@ -1070,27 +1091,15 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>View Settings</source>
<target>Ver opciones</target>
-<source>Overview</source>
-<target>Vista general</target>
-
<source>Configuration</source>
<target>Configuración</target>
+<source>Overview</source>
+<target>Vista general</target>
+
<source>Main Bar</source>
<target>Barra principal</target>
-<source>Start comparison</source>
-<target>Iniciar la comparación</target>
-
-<source>Comparison settings</source>
-<target>Opciones de comparación</target>
-
-<source>Synchronization settings</source>
-<target>Opciones de sincronización</target>
-
-<source>Start synchronization</source>
-<target>Iniciar sincronización</target>
-
<source>Confirm</source>
<target>Confirmar</target>
@@ -1241,11 +1250,11 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Show files that will be deleted on the right side</source>
<target>Mostrar archivos que serán eliminados en el lado derecho</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Mostrar archivos que serán sobrescritos en el lado izquierdo</target>
+<source>Show files that will be updated on the left side</source>
+<target>Mostrar archivos que serán actualizados en el lado izquierdo</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Mostrar archivos que serán sobrescritos en el lado derecho</target>
+<source>Show files that will be updated on the right side</source>
+<target>Mostrar archivos que serán actualizados en el lado derecho</target>
<source>Show files that won't be copied</source>
<target>Mostrar archivos que no serán copiados</target>
@@ -1382,15 +1391,6 @@ 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>Exclude</source>
-<target>Excluir</target>
-
-<source>Direct</source>
-<target>Directo</target>
-
-<source>Follow</source>
-<target>Seguir</target>
-
<source>Today</source>
<target>Hoy</target>
@@ -1454,9 +1454,6 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Cannot monitor directory %x.</source>
<target>No se puede monitorizar el directorio %x.</target>
-<source>Conversion error:</source>
-<target>Error de conversión:</target>
-
<source>Cannot delete file %x.</source>
<target>No se puede eliminar el archivo %x.</target>
@@ -1490,8 +1487,8 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Cannot create directory %x.</source>
<target>No se puede crear el directorio %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>No se puede crear el vínculo simbólico %x.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>No se puede copiar el vínculo simbólico %x a %y.</target>
<source>Cannot find system function %x.</source>
<target>No se puede encontrar la función del sistema %x.</target>
@@ -1574,3 +1571,72 @@ Se garantiza un estado coherente incluso en caso de error grave.
<source>Configuration file %x loaded partially only.</source>
<target>Archivo de configuración %x cargado sólo parcialmente.</target>
+<source>Prepare installation</source>
+<target>Preparar la instalación</target>
+
+<source>Choose which components you want to install.</source>
+<target>Elija los components que desea instalar.</target>
+
+<source>Select installation type:</source>
+<target>Elija el tipo de instalación:</target>
+
+<source>Local</source>
+<target>Local</target>
+
+<source>Portable</source>
+<target>Portable</target>
+
+<source>recommended</source>
+<target>recomendado</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Guardar cambios en "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registrar las extensiones de archivos de FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Crear entradas en el menú contextual del Explorador</target>
+
+<source>Save settings in installation directory</source>
+<target>Guardar preferencias en el directorio de instalación</target>
+
+<source>Do not write to Registry</source>
+<target>No escribir en el registro</target>
+
+<source>Just copy the files</source>
+<target>Copiar archivos</target>
+
+<source>Choose a directory for installation:</source>
+<target>Elegir directorio para la instalación:</target>
+
+<source>Create shortcuts:</source>
+<target>Crear acceso directo:</target>
+
+<source>Desktop</source>
+<target>Escritorio</target>
+
+<source>Start menu</source>
+<target>Menú Inicio</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registrando las extensiones de archivo de FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Borrando las extensiones de archivo de FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>Configuración de FreeFileSync</target>
+
+<source>FreeFileSync Batch File</source>
+<target>Archivo por lotes de FreeFileSync</target>
+
+<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>Edit with FreeFileSync</source>
+<target>Modificar con FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/swedish.lng b/FreeFileSync/Build/Languages/swedish.lng
index 3b7ba35a..1afef2d8 100644
--- a/FreeFileSync/Build/Languages/swedish.lng
+++ b/FreeFileSync/Build/Languages/swedish.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Valfritt antal alternativa katalogpar för som mest, en konfigurationsfil</target>
+<source>Open configuration for edit without executing.</source>
+<target>Öppna konfigurationen för redigering utan exekvering</target>
+
<source>Cannot find the following folders:</source>
<target>Kan inte hitta följande mappar:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Flytta fil på höger sida</target>
-<source>Overwrite left item</source>
-<target>Skriv över vänster objekt</target>
+<source>Update left item</source>
+<target>Uppdatera objekt på vänster sida</target>
-<source>Overwrite right item</source>
-<target>Skriv över höger objekt</target>
+<source>Update right item</source>
+<target>Uppdatera objekt på höger sida</target>
<source>Do nothing</source>
<target>Gör ingenting</target>
@@ -217,6 +220,9 @@
<source>%x GB</source>
<target>%x GB</target>
+<source>Cannot load file %x.</source>
+<target>Kan inte läsa in %x</target>
+
<source>Database file %x is incompatible.</source>
<target>Databasfilen %x är inkompatibel</target>
@@ -268,6 +274,9 @@
<source>Creating file %x</source>
<target>Skapar fil %x</target>
+<source>Saving file %x...</source>
+<target>Sparar %x...</target>
+
<source>Items processed:</source>
<target>Processade poster</target>
@@ -295,9 +304,6 @@
<pluralform>%x trådar</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Kodar utökad tidsinformation: %x</target>
-
<source>/sec</source>
<target>/s</target>
@@ -319,9 +325,6 @@
<source>Please use FreeFileSync 64-bit version to create shadow copies on this system.</source>
<target>Använd FreeFileSync 64-bitarsversion för att skapa skuggkopior på detta system.</target>
-<source>Cannot load file %x.</source>
-<target>Kan inte läsa in %x</target>
-
<source>Cannot determine volume name for %x.</source>
<target>Kan inte utläsa volymnamn för %x</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>S&para som...</target>
-<source>&Quit</source>
-<target>&Avsluta</target>
+<source>E&xit</source>
+<target>A&vsluta</target>
<source>&File</source>
<target>&Arkiv</target>
@@ -435,6 +438,9 @@ Kommandot triggas om:
<source>&Show error</source>
<target>&Visa fel</target>
+<source>&Quit</source>
+<target>&Avsluta</target>
+
<source>Incorrect command line:</source>
<target>Felaktig kommandorad:</target>
@@ -480,11 +486,11 @@ Kommandot triggas om:
<source>Creating folder %x</source>
<target>Skapar mappen %x</target>
-<source>Overwriting file %x</source>
-<target>Skriver över filen %x</target>
+<source>Updating file %x</source>
+<target>Uppdaterar %x</target>
-<source>Overwriting symbolic link %x</source>
-<target>Skriver över den symboliska länken %x</target>
+<source>Updating symbolic link %x</source>
+<target>Uppdaterar symbolisk länk för %x</target>
<source>Verifying file %x</source>
<target>Verifierar %x</target>
@@ -498,21 +504,21 @@ Kommandot triggas om:
<source>Data verification error: %x and %y have different content.</source>
<target>Dataverifieringsfel: %x och %y har olika innehåll.</target>
-<source>Cannot find folder %x.</source>
-<target>Kan inte hitta mappen %x</target>
-
<source>Target folder %x already existing.</source>
<target>MÃ¥lmappen %x finns redan.</target>
+<source>Cannot find folder %x.</source>
+<target>Kan inte hitta mappen %x</target>
+
<source>Target folder input field must not be empty.</source>
<target>Indatafältet för målmapp får inte vara tomt.</target>
-<source>Please enter a target folder for versioning.</source>
-<target>Ange en målmapp för versionshantering.</target>
-
<source>Source folder %x not found.</source>
<target>Källmappen %x kan inte hittas.</target>
+<source>Please enter a target folder for versioning.</source>
+<target>Ange en målmapp för versionshantering.</target>
+
<source>The following items have unresolved conflicts and will not be synchronized:</source>
<target>Följande objekt har olösta konflikter, och kommer inte att synkroniseras:</target>
@@ -555,8 +561,8 @@ Kommandot triggas om:
<source>Synchronization completed successfully</source>
<target>Synkronisering slutförd</target>
-<source>Saving log file %x...</source>
-<target>Sparar loggfil %x...</target>
+<source>Cleaning up old log files...</source>
+<target>Rensar ut gamla loggfiler...</target>
<source>Stopped</source>
<target>Stoppad</target>
@@ -609,8 +615,8 @@ Kommandot triggas om:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync är uppdaterad.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>Kan inte ansluta sourceforge.net.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>Kan inte ansluta till 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>
@@ -696,9 +702,21 @@ Kommandot triggas om:
<source>Start &comparison</source>
<target>&Jämför</target>
+<source>C&omparison settings</source>
+<target>I&nställningar för jämförelse</target>
+
+<source>&Filter settings</source>
+<target>&Filterinställningar</target>
+
+<source>S&ynchronization settings</source>
+<target>&Inställningar för synkronisering</target>
+
<source>Start &synchronization</source>
<target>&Synkronisera</target>
+<source>&Actions</source>
+<target>&Åtgärder</target>
+
<source>&Options</source>
<target>&Alternativ</target>
@@ -777,8 +795,8 @@ Kommandot triggas om:
<source>Number of files and folders that will be deleted</source>
<target>Antal filer och mappar som kommer att tas bort</target>
-<source>Number of files that will be overwritten</source>
-<target>Antal filer som kommer att skrivas över</target>
+<source>Number of files that will be updated</source>
+<target>Antal filer som kommer att uppdateras</target>
<source>Number of files and folders that will be created</source>
<target>Antal filer och mappar som kommer att skapas</target>
@@ -807,8 +825,14 @@ Kommandot triggas om:
<source>Handle daylight saving time</source>
<target>Hantera sommartid</target>
-<source>Symbolic links:</source>
-<target>Symboliska länkar:</target>
+<source>Include symbolic links:</source>
+<target>Inkludera symboliska länkar:</target>
+
+<source>Direct</source>
+<target>Direkt</target>
+
+<source>Follow</source>
+<target>Följ</target>
<source>More information</source>
<target>Mer information</target>
@@ -837,24 +861,24 @@ Kommandot triggas om:
<source>Maximum:</source>
<target>Max:</target>
-<source>C&lear</source>
-<target>&Rensa</target>
-
<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
<target>Skapa filtreringsregler för att undanta vissa filer från synkronisering. Sökvägar relateras till motsvarande katalogpar</target>
+<source>C&lear</source>
+<target>&Rensa</target>
+
<source>Detect moved files</source>
<target>Hitta flyttade filer</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
+- Detektion aktiv efter inledande synkronisering
- Kräver och skapar databasfiler
-- Övervakning aktiv efter initial synkronisering
-- Stöds ej av alla filsystem
+- Stöds inte av alla filsystem
</target>
<source>Detect synchronization directions with the help of database files</source>
@@ -1067,27 +1091,15 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>View Settings</source>
<target>Visningsinställningar</target>
-<source>Overview</source>
-<target>Översikt</target>
-
<source>Configuration</source>
<target>Inställningar</target>
+<source>Overview</source>
+<target>Översikt</target>
+
<source>Main Bar</source>
<target>Primärt verktygsfält</target>
-<source>Start comparison</source>
-<target>Jämför</target>
-
-<source>Comparison settings</source>
-<target>Jämförelseinställningar</target>
-
-<source>Synchronization settings</source>
-<target>Synkroniseringsinställningar</target>
-
-<source>Start synchronization</source>
-<target>Starta synkronisering</target>
-
<source>Confirm</source>
<target>Bekräfta</target>
@@ -1238,11 +1250,11 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Show files that will be deleted on the right side</source>
<target>Visa filer som kommer att tas bort till höger</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Visa filer som skrivas över till vänster</target>
+<source>Show files that will be updated on the left side</source>
+<target>Visa filer som kommer att uppdateras på vänster sida</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Visa filer som skrivas över till höger</target>
+<source>Show files that will be updated on the right side</source>
+<target>Visa filer som kommer att uppdateras på höger sida</target>
<source>Show files that won't be copied</source>
<target>Visa filer som inte kommer att kopieras</target>
@@ -1379,15 +1391,6 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Configure your own synchronization rules.</source>
<target>Konfigurera dina egna synkroniseringsregler.</target>
-<source>Exclude</source>
-<target>Undanta</target>
-
-<source>Direct</source>
-<target>Direkt</target>
-
-<source>Follow</source>
-<target>Följ</target>
-
<source>Today</source>
<target>Idag</target>
@@ -1451,9 +1454,6 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Cannot monitor directory %x.</source>
<target>Mappen %x kan inte övervakas.</target>
-<source>Conversion error:</source>
-<target>Konversionsfel:</target>
-
<source>Cannot delete file %x.</source>
<target>Filen %x kan inte tas bort.</target>
@@ -1487,14 +1487,14 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Cannot create directory %x.</source>
<target>Kan inte skapa mappen %x.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>Kan inte skapa den symboliska länken, %x</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>Kan inte kopiera den symboliska länken %x till %y</target>
<source>Cannot find system function %x.</source>
<target>Kan inte hitta systemfunktion %x</target>
<source>Cannot copy file %x to %y.</source>
-<target>Kan inte kopiera filen %x till %y.</target>
+<target>Kan inte kopiera %x till %y.</target>
<source>Type of item %x is not supported:</source>
<target>Objekttyp %x stöds ej:</target>
@@ -1551,7 +1551,7 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<target>Det går inte att avbryta systemets viloläge</target>
<source>Cannot change process I/O priorities.</source>
-<target>Kan inte ändra process I/O-prioritet</target>
+<target>Kan inte ändra I/O-prioritet.</target>
<source>Unable to move %x to the recycle bin.</source>
<target>Kan inte att flytta %x till papperskorgen</target>
@@ -1571,3 +1571,72 @@ Detta garanterar ett konsekvent tillstånd även vid allvarliga fel.
<source>Configuration file %x loaded partially only.</source>
<target>Konfigurationsfilen %x lästes bara delvis in.</target>
+<source>Prepare installation</source>
+<target>Förbered installation</target>
+
+<source>Choose which components you want to install.</source>
+<target>Välj vilka komponenter du vill installera</target>
+
+<source>Select installation type:</source>
+<target>Välj installationstyp:</target>
+
+<source>Local</source>
+<target>Lokal</target>
+
+<source>Portable</source>
+<target>Portabel</target>
+
+<source>recommended</source>
+<target>rekommenderas</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Sparar inställningar i "%APPDATA%\FreeFileSync"</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Registrerar filformat för FreeFileSync</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Skapar kontextmeny för Utforskaren</target>
+
+<source>Save settings in installation directory</source>
+<target>Sparar inställningar i programmappen</target>
+
+<source>Do not write to Registry</source>
+<target>Skriver inte till registret</target>
+
+<source>Just copy the files</source>
+<target>Kopierar endast programfiler till valfri mapp</target>
+
+<source>Choose a directory for installation:</source>
+<target>Välj installationsmapp:</target>
+
+<source>Create shortcuts:</source>
+<target>Skapa genvägar:</target>
+
+<source>Desktop</source>
+<target>Skrivbord</target>
+
+<source>Start menu</source>
+<target>Startmeny</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>Registrerar filformat för FreeFileSync</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>Avregistrerar filformat för FreeFileSync</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync Konfiguration</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync Batch-fil</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync Synkroniseringsdatabas</target>
+
+<source>RealtimeSync Configuration</source>
+<target>RealtimeSync Konfiguration</target>
+
+<source>Edit with FreeFileSync</source>
+<target>Redigera med FreeFileSync</target>
+
diff --git a/FreeFileSync/Build/Languages/turkish.lng b/FreeFileSync/Build/Languages/turkish.lng
index 3dc44c4c..66552031 100644
--- a/FreeFileSync/Build/Languages/turkish.lng
+++ b/FreeFileSync/Build/Languages/turkish.lng
@@ -94,6 +94,9 @@
<source>Any number of alternative directory pairs for at most one config file.</source>
<target>Bir ayar dosyasındaki en fazla alternatif klasör çifti sayısı.</target>
+<source>Open configuration for edit without executing.</source>
+<target>Ayarları çalıştırmadan düzenlemek için açın.</target>
+
<source>Cannot find the following folders:</source>
<target>Aşağıdaki klasörler bulunamadı:</target>
@@ -184,11 +187,11 @@
<source>Move file on right</source>
<target>Sağdaki dosya taşınsın</target>
-<source>Overwrite left item</source>
-<target>Soldaki ögenin üzerine yazılsın</target>
+<source>Update left item</source>
+<target>Soldaki öge güncellensin</target>
-<source>Overwrite right item</source>
-<target>Sağdaki ögenin üzerine yazılsın</target>
+<source>Update right item</source>
+<target>Sağdaki öge güncellensin</target>
<source>Do nothing</source>
<target>Hiçbir işlem yapılmasın</target>
@@ -271,6 +274,9 @@
<source>Creating file %x</source>
<target>%x dosyası ekleniyor</target>
+<source>Saving file %x...</source>
+<target>%x dosyası kaydediliyor...</target>
+
<source>Items processed:</source>
<target>İşlenen öge:</target>
@@ -298,9 +304,6 @@
<pluralform>%x iş parçacığı</pluralform>
</target>
-<source>Encoding extended time information: %x</source>
-<target>Uzatılmış zaman bilgisi kodlanıyor: %x</target>
-
<source>/sec</source>
<target>/saniye</target>
@@ -340,8 +343,8 @@
<source>Save &as...</source>
<target>F&arklı kaydedin...</target>
-<source>&Quit</source>
-<target>Çı&kın</target>
+<source>E&xit</source>
+<target>Çı&kış</target>
<source>&File</source>
<target>&Dosya</target>
@@ -435,6 +438,9 @@ Komut şu durumlarda yürütülür:
<source>&Show error</source>
<target>Hataya &bakın</target>
+<source>&Quit</source>
+<target>Çı&kın</target>
+
<source>Incorrect command line:</source>
<target>Geçersiz komut satırı:</target>
@@ -480,11 +486,11 @@ Komut şu durumlarda yürütülür:
<source>Creating folder %x</source>
<target>%x klasörü ekleniyor</target>
-<source>Overwriting file %x</source>
-<target>%x dosyasının üzerine yazılıyor</target>
+<source>Updating file %x</source>
+<target>%x dosyası güncelleniyor</target>
-<source>Overwriting symbolic link %x</source>
-<target>%x sembolik bağlantısının üzerine yazılıyor</target>
+<source>Updating symbolic link %x</source>
+<target>%x sembolik bağlantısı güncelleniyor</target>
<source>Verifying file %x</source>
<target>%x dosyası doğrulanıyor</target>
@@ -555,8 +561,8 @@ Komut şu durumlarda yürütülür:
<source>Synchronization completed successfully</source>
<target>Eşleştirme tamamlandı</target>
-<source>Saving log file %x...</source>
-<target>%x günlük dosyası kaydediliyor...</target>
+<source>Cleaning up old log files...</source>
+<target>Eski günlük dosyaları temizleniyor...</target>
<source>Stopped</source>
<target>Durduruldu</target>
@@ -609,8 +615,8 @@ Komut şu durumlarda yürütülür:
<source>FreeFileSync is up to date.</source>
<target>FreeFileSync güncel.</target>
-<source>Unable to connect to sourceforge.net.</source>
-<target>sourceforge.net sitesine bağlanılamıyor.</target>
+<source>Unable to connect to FreeFileSync.org.</source>
+<target>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 bulunamıyor. El ile denetlemek ister misiniz?</target>
@@ -696,9 +702,21 @@ Komut şu durumlarda yürütülür:
<source>Start &comparison</source>
<target>&Karşılaştırmayı başlatın</target>
+<source>C&omparison settings</source>
+<target>Ka&rşılaştırma ayarları</target>
+
+<source>&Filter settings</source>
+<target>&Süzme ayarları</target>
+
+<source>S&ynchronization settings</source>
+<target>Eşleştirme a&yarları</target>
+
<source>Start &synchronization</source>
<target>&Eşleştirmeyi başlatın</target>
+<source>&Actions</source>
+<target>Ä°ÅŸ&lemler</target>
+
<source>&Options</source>
<target>A&yarlar</target>
@@ -777,8 +795,8 @@ Komut şu durumlarda yürütülür:
<source>Number of files and folders that will be deleted</source>
<target>Silinecek dosya ve klasör sayısı</target>
-<source>Number of files that will be overwritten</source>
-<target>Üzerine yazılacak dosya sayısı</target>
+<source>Number of files that will be updated</source>
+<target>Güncellenecek dosya sayısı</target>
<source>Number of files and folders that will be created</source>
<target>Eklenecek dosya ve klasör sayısı</target>
@@ -805,10 +823,16 @@ Komut şu durumlarda yürütülür:
<target>Belirtilen saat kadar zaman farkı yoksayılır</target>
<source>Handle daylight saving time</source>
-<target>Yaz saati hesaba katılsın</target>
+<target>Yaz saati uygulamasına bakın</target>
+
+<source>Include symbolic links:</source>
+<target>Katılacak sembolik bağlantılar:</target>
-<source>Symbolic links:</source>
-<target>Sembolik bağlantılar:</target>
+<source>Direct</source>
+<target>DoÄŸrudan</target>
+
+<source>Follow</source>
+<target>Hedefler</target>
<source>More information</source>
<target>Ek bilgilere bakın</target>
@@ -837,23 +861,23 @@ Komut şu durumlarda yürütülür:
<source>Maximum:</source>
<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şleştirilmeyecek dosyaları süzecek kuralları belirleyin. Dosya yollarını bulundukları klasör çiftine göre yazın.</target>
+
<source>C&lear</source>
<target>&Temizleyin</target>
-<source>Select filter rules to exclude certain files from synchronization. Enter file paths relative to their corresponding folder pair.</source>
-<target>Eşleştirmeye katılmayacak dosyaların süzülme kurallarını belirleyin. Dosya yollarını bulundukları klasör çiftine göre yazın.</target>
-
<source>Detect moved files</source>
<target>Taşınmış dosyalar algılansın</target>
<source>
-- Requires and creates database files
- Detection active after initial sync
+- Requires and creates database files
- Not supported by all file systems
</source>
<target>
-- Veritabanı dosyalarını kullanılır ve oluşturulur
-- Algılama, ilk eşleştirmeden sonra kullanılabilir
+- İlk eşleştirmeden sonra algılama etkinleştirilir
+- Veritabanı dosyalarının kullanılması gerekir
- Tüm dosya sistemleri tarafından desteklenmez
</target>
@@ -1067,27 +1091,15 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>View Settings</source>
<target>Görünüm Ayarları</target>
-<source>Overview</source>
-<target>Genel</target>
-
<source>Configuration</source>
<target>Ä°ÅŸlemler</target>
+<source>Overview</source>
+<target>Genel</target>
+
<source>Main Bar</source>
<target>Ana Çubuk</target>
-<source>Start comparison</source>
-<target>Karşılaştırmayı başlatın</target>
-
-<source>Comparison settings</source>
-<target>Karşılaştırma ayarları</target>
-
-<source>Synchronization settings</source>
-<target>Eşleştirme ayarları</target>
-
-<source>Start synchronization</source>
-<target>Eşleştirmeyi başlatın</target>
-
<source>Confirm</source>
<target>Onaylayın</target>
@@ -1238,11 +1250,11 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Show files that will be deleted on the right side</source>
<target>Sağ tarafta silinecek dosyalar görüntülensin</target>
-<source>Show files that will be overwritten on left side</source>
-<target>Sol tarafta üzerine yazılacak dosyalar görüntülensin</target>
+<source>Show files that will be updated on the left side</source>
+<target>Sol tarafta güncellenecek dosyalar görüntülensin</target>
-<source>Show files that will be overwritten on right side</source>
-<target>Sağ tarafta üzerine yazılacak dosyalar görüntülensin</target>
+<source>Show files that will be updated on the right side</source>
+<target>Sağ tarafta güncellenecek dosyalar görüntülensin</target>
<source>Show files that won't be copied</source>
<target>Kopyalanmayacak dosyalar görüntülensin</target>
@@ -1379,15 +1391,6 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Configure your own synchronization rules.</source>
<target>Eşleştirme kuralları kullanıcının isteğine göre belirlenir.</target>
-<source>Exclude</source>
-<target>Katılmasın</target>
-
-<source>Direct</source>
-<target>DoÄŸrudan</target>
-
-<source>Follow</source>
-<target>Hedefler</target>
-
<source>Today</source>
<target>Bugün</target>
@@ -1451,9 +1454,6 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Cannot monitor directory %x.</source>
<target>%x klasörü izlenemiyor.</target>
-<source>Conversion error:</source>
-<target>Dönüştürme hatası:</target>
-
<source>Cannot delete file %x.</source>
<target>%x dosyası silinemiyor.</target>
@@ -1487,8 +1487,8 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Cannot create directory %x.</source>
<target>%x klasörü eklenemedi.</target>
-<source>Cannot create symbolic link %x.</source>
-<target>%x sembolik bağlantısı oluşturulamadı.</target>
+<source>Cannot copy symbolic link %x to %y.</source>
+<target>%x sembolik bağlantısı %y olarak kopyalanamıyor.</target>
<source>Cannot find system function %x.</source>
<target>%x sistem işlevi bulunamadı.</target>
@@ -1571,3 +1571,72 @@ Bu yöntem, ciddi bir hata oluşması durumunda bile işlemin tutarlı olarak ya
<source>Configuration file %x loaded partially only.</source>
<target>%x ayarlar dosyası kısmen yüklendi.</target>
+<source>Prepare installation</source>
+<target>Yüklemeye hazırlanılıyor</target>
+
+<source>Choose which components you want to install.</source>
+<target>Yüklenecek bileşenleri seçin.</target>
+
+<source>Select installation type:</source>
+<target>Yükleme tipini seçin:</target>
+
+<source>Local</source>
+<target>Yerel</target>
+
+<source>Portable</source>
+<target>Portable</target>
+
+<source>recommended</source>
+<target>önerilir</target>
+
+<source>Save settings to "%APPDATA%\FreeFileSync"</source>
+<target>Ayarlar "%APPDATA%\FreeFileSync" klasörüne kaydedilir</target>
+
+<source>Register FreeFileSync file extensions</source>
+<target>Kayıt defterine FreeFileSync dosya eklentileri eklenir</target>
+
+<source>Create Explorer context menu entries</source>
+<target>Dosya yöneticisi sağ tık menü kayıtları eklensin</target>
+
+<source>Save settings in installation directory</source>
+<target>Ayarlar yükleme klasörüne kaydedilir</target>
+
+<source>Do not write to Registry</source>
+<target>Kayıt defterine herhangi bir bilgi eklenmez</target>
+
+<source>Just copy the files</source>
+<target>Yalnızca dosyalar kopyalanır</target>
+
+<source>Choose a directory for installation:</source>
+<target>Yükleme klasörünü seçin:</target>
+
+<source>Create shortcuts:</source>
+<target>Şuralarda kısayollar oluşturulsun:</target>
+
+<source>Desktop</source>
+<target>Masaüstü</target>
+
+<source>Start menu</source>
+<target>Başlat menüsü</target>
+
+<source>Registering FreeFileSync file extensions</source>
+<target>FreeFileSync eklentileri kayıt defterine ekleniyor</target>
+
+<source>Unregistering FreeFileSync file extensions</source>
+<target>FreeFileSync eklentileri kayıt defterinden siliniyor</target>
+
+<source>FreeFileSync Configuration</source>
+<target>FreeFileSync Ayarları</target>
+
+<source>FreeFileSync Batch File</source>
+<target>FreeFileSync Toplu İşlem Dosyası</target>
+
+<source>FreeFileSync Synchronization Database</source>
+<target>FreeFileSync Eşleştirme Veritabanı</target>
+
+<source>RealtimeSync Configuration</source>
+<target>Gerçek Zamanlı Eşleştirme Ayarları</target>
+
+<source>Edit with FreeFileSync</source>
+<target>FreeFileSync ile düzenleyin</target>
+
diff --git a/FreeFileSync/Source/RealtimeSync/app_icon.h b/FreeFileSync/Source/RealtimeSync/app_icon.h
index fcd2b548..1a2a3e32 100644
--- a/FreeFileSync/Source/RealtimeSync/app_icon.h
+++ b/FreeFileSync/Source/RealtimeSync/app_icon.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/application.cpp b/FreeFileSync/Source/RealtimeSync/application.cpp
index 85c89f6b..c8461724 100644
--- a/FreeFileSync/Source/RealtimeSync/application.cpp
+++ b/FreeFileSync/Source/RealtimeSync/application.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -8,7 +8,6 @@
#include "main_dlg.h"
#include <zen/file_access.h>
#include <zen/thread.h>
-#include <zen/dll.h>
#include <wx/event.h>
#include <wx/log.h>
#include <wx/tooltip.h>
@@ -22,11 +21,12 @@
#include "../lib/error_log.h"
#ifdef ZEN_WIN
-#include <zen/win_ver.h>
-#include "../lib/app_user_mode_id.h"
+ #include <zen/win_ver.h>
+#include <zen/dll.h>
+ #include "../lib/app_user_mode_id.h"
#elif defined ZEN_LINUX
-#include <gtk/gtk.h>
+ #include <gtk/gtk.h>
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/RealtimeSync/application.h b/FreeFileSync/Source/RealtimeSync/application.h
index 90180d23..2d2bd4c2 100644
--- a/FreeFileSync/Source/RealtimeSync/application.h
+++ b/FreeFileSync/Source/RealtimeSync/application.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/gui_generated.cpp b/FreeFileSync/Source/RealtimeSync/gui_generated.cpp
index 6a70d57d..696ef5be 100644
--- a/FreeFileSync/Source/RealtimeSync/gui_generated.cpp
+++ b/FreeFileSync/Source/RealtimeSync/gui_generated.cpp
@@ -29,7 +29,7 @@ MainDlgGenerated::MainDlgGenerated( wxWindow* parent, wxWindowID id, const wxStr
m_menuFile->AppendSeparator();
wxMenuItem* m_menuItem4;
- m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("&Quit") ) , wxEmptyString, wxITEM_NORMAL );
+ 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") );
diff --git a/FreeFileSync/Source/RealtimeSync/main_dlg.cpp b/FreeFileSync/Source/RealtimeSync/main_dlg.cpp
index 121f5486..a68cb742 100644
--- a/FreeFileSync/Source/RealtimeSync/main_dlg.cpp
+++ b/FreeFileSync/Source/RealtimeSync/main_dlg.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -22,13 +22,13 @@
#include "../lib/ffs_paths.h"
#ifdef ZEN_WIN
-#include <wx+/mouse_move_dlg.h>
+ #include <wx+/mouse_move_dlg.h>
#elif defined ZEN_LINUX
-#include <gtk/gtk.h>
+ #include <gtk/gtk.h>
#elif defined ZEN_MAC
-#include <ApplicationServices/ApplicationServices.h>
-#include <wx/app.h>
+ #include <ApplicationServices/ApplicationServices.h>
+ #include <wx/app.h>
#endif
using namespace zen;
@@ -422,9 +422,9 @@ void MainDialog::OnRemoveTopFolder(wxCommandEvent& event)
#ifdef ZEN_WIN
-static const size_t MAX_ADD_FOLDERS = 8;
+ static const size_t MAX_ADD_FOLDERS = 8;
#elif defined ZEN_LINUX || defined ZEN_MAC
-static const size_t MAX_ADD_FOLDERS = 6;
+ static const size_t MAX_ADD_FOLDERS = 6;
#endif
diff --git a/FreeFileSync/Source/RealtimeSync/main_dlg.h b/FreeFileSync/Source/RealtimeSync/main_dlg.h
index b77ee045..a6071c1b 100644
--- a/FreeFileSync/Source/RealtimeSync/main_dlg.h
+++ b/FreeFileSync/Source/RealtimeSync/main_dlg.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/monitor.cpp b/FreeFileSync/Source/RealtimeSync/monitor.cpp
index 4c17467e..1cf09740 100644
--- a/FreeFileSync/Source/RealtimeSync/monitor.cpp
+++ b/FreeFileSync/Source/RealtimeSync/monitor.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/monitor.h b/FreeFileSync/Source/RealtimeSync/monitor.h
index 77fe4740..87915b41 100644
--- a/FreeFileSync/Source/RealtimeSync/monitor.h
+++ b/FreeFileSync/Source/RealtimeSync/monitor.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/tray_menu.cpp b/FreeFileSync/Source/RealtimeSync/tray_menu.cpp
index 2a59902f..f70acc70 100644
--- a/FreeFileSync/Source/RealtimeSync/tray_menu.cpp
+++ b/FreeFileSync/Source/RealtimeSync/tray_menu.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/tray_menu.h b/FreeFileSync/Source/RealtimeSync/tray_menu.h
index 1f71a017..1b906c54 100644
--- a/FreeFileSync/Source/RealtimeSync/tray_menu.h
+++ b/FreeFileSync/Source/RealtimeSync/tray_menu.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/xml_proc.cpp b/FreeFileSync/Source/RealtimeSync/xml_proc.cpp
index 04edbf86..b60cf0a6 100644
--- a/FreeFileSync/Source/RealtimeSync/xml_proc.cpp
+++ b/FreeFileSync/Source/RealtimeSync/xml_proc.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/RealtimeSync/xml_proc.h b/FreeFileSync/Source/RealtimeSync/xml_proc.h
index 9fe4e620..e86ec5c0 100644
--- a/FreeFileSync/Source/RealtimeSync/xml_proc.h
+++ b/FreeFileSync/Source/RealtimeSync/xml_proc.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/algorithm.cpp b/FreeFileSync/Source/algorithm.cpp
index 37f627ee..dae18933 100644
--- a/FreeFileSync/Source/algorithm.cpp
+++ b/FreeFileSync/Source/algorithm.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -627,11 +627,8 @@ std::vector<DirectionConfig> zen::extractDirectionCfg(const MainConfiguration& m
mainCfg.additionalPairs.end());
std::vector<DirectionConfig> output;
- std::for_each(allPairs.begin(), allPairs.end(),
- [&](const FolderPairEnh& fp)
- {
+ for (const FolderPairEnh& fp : allPairs)
output.push_back(fp.altSyncConfig.get() ? fp.altSyncConfig->directionCfg : mainCfg.syncCfg.directionCfg);
- });
return output;
}
diff --git a/FreeFileSync/Source/algorithm.h b/FreeFileSync/Source/algorithm.h
index 64d10160..398d0def 100644
--- a/FreeFileSync/Source/algorithm.h
+++ b/FreeFileSync/Source/algorithm.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/application.cpp b/FreeFileSync/Source/application.cpp
index 3ca0c53c..12737071 100644
--- a/FreeFileSync/Source/application.cpp
+++ b/FreeFileSync/Source/application.cpp
@@ -1,13 +1,12 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "application.h"
#include <memory>
#include <zen/file_access.h>
-#include <zen/dll.h>
#include <wx/tooltip.h>
#include <wx/log.h>
#include <wx+/app_main.h>
@@ -24,11 +23,12 @@
#include "lib/error_log.h"
#ifdef ZEN_WIN
-#include <zen/win_ver.h>
-#include "lib/app_user_mode_id.h"
+ #include <zen/win_ver.h>
+ #include <zen/dll.h>
+ #include "lib/app_user_mode_id.h"
#elif defined ZEN_LINUX
-#include <gtk/gtk.h>
+ #include <gtk/gtk.h>
#endif
using namespace zen;
@@ -204,30 +204,30 @@ void Application::onEnterEventLoop(wxEvent& event)
#ifdef ZEN_MAC
-/*
-wxWidgets initialization sequence on OS X is a mess:
-----------------------------------------------------
-1. double click FFS app bundle or execute from command line without arguments
- OnInit()
- OnRun()
- onEnterEventLoop()
- MacNewFile()
-
-2. double-click .ffs_gui file
- OnInit()
- OnRun()
- onEnterEventLoop()
- MacOpenFiles()
-
-3. start from command line with .ffs_gui file as first argument
- OnInit()
- OnRun()
- MacOpenFiles() -> WTF!?
- onEnterEventLoop()
- MacNewFile() -> yes, wxWidgets screws up once again: http://trac.wxwidgets.org/ticket/14558
-
-=> solution: map Apple events to regular command line via launcher
-*/
+ /*
+ wxWidgets initialization sequence on OS X is a mess:
+ ----------------------------------------------------
+ 1. double click FFS app bundle or execute from command line without arguments
+ OnInit()
+ OnRun()
+ onEnterEventLoop()
+ MacNewFile()
+
+ 2. double-click .ffs_gui file
+ OnInit()
+ OnRun()
+ onEnterEventLoop()
+ MacOpenFiles()
+
+ 3. start from command line with .ffs_gui file as first argument
+ OnInit()
+ OnRun()
+ MacOpenFiles() -> WTF!?
+ onEnterEventLoop()
+ MacNewFile() -> yes, wxWidgets screws up once again: http://trac.wxwidgets.org/ticket/14558
+
+ => solution: map Apple events to regular command line via launcher
+ */
#endif
diff --git a/FreeFileSync/Source/application.h b/FreeFileSync/Source/application.h
index ce0284e8..c866fe67 100644
--- a/FreeFileSync/Source/application.h
+++ b/FreeFileSync/Source/application.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/comparison.cpp b/FreeFileSync/Source/comparison.cpp
index 08d5ee71..30f97b05 100644
--- a/FreeFileSync/Source/comparison.cpp
+++ b/FreeFileSync/Source/comparison.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -724,9 +724,11 @@ std::shared_ptr<BaseDirPair> ComparisonBuffer::performComparison(const ResolvedF
fpCfg.compareVar,
fpCfg.fileTimeTolerance,
fpCfg.optTimeShiftHours);
+
//PERF_START;
- MergeSides(undefinedFiles, undefinedLinks).execute(bufValueLeft ? bufValueLeft ->dirCont : DirContainer(),
- bufValueRight ? bufValueRight->dirCont : DirContainer(), *output);
+ DirContainer emptyDirCont; //WTF!!! => using a temporary in the ternary conditional would implicitly call the DirContainer copy-constructor!!!!!!
+ MergeSides(undefinedFiles, undefinedLinks).execute(bufValueLeft ? bufValueLeft ->dirCont : emptyDirCont,
+ bufValueRight ? bufValueRight->dirCont : emptyDirCont, *output);
//PERF_STOP;
//##################### in/exclude rows according to filtering #####################
diff --git a/FreeFileSync/Source/comparison.h b/FreeFileSync/Source/comparison.h
index 6fcd3c29..0aa5dd38 100644
--- a/FreeFileSync/Source/comparison.h
+++ b/FreeFileSync/Source/comparison.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/file_hierarchy.cpp b/FreeFileSync/Source/file_hierarchy.cpp
index 0fd50191..16b02a21 100644
--- a/FreeFileSync/Source/file_hierarchy.cpp
+++ b/FreeFileSync/Source/file_hierarchy.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -319,9 +319,9 @@ std::wstring zen::getSyncOpDescription(SyncOperation op)
case SO_MOVE_RIGHT_TARGET:
return _("Move file on right");
case SO_OVERWRITE_LEFT:
- return _("Overwrite left item");
+ return _("Update left item");
case SO_OVERWRITE_RIGHT:
- return _("Overwrite right item");
+ return _("Update right item");
case SO_DO_NOTHING:
return _("Do nothing");
case SO_EQUAL:
diff --git a/FreeFileSync/Source/file_hierarchy.h b/FreeFileSync/Source/file_hierarchy.h
index 1468750e..5c473466 100644
--- a/FreeFileSync/Source/file_hierarchy.h
+++ b/FreeFileSync/Source/file_hierarchy.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -105,6 +105,10 @@ struct DirContainer
typedef std::map<Zstring, LinkDescriptor, LessFilename> LinkList; //
//------------------------------------------------------------------
+ DirContainer() = default;
+ DirContainer (const DirContainer&) = delete; //catch accidental (and unnecessary) copying
+ DirContainer& operator=(const DirContainer&) = delete; //
+
DirList dirs;
FileList files;
LinkList links; //non-followed symlinks
@@ -541,7 +545,7 @@ class SymlinkPair : public FileSystemObject //this class models a TRUE symbolic
friend class HierarchyObject; //construction
public:
- virtual void accept(FSObjectVisitor& visitor) const;
+ void accept(FSObjectVisitor& visitor) const override;
template <SelectedSide side> std::int64_t getLastWriteTime() const; //write time of the link, NOT target!
diff --git a/FreeFileSync/Source/lib/binary.cpp b/FreeFileSync/Source/lib/binary.cpp
index 5fb1d176..0b365621 100644
--- a/FreeFileSync/Source/lib/binary.cpp
+++ b/FreeFileSync/Source/lib/binary.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/binary.h b/FreeFileSync/Source/lib/binary.h
index c9c479ac..774c6767 100644
--- a/FreeFileSync/Source/lib/binary.h
+++ b/FreeFileSync/Source/lib/binary.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/db_file.cpp b/FreeFileSync/Source/lib/db_file.cpp
index c1bc5478..22bd2424 100644
--- a/FreeFileSync/Source/lib/db_file.cpp
+++ b/FreeFileSync/Source/lib/db_file.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -14,8 +14,8 @@
#include <wx+/zlib_wrap.h>
#ifdef ZEN_WIN
-#include <zen/win.h> //includes "windows.h"
-#include <zen/long_path_prefix.h>
+ #include <zen/win.h> //includes "windows.h"
+ #include <zen/long_path_prefix.h>
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/lib/db_file.h b/FreeFileSync/Source/lib/db_file.h
index 9998bbc3..9ceacf51 100644
--- a/FreeFileSync/Source/lib/db_file.h
+++ b/FreeFileSync/Source/lib/db_file.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/dir_exist_async.h b/FreeFileSync/Source/lib/dir_exist_async.h
index a7e9b0b7..0d8340b2 100644
--- a/FreeFileSync/Source/lib/dir_exist_async.h
+++ b/FreeFileSync/Source/lib/dir_exist_async.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/dir_lock.cpp b/FreeFileSync/Source/lib/dir_lock.cpp
index 1d1ce2ae..b486c730 100644
--- a/FreeFileSync/Source/lib/dir_lock.cpp
+++ b/FreeFileSync/Source/lib/dir_lock.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "dir_lock.h"
@@ -18,18 +18,18 @@
#include <zen/optional.h>
#ifdef ZEN_WIN
-#include <tlhelp32.h>
-#include <zen/win.h> //includes "windows.h"
-#include <zen/long_path_prefix.h>
-#include <Sddl.h> //login sid
-#include <Lmcons.h> //UNLEN
+ #include <tlhelp32.h>
+ #include <zen/win.h> //includes "windows.h"
+ #include <zen/long_path_prefix.h>
+ #include <Sddl.h> //login sid
+ #include <Lmcons.h> //UNLEN
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <fcntl.h> //open()
-#include <sys/stat.h> //
-#include <unistd.h> //getsid()
-#include <signal.h> //kill()
-#include <pwd.h> //getpwuid_r()
+ #include <fcntl.h> //open()
+ #include <sys/stat.h> //
+ #include <unistd.h> //getsid()
+ #include <signal.h> //kill()
+ #include <pwd.h> //getpwuid_r()
#endif
using namespace zen;
@@ -205,11 +205,11 @@ Zstring getLoginSid() //throw FileError
#ifdef ZEN_WIN
-typedef DWORD ProcessId;
-typedef DWORD SessionId;
+ typedef DWORD ProcessId;
+ typedef DWORD SessionId;
#elif defined ZEN_LINUX || defined ZEN_MAC
-typedef pid_t ProcessId;
-typedef pid_t SessionId;
+ typedef pid_t ProcessId;
+ typedef pid_t SessionId;
#endif
//return ppid on Windows, sid on Linux/Mac, "no value" if process corresponding to "processId" is not existing
diff --git a/FreeFileSync/Source/lib/dir_lock.h b/FreeFileSync/Source/lib/dir_lock.h
index 2eacc6af..8fd43fcf 100644
--- a/FreeFileSync/Source/lib/dir_lock.h
+++ b/FreeFileSync/Source/lib/dir_lock.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef DIR_LOCK_H_INCLUDED
diff --git a/FreeFileSync/Source/lib/error_log.h b/FreeFileSync/Source/lib/error_log.h
index f9e351c6..465f2aa5 100644
--- a/FreeFileSync/Source/lib/error_log.h
+++ b/FreeFileSync/Source/lib/error_log.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/ffs_paths.cpp b/FreeFileSync/Source/lib/ffs_paths.cpp
index 32026b25..b094fd5b 100644
--- a/FreeFileSync/Source/lib/ffs_paths.cpp
+++ b/FreeFileSync/Source/lib/ffs_paths.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -11,11 +11,11 @@
#include <wx+/string_conv.h>
#ifdef ZEN_MAC
-#include <vector>
-#include <zen/scope_guard.h>
-#include <zen/osx_string.h>
-//keep in .cpp file to not pollute global namespace!
-#include <ApplicationServices/ApplicationServices.h> //LSFindApplicationForInfo
+ #include <vector>
+ #include <zen/scope_guard.h>
+ #include <zen/osx_string.h>
+ //keep in .cpp file to not pollute global namespace!
+ #include <ApplicationServices/ApplicationServices.h> //LSFindApplicationForInfo
#endif
using namespace zen;
@@ -42,7 +42,11 @@ Zstring getInstallDir() //root install directory WITH path separator at end
#ifdef ZEN_WIN
inline
-bool isPortableVersion() { return !fileExists(getInstallDir() + L"uninstall.exe"); } //this check is a bit lame...
+bool isPortableVersion()
+{
+ return !(fileExists(getInstallDir() + L"uninstall.exe") || //created by NSIS
+ dirExists (getInstallDir() + L"Uninstall")); //created by Inno Setup
+}
#elif defined ZEN_LINUX
inline
bool isPortableVersion() { return !endsWith(getExecutableDir(), "/bin/"); } //this check is a bit lame...
diff --git a/FreeFileSync/Source/lib/ffs_paths.h b/FreeFileSync/Source/lib/ffs_paths.h
index 28516a3f..d4f2a0f8 100644
--- a/FreeFileSync/Source/lib/ffs_paths.h
+++ b/FreeFileSync/Source/lib/ffs_paths.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/generate_logfile.h b/FreeFileSync/Source/lib/generate_logfile.h
index af8d05a9..e77aa11e 100644
--- a/FreeFileSync/Source/lib/generate_logfile.h
+++ b/FreeFileSync/Source/lib/generate_logfile.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -44,7 +44,7 @@ Zstring getLastSyncsLogfilePath();
struct OnUpdateLogfileStatusNoThrow
{
OnUpdateLogfileStatusNoThrow(ProcessCallback& pc, const Zstring& logfilePath) : pc_(pc), logfilePath_(logfilePath), bytesWritten(),
- msg(replaceCpy(_("Saving log file %x..."), L"%x", fmtFileName(logfilePath_))) {}
+ msg(replaceCpy(_("Saving file %x..."), L"%x", fmtFileName(logfilePath_))) {}
void operator()(std::int64_t bytesDelta)
{
diff --git a/FreeFileSync/Source/lib/hard_filter.cpp b/FreeFileSync/Source/lib/hard_filter.cpp
index ca1005d1..3f153821 100644
--- a/FreeFileSync/Source/lib/hard_filter.cpp
+++ b/FreeFileSync/Source/lib/hard_filter.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/hard_filter.h b/FreeFileSync/Source/lib/hard_filter.h
index 19e7003b..f86306ec 100644
--- a/FreeFileSync/Source/lib/hard_filter.h
+++ b/FreeFileSync/Source/lib/hard_filter.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/help_provider.h b/FreeFileSync/Source/lib/help_provider.h
index 8ddc34c7..ecfa1e5e 100644
--- a/FreeFileSync/Source/lib/help_provider.h
+++ b/FreeFileSync/Source/lib/help_provider.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -8,11 +8,11 @@
#define HELPPROVIDER_H_INCLUDED
#ifdef ZEN_WIN
-#include <zen/zstring.h>
-#include <wx/msw/helpchm.h>
+ #include <zen/zstring.h>
+ #include <wx/msw/helpchm.h>
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <wx/html/helpctrl.h>
+ #include <wx/html/helpctrl.h>
#endif
#include "ffs_paths.h"
diff --git a/FreeFileSync/Source/lib/icon_buffer.cpp b/FreeFileSync/Source/lib/icon_buffer.cpp
index df0bee8b..b3b6f943 100644
--- a/FreeFileSync/Source/lib/icon_buffer.cpp
+++ b/FreeFileSync/Source/lib/icon_buffer.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -12,16 +12,16 @@
#include <wx+/image_resources.h>
#ifdef ZEN_WIN
-#include <zen/dll.h>
-#include <zen/win_ver.h>
-#include <wx/image.h>
-#include "../dll/Thumbnail/thumbnail.h"
+ #include <zen/dll.h>
+ #include <zen/win_ver.h>
+ #include <wx/image.h>
+ #include "../dll/Thumbnail/thumbnail.h"
#elif defined ZEN_LINUX
-#include <gtk/gtk.h>
+ #include <gtk/gtk.h>
#elif defined ZEN_MAC
-#include "osx_file_icon.h"
+ #include "osx_file_icon.h"
#endif
using namespace zen;
@@ -32,16 +32,16 @@ namespace
const size_t BUFFER_SIZE_MAX = 800; //maximum number of icons to hold in buffer: must be big enough to hold visible icons + preload buffer! Consider OS limit on GDI resources (wxBitmap)!!!
#ifndef NDEBUG
-const boost::thread::id mainThreadId = boost::this_thread::get_id();
+ const boost::thread::id mainThreadId = boost::this_thread::get_id();
#endif
#ifdef ZEN_WIN
-const bool isXpOrLater = winXpOrLater(); //VS2010 compiled DLLs are not supported on Win 2000: Popup dialog "DecodePointer not found"
+ const bool isXpOrLater = winXpOrLater(); //VS2010 compiled DLLs are not supported on Win 2000: Popup dialog "DecodePointer not found"
-#define DEF_DLL_FUN(name) const auto name = isXpOrLater ? DllFun<thumb::FunType_##name>(thumb::getDllName(), thumb::funName_##name) : DllFun<thumb::FunType_##name>();
-DEF_DLL_FUN(getIconByIndex); //
-DEF_DLL_FUN(getThumbnail); //let's spare the boost::call_once hustle and allocate statically
-DEF_DLL_FUN(releaseImageData); //
+ #define DEF_DLL_FUN(name) const auto name = isXpOrLater ? DllFun<thumb::FunType_##name>(thumb::getDllName(), thumb::funName_##name) : DllFun<thumb::FunType_##name>();
+ DEF_DLL_FUN(getIconByIndex); //
+ DEF_DLL_FUN(getThumbnail); //let's spare the boost::call_once hustle and allocate statically
+ DEF_DLL_FUN(releaseImageData); //
#endif
class IconHolder //handle HICON/GdkPixbuf ownership supporting thread-safe usage (in contrast to wxIcon/wxBitmap)
diff --git a/FreeFileSync/Source/lib/icon_buffer.h b/FreeFileSync/Source/lib/icon_buffer.h
index 3c313bf5..ff049343 100644
--- a/FreeFileSync/Source/lib/icon_buffer.h
+++ b/FreeFileSync/Source/lib/icon_buffer.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/localization.cpp b/FreeFileSync/Source/lib/localization.cpp
index f891fdb4..72bbcf1b 100644
--- a/FreeFileSync/Source/lib/localization.cpp
+++ b/FreeFileSync/Source/lib/localization.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -21,10 +21,10 @@
#include "ffs_paths.h"
#ifdef ZEN_LINUX
-#include <wchar.h> //wcscasecmp
+ #include <wchar.h> //wcscasecmp
#elif defined ZEN_MAC
-#include <CoreServices/CoreServices.h>
+ #include <CoreServices/CoreServices.h>
#endif
using namespace zen;
@@ -441,10 +441,10 @@ void zen::setLanguage(int language) //throw FileError
//(try to) retrieve language file
std::wstring languageFile;
- for (auto it = ExistingTranslations::get().begin(); it != ExistingTranslations::get().end(); ++it)
- if (it->languageID == language)
+ for (const ExistingTranslations::Entry& e : ExistingTranslations::get())
+ if (e.languageID == language)
{
- languageFile = it->languageFile;
+ languageFile = e.languageFile;
break;
}
diff --git a/FreeFileSync/Source/lib/localization.h b/FreeFileSync/Source/lib/localization.h
index 6cd61295..3663ac5b 100644
--- a/FreeFileSync/Source/lib/localization.h
+++ b/FreeFileSync/Source/lib/localization.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/norm_filter.h b/FreeFileSync/Source/lib/norm_filter.h
index 552931e2..e9ea0f5d 100644
--- a/FreeFileSync/Source/lib/norm_filter.h
+++ b/FreeFileSync/Source/lib/norm_filter.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/parallel_scan.cpp b/FreeFileSync/Source/lib/parallel_scan.cpp
index 930078b5..2b76bf62 100644
--- a/FreeFileSync/Source/lib/parallel_scan.cpp
+++ b/FreeFileSync/Source/lib/parallel_scan.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/parallel_scan.h b/FreeFileSync/Source/lib/parallel_scan.h
index 4b0e0748..5557d10f 100644
--- a/FreeFileSync/Source/lib/parallel_scan.h
+++ b/FreeFileSync/Source/lib/parallel_scan.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/parse_lng.h b/FreeFileSync/Source/lib/parse_lng.h
index 9fbebff4..2fe15a27 100644
--- a/FreeFileSync/Source/lib/parse_lng.h
+++ b/FreeFileSync/Source/lib/parse_lng.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -361,32 +361,32 @@ public:
consumeToken(Token::TK_HEADER_BEGIN);
consumeToken(Token::TK_LANG_NAME_BEGIN);
- header.languageName = tk.text;
+ header.languageName = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_LANG_NAME_END);
consumeToken(Token::TK_TRANS_NAME_BEGIN);
- header.translatorName = tk.text;
+ header.translatorName = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_TRANS_NAME_END);
consumeToken(Token::TK_LOCALE_NAME_BEGIN);
- header.localeName = tk.text;
+ header.localeName = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_LOCALE_NAME_END);
consumeToken(Token::TK_FLAG_FILE_BEGIN);
- header.flagFile = tk.text;
+ header.flagFile = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_FLAG_FILE_END);
consumeToken(Token::TK_PLURAL_COUNT_BEGIN);
- header.pluralCount = zen::stringTo<int>(tk.text);
+ header.pluralCount = zen::stringTo<int>(token().text);
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_PLURAL_COUNT_END);
consumeToken(Token::TK_PLURAL_DEF_BEGIN);
- header.pluralDefinition = tk.text;
+ header.pluralDefinition = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_PLURAL_DEF_END);
@@ -401,11 +401,8 @@ private:
if (token().type == Token::TK_PLURAL_BEGIN)
return parsePlural(pluralOut, pluralInfo);
- if (token().type != Token::TK_TEXT)
- throw ParsingError(L"Source text empty", scn.posRow(), scn.posCol());
- std::string original = tk.text;
- nextToken();
-
+ std::string original = token().text;
+ consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_SRC_END);
consumeToken(Token::TK_TRG_BEGIN);
@@ -415,9 +412,9 @@ private:
translation = token().text;
nextToken();
}
+ validateTranslation(original, translation); //throw throw ParsingError
consumeToken(Token::TK_TRG_END);
- validateTranslation(original, translation); //throw throw ParsingError
out.emplace(original, translation);
}
@@ -426,16 +423,17 @@ private:
//Token::TK_SRC_BEGIN already consumed
consumeToken(Token::TK_PLURAL_BEGIN);
- std::string engSingular = tk.text;
+ std::string engSingular = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_PLURAL_END);
consumeToken(Token::TK_PLURAL_BEGIN);
- std::string engPlural = tk.text;
+ std::string engPlural = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_PLURAL_END);
consumeToken(Token::TK_SRC_END);
+ const SingularPluralPair original(engSingular, engPlural);
consumeToken(Token::TK_TRG_BEGIN);
@@ -443,16 +441,14 @@ private:
while (token().type == Token::TK_PLURAL_BEGIN)
{
consumeToken(Token::TK_PLURAL_BEGIN);
- std::string pluralForm = tk.text;
+ std::string pluralForm = token().text;
consumeToken(Token::TK_TEXT);
consumeToken(Token::TK_PLURAL_END);
pluralList.push_back(pluralForm);
}
-
+ validateTranslation(original, pluralList, pluralInfo);
consumeToken(Token::TK_TRG_END);
- const SingularPluralPair original(engSingular, engPlural);
- validateTranslation(original, pluralList, pluralInfo);
pluralOut.emplace(original, pluralList);
}
@@ -463,7 +459,7 @@ private:
if (!translation.empty())
{
- //if original contains placeholder, so should translation!
+ //if original contains placeholder, so must translation!
auto checkPlaceholder = [&](const std::string& placeholder)
{
if (zen::contains(original, placeholder) &&
@@ -474,9 +470,15 @@ private:
checkPlaceholder("%y");
checkPlaceholder("%z");
+ auto ampersandTokenCount = [](const std::string& str) -> size_t
+ {
+ const std::string tmp = zen::replaceCpy(str, "&&", ""); //make sure to not catch && which windows resolves as just one & for display!
+ return std::count(tmp.begin(), tmp.end(), '&');
+ };
+
//if source contains ampersand to mark menu accellerator key, so must translation
- const size_t ampCountOrig = getAmpersandTokenCount(original);
- if (ampCountOrig != getAmpersandTokenCount(translation) ||
+ const size_t ampCountOrig = ampersandTokenCount(original);
+ if (ampCountOrig != ampersandTokenCount(translation) ||
ampCountOrig > 1)
throw ParsingError(L"Source and translation both need exactly one & character to mark a menu item access key or none at all", scn.posRow(), scn.posCol());
@@ -485,6 +487,28 @@ private:
if ((zen::endsWith(original, "&") && !zen::endsWith(original, "&&")) ||
(zen::endsWith(translation, "&") && !zen::endsWith(translation, "&&")))
throw ParsingError(L"The & character to mark a menu item access key must not occur at the end of a string", scn.posRow(), scn.posCol());
+
+#if 0
+ //if source ends with colon, so must translation (note: character seems to be universally used, even for asian and arabic languages)
+ if (zen::endsWith(original, ":") &&
+ !zen::endsWith(translation, ":") &&
+ !zen::endsWith(translation, "\xef\xbc\x9a")) //chinese colon
+ throw ParsingError(L"Source text ends with a colon character \":\", but translation does not", scn.posRow(), scn.posCol());
+
+ auto endsWithSingleDot = [](const std::string& s) { return zen::endsWith(s, ".") && !zen::endsWith(s, ".."); };
+
+ //if source ends with a period, so must translation (note: character seems to be universally used, even for asian and arabic languages)
+ if (endsWithSingleDot(original) &&
+ !endsWithSingleDot(translation) &&
+ !zen::endsWith(translation, "\xe3\x80\x82")) //chinese period
+ throw ParsingError(L"Source text ends with a punctuation mark character \".\", but translation does not", scn.posRow(), scn.posCol());
+
+ //if source ends with an ellipsis, so must translation (note: character seems to be universally used, even for asian and arabic languages)
+ if (zen::endsWith(original, "...") &&
+ !zen::endsWith(translation, "...") &&
+ !zen::endsWith(translation, "\xe2\x80\xa6")) //narrow ellipsis (spanish?)
+ throw ParsingError(L"Source text ends with an ellipsis \"...\", but translation does not", scn.posRow(), scn.posCol());
+#endif
}
}
@@ -552,12 +576,6 @@ private:
}
}
- static size_t getAmpersandTokenCount(const std::string& str)
- {
- const std::string tmp = zen::replaceCpy(str, "&&", ""); //make sure to not catch && which windows resolves as just one & for display!
- return std::count(tmp.begin(), tmp.end(), '&');
- }
-
void nextToken() { tk = scn.nextToken(); }
const Token& token() const { return tk; }
diff --git a/FreeFileSync/Source/lib/parse_plural.h b/FreeFileSync/Source/lib/parse_plural.h
index c19714de..a54eecea 100644
--- a/FreeFileSync/Source/lib/parse_plural.h
+++ b/FreeFileSync/Source/lib/parse_plural.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/perf_check.cpp b/FreeFileSync/Source/lib/perf_check.cpp
index 251e6274..19ff4bda 100644
--- a/FreeFileSync/Source/lib/perf_check.cpp
+++ b/FreeFileSync/Source/lib/perf_check.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/perf_check.h b/FreeFileSync/Source/lib/perf_check.h
index 32e74874..16376f97 100644
--- a/FreeFileSync/Source/lib/perf_check.h
+++ b/FreeFileSync/Source/lib/perf_check.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/process_xml.cpp b/FreeFileSync/Source/lib/process_xml.cpp
index 5f7dbf14..83741791 100644
--- a/FreeFileSync/Source/lib/process_xml.cpp
+++ b/FreeFileSync/Source/lib/process_xml.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/process_xml.h b/FreeFileSync/Source/lib/process_xml.h
index 6f07e0c9..3a853a90 100644
--- a/FreeFileSync/Source/lib/process_xml.h
+++ b/FreeFileSync/Source/lib/process_xml.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/resolve_path.cpp b/FreeFileSync/Source/lib/resolve_path.cpp
index a589260f..498ea39f 100644
--- a/FreeFileSync/Source/lib/resolve_path.cpp
+++ b/FreeFileSync/Source/lib/resolve_path.cpp
@@ -9,18 +9,18 @@
#include <wx/utils.h> //wxGetEnv
#ifdef ZEN_WIN
-#include <zen/long_path_prefix.h>
-#include <zen/file_access.h>
-#include <zen/win.h> //includes "windows.h"
-#include <zen/dll.h>
-#include <Shlobj.h>
-#ifdef _MSC_VER
-#pragma comment(lib, "Mpr.lib")
-#endif
+ #include <zen/long_path_prefix.h>
+ #include <zen/file_access.h>
+ #include <zen/win.h> //includes "windows.h"
+ #include <zen/dll.h>
+ #include <Shlobj.h>
+ #ifdef _MSC_VER
+ #pragma comment(lib, "Mpr.lib")
+ #endif
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <stdlib.h> //getenv()
-#include <unistd.h> //getcwd
+ #include <stdlib.h> //getenv()
+ #include <unistd.h> //getcwd
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/lib/resolve_path.h b/FreeFileSync/Source/lib/resolve_path.h
index 9533cd9d..bc141c90 100644
--- a/FreeFileSync/Source/lib/resolve_path.h
+++ b/FreeFileSync/Source/lib/resolve_path.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -27,8 +27,8 @@ Zstring expandMacros(const Zstring& text);
std::vector<Zstring> getDirectoryAliases(const Zstring& dirpassPhrase); //may block for slow USB sticks when resolving [<volume name>]
#ifdef ZEN_WIN
-//*blocks* if network is not reachable or when showing login prompt dialog!
-void loginNetworkShare(const Zstring& dirpath, bool allowUserInteraction); //noexcept; user interaction: show OS password prompt
+ //*blocks* if network is not reachable or when showing login prompt dialog!
+ void loginNetworkShare(const Zstring& dirpath, bool allowUserInteraction); //noexcept; user interaction: show OS password prompt
#endif
}
diff --git a/FreeFileSync/Source/lib/return_codes.h b/FreeFileSync/Source/lib/return_codes.h
index a37e11f2..71da2f02 100644
--- a/FreeFileSync/Source/lib/return_codes.h
+++ b/FreeFileSync/Source/lib/return_codes.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/soft_filter.h b/FreeFileSync/Source/lib/soft_filter.h
index db3f31ed..969e245f 100644
--- a/FreeFileSync/Source/lib/soft_filter.h
+++ b/FreeFileSync/Source/lib/soft_filter.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/status_handler.cpp b/FreeFileSync/Source/lib/status_handler.cpp
index 74872010..c19b97c4 100644
--- a/FreeFileSync/Source/lib/status_handler.cpp
+++ b/FreeFileSync/Source/lib/status_handler.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/status_handler.h b/FreeFileSync/Source/lib/status_handler.h
index 1ee23c38..6f90506c 100644
--- a/FreeFileSync/Source/lib/status_handler.h
+++ b/FreeFileSync/Source/lib/status_handler.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/status_handler_impl.h b/FreeFileSync/Source/lib/status_handler_impl.h
index 7ec491fb..e96eb249 100644
--- a/FreeFileSync/Source/lib/status_handler_impl.h
+++ b/FreeFileSync/Source/lib/status_handler_impl.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/lib/versioning.h b/FreeFileSync/Source/lib/versioning.h
index 38bb6189..b6456e20 100644
--- a/FreeFileSync/Source/lib/versioning.h
+++ b/FreeFileSync/Source/lib/versioning.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/process_callback.h b/FreeFileSync/Source/process_callback.h
index f75110ce..7948f2af 100644
--- a/FreeFileSync/Source/process_callback.h
+++ b/FreeFileSync/Source/process_callback.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/structures.cpp b/FreeFileSync/Source/structures.cpp
index f8716669..c549e0df 100644
--- a/FreeFileSync/Source/structures.cpp
+++ b/FreeFileSync/Source/structures.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -447,7 +447,7 @@ MainConfiguration zen::merge(const std::vector<MainConfiguration>& mainCfgs)
std::vector<std::pair<SyncConfig, int>> syncCfgStat;
for (const FolderPairEnh& fp : fpMerged)
{
- //rather inefficient algorithm, but it does not require a less-than operator:
+ //a rather inefficient algorithm, but it does not require a less-than operator:
{
const CompConfig& cmpCfg = *fp.altCmpConfig;
diff --git a/FreeFileSync/Source/structures.h b/FreeFileSync/Source/structures.h
index 8f718d15..d7844697 100644
--- a/FreeFileSync/Source/structures.h
+++ b/FreeFileSync/Source/structures.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/synchronization.cpp b/FreeFileSync/Source/synchronization.cpp
index 8aed5d16..c3abfa25 100644
--- a/FreeFileSync/Source/synchronization.cpp
+++ b/FreeFileSync/Source/synchronization.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -26,9 +26,9 @@
#include "lib/versioning.h"
#ifdef ZEN_WIN
-#include <zen/long_path_prefix.h>
-#include <zen/perf.h>
-#include "lib/shadow.h"
+ #include <zen/long_path_prefix.h>
+ #include <zen/perf.h>
+ #include "lib/shadow.h"
#endif
using namespace zen;
@@ -806,8 +806,8 @@ public:
txtCreatingFile (_("Creating file %x" )),
txtCreatingLink (_("Creating symbolic link %x" )),
txtCreatingFolder (_("Creating folder %x" )),
- txtOverwritingFile (_("Overwriting file %x" )),
- txtOverwritingLink (_("Overwriting symbolic link %x")),
+ txtOverwritingFile (_("Updating file %x" )),
+ txtOverwritingLink (_("Updating symbolic link %x")),
txtVerifying (_("Verifying file %x" )),
txtWritingAttributes(_("Updating attributes of %x" )),
txtMovingFile (_("Moving file %x to %y"))
@@ -1922,7 +1922,7 @@ struct ReadWriteCount
enum class FolderPairJobType
{
PROCESS,
- WRITE_DB_ONLY,
+ ALREADY_IN_SYNC,
SKIP,
};
}
@@ -2062,7 +2062,7 @@ void zen::synchronize(const TimeComp& timeStamp,
//-> skip creating (not yet existing) base directories in particular if there's no need
if (!writeLeft && !writeRight)
{
- jobType[folderIndex] = folderPairCfg.saveSyncDB_ ? FolderPairJobType::WRITE_DB_ONLY : FolderPairJobType::SKIP;
+ jobType[folderIndex] = FolderPairJobType::ALREADY_IN_SYNC;
continue;
}
@@ -2289,10 +2289,9 @@ void zen::synchronize(const TimeComp& timeStamp,
continue;
//------------------------------------------------------------------------------------------
- if (jobType[folderIndex] == FolderPairJobType::PROCESS)
- callback.reportInfo(_("Synchronizing folder pair:") + L" [" + getVariantName(folderPairCfg.syncVariant_) + L"]\n" +
- L" " + j->getBaseDirPf<LEFT_SIDE >() + L"\n" +
- L" " + j->getBaseDirPf<RIGHT_SIDE>());
+ callback.reportInfo(_("Synchronizing folder pair:") + L" [" + getVariantName(folderPairCfg.syncVariant_) + L"]\n" +
+ L" " + j->getBaseDirPf<LEFT_SIDE >() + L"\n" +
+ L" " + j->getBaseDirPf<RIGHT_SIDE>());
//------------------------------------------------------------------------------------------
//checking a second time: (a long time may have passed since the intro checks!)
diff --git a/FreeFileSync/Source/synchronization.h b/FreeFileSync/Source/synchronization.h
index 6b1cbfdd..bc85f077 100644
--- a/FreeFileSync/Source/synchronization.h
+++ b/FreeFileSync/Source/synchronization.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/app_icon.h b/FreeFileSync/Source/ui/app_icon.h
index a1240fee..03254f2d 100644
--- a/FreeFileSync/Source/ui/app_icon.h
+++ b/FreeFileSync/Source/ui/app_icon.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/batch_config.cpp b/FreeFileSync/Source/ui/batch_config.cpp
index 643fde32..d658732a 100644
--- a/FreeFileSync/Source/ui/batch_config.cpp
+++ b/FreeFileSync/Source/ui/batch_config.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -15,7 +15,7 @@
#include "../lib/help_provider.h"
#ifdef ZEN_WIN
-#include <wx+/mouse_move_dlg.h>
+ #include <wx+/mouse_move_dlg.h>
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/ui/batch_config.h b/FreeFileSync/Source/ui/batch_config.h
index 6041d848..f7e3a3db 100644
--- a/FreeFileSync/Source/ui/batch_config.h
+++ b/FreeFileSync/Source/ui/batch_config.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/batch_status_handler.cpp b/FreeFileSync/Source/ui/batch_status_handler.cpp
index 5f021484..84f996e1 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.cpp
+++ b/FreeFileSync/Source/ui/batch_status_handler.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -245,7 +245,7 @@ BatchStatusHandler::~BatchStatusHandler()
{
if (logfilesCountLimit_ > 0)
{
- try { reportStatus(_("Cleaning up old log files exceeding limit...")); }
+ try { reportStatus(_("Cleaning up old log files...")); }
catch (...) {}
limitLogfileCount(beforeLast(logFile->getFilename(), FILE_NAME_SEPARATOR), jobName_, logfilesCountLimit_, [&] { try { requestUiRefresh(); } catch (...) {} }); //throw()
}
@@ -264,14 +264,14 @@ BatchStatusHandler::~BatchStatusHandler()
renameFile(oldLogfilepath, addStatusToLogfilename(oldLogfilepath, _("Error"))); //throw FileError
//status "warning" is not important enough to show up in log file name
}
- catch (FileError&) {}
+ catch (FileError&) { assert(false); }
}
//----------------- write results into LastSyncs.log------------------------
try
{
saveToLastSyncsLog(summary, errorLog, lastSyncsLogFileSizeMax_, OnUpdateLogfileStatusNoThrow(*this, getLastSyncsLogfilePath())); //throw FileError
}
- catch (FileError&) {}
+ catch (FileError&) { assert(false); }
if (progressDlg)
{
diff --git a/FreeFileSync/Source/ui/batch_status_handler.h b/FreeFileSync/Source/ui/batch_status_handler.h
index 214a367b..71792dcc 100644
--- a/FreeFileSync/Source/ui/batch_status_handler.h
+++ b/FreeFileSync/Source/ui/batch_status_handler.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -49,7 +49,7 @@ public:
Response reportError (const std::wstring& errorMessage, size_t retryNumber ) override;
void reportFatalError(const std::wstring& errorMessage ) override;
- void abortProcessNow() override; //throw BatchAbortProcess
+ void abortProcessNow() override final; //throw BatchAbortProcess
private:
void onProgressDialogTerminate();
diff --git a/FreeFileSync/Source/ui/check_version.cpp b/FreeFileSync/Source/ui/check_version.cpp
index ce80753f..46663954 100644
--- a/FreeFileSync/Source/ui/check_version.cpp
+++ b/FreeFileSync/Source/ui/check_version.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -15,12 +15,12 @@
#include <zen/scope_guard.h>
#ifdef ZEN_WIN
-#include <zen/win.h> //tame wininet include
-#include <wininet.h>
+ #include <zen/win.h> //tame wininet include
+ #include <wininet.h>
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <wx/protocol/http.h>
-#include <wx/sstream.h>
+ #include <wx/protocol/http.h>
+ #include <wx/sstream.h>
#endif
using namespace zen;
@@ -51,7 +51,7 @@ std::wstring getUserAgentName()
#ifdef ZEN_WIN
class InternetConnectionError {};
-class WinInetAccess //using IE proxy settings! :)
+class WinInetAccess //1. uses IE proxy settings! :) 2. follows HTTP redirects by default
{
public:
WinInetAccess(const wchar_t* url) //throw InternetConnectionError (if url cannot be reached; no need to also call readBytes())
@@ -143,6 +143,57 @@ OutputIterator readBytesUrl(const wchar_t* url, OutputIterator result) //throw I
{
return WinInetAccess(url).readBytes(result); //throw InternetConnectionError
}
+
+#else
+bool getStringFromUrl(const wxString& server, const wxString& page, int timeout, wxString* output, int level = 0) //true on successful connection
+{
+ wxHTTP webAccess;
+ webAccess.SetHeader(L"content-type", L"text/html; charset=utf-8");
+ webAccess.SetHeader(L"USER-AGENT", getUserAgentName());
+
+ webAccess.SetTimeout(timeout); //default: 10 minutes(WTF are these wxWidgets people thinking???)...
+
+ if (webAccess.Connect(server)) //will *not* fail for non-reachable url here!
+ {
+ //wxApp::IsMainLoopRunning(); // should return true
+
+ std::unique_ptr<wxInputStream> httpStream(webAccess.GetInputStream(page));
+ //must be deleted BEFORE webAccess is closed
+ const int rs = webAccess.GetResponse();
+
+ if (rs == 301 || //http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
+ rs == 302 ||
+ rs == 303 ||
+ rs == 307)
+ if (level < 5) //"A user agent should not automatically redirect a request more than five times, since such redirections usually indicate an infinite loop."
+ {
+
+ wxString newLocation = webAccess.GetHeader(L"Location");
+ if (!newLocation.empty())
+ {
+ if (startsWith(newLocation, L"http://"))
+ newLocation = afterFirst(newLocation, L"http://");
+ const wxString serverNew = beforeFirst(newLocation, L"/"); //returns the whole string if term not found
+ const wxString pageNew = L"/" + afterFirst(newLocation, L"/"); //returns empty string if term not found
+
+ return getStringFromUrl(serverNew, pageNew, timeout, output, level + 1);
+ }
+ }
+
+ if (rs == 200) //HTTP_STATUS_OK
+ if (httpStream && webAccess.GetError() == wxPROTO_NOERR)
+ {
+ if (output)
+ {
+ output->clear();
+ wxStringOutputStream outStream(output);
+ httpStream->Read(outStream);
+ }
+ return true;
+ }
+ }
+ return false;
+}
#endif
@@ -174,39 +225,10 @@ GetVerResult getOnlineVersion(wxString& version) //empty string on error;
#elif defined ZEN_LINUX || defined ZEN_MAC
wxWindowDisabler dummy;
- auto getStringFromUrl = [](const wxString& server, const wxString& page, int timeout, wxString* output) -> bool //true on successful connection
- {
- wxHTTP webAccess;
- webAccess.SetHeader(L"content-type", L"text/html; charset=utf-8");
- webAccess.SetHeader(L"USER-AGENT", getUserAgentName());
-
- webAccess.SetTimeout(timeout); //default: 10 minutes(WTF are these wxWidgets people thinking???)...
-
- if (webAccess.Connect(server)) //will *not* fail for non-reachable url here!
- {
- //wxApp::IsMainLoopRunning(); // should return true
-
- std::unique_ptr<wxInputStream> httpStream(webAccess.GetInputStream(page));
- //must be deleted BEFORE webAccess is closed
-
- if (httpStream && webAccess.GetError() == wxPROTO_NOERR)
- {
- if (output)
- {
- output->clear();
- wxStringOutputStream outStream(output);
- httpStream->Read(outStream);
- }
- return true;
- }
- }
- return false;
- };
-
- if (getStringFromUrl(L"freefilesync.org", L"/latest_version.txt", 5, &version))
+ if (getStringFromUrl(L"www.freefilesync.org", L"/latest_version.txt", 5, &version))
return GET_VER_SUCCESS;
- const bool canConnectToSf = getStringFromUrl(L"freefilesync.org", L"/", 1, nullptr);
+ const bool canConnectToSf = getStringFromUrl(L"www.freefilesync.org", L"/", 1, nullptr);
return canConnectToSf ? GET_VER_PAGE_NOT_FOUND : GET_VER_NO_CONNECTION;
#endif
}
@@ -267,7 +289,7 @@ void zen::checkForUpdateNow(wxWindow* parent)
case GET_VER_NO_CONNECTION:
showNotificationDialog(parent, DialogInfoType::ERROR2, PopupDialogCfg().
setTitle(("Check for Program Updates")).
- setMainInstructions(_("Unable to connect to freefilesync.org.")));
+ setMainInstructions(_("Unable to connect to FreeFileSync.org.")));
break;
case GET_VER_PAGE_NOT_FOUND:
diff --git a/FreeFileSync/Source/ui/check_version.h b/FreeFileSync/Source/ui/check_version.h
index d2e7220f..4ffe9726 100644
--- a/FreeFileSync/Source/ui/check_version.h
+++ b/FreeFileSync/Source/ui/check_version.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/column_attr.h b/FreeFileSync/Source/ui/column_attr.h
index 42dc458d..f7aeb46f 100644
--- a/FreeFileSync/Source/ui/column_attr.h
+++ b/FreeFileSync/Source/ui/column_attr.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/custom_grid.cpp b/FreeFileSync/Source/ui/custom_grid.cpp
index fdd32ff2..f03659e9 100644
--- a/FreeFileSync/Source/ui/custom_grid.cpp
+++ b/FreeFileSync/Source/ui/custom_grid.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/custom_grid.h b/FreeFileSync/Source/ui/custom_grid.h
index 02c08a6e..c0c2400c 100644
--- a/FreeFileSync/Source/ui/custom_grid.h
+++ b/FreeFileSync/Source/ui/custom_grid.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/dir_name.cpp b/FreeFileSync/Source/ui/dir_name.cpp
index 993e7259..438cf7a7 100644
--- a/FreeFileSync/Source/ui/dir_name.cpp
+++ b/FreeFileSync/Source/ui/dir_name.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -19,9 +19,9 @@
#include "folder_history_box.h"
#ifdef ZEN_WIN
-#include <zen/dll.h>
-#include <zen/win_ver.h>
-#include "../dll/IFileDialog_Vista\ifile_dialog.h"
+ #include <zen/dll.h>
+ #include <zen/win_ver.h>
+ #include "../dll/IFileDialog_Vista\ifile_dialog.h"
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/ui/dir_name.h b/FreeFileSync/Source/ui/dir_name.h
index a2f69698..4bf9001d 100644
--- a/FreeFileSync/Source/ui/dir_name.h
+++ b/FreeFileSync/Source/ui/dir_name.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/folder_history_box.cpp b/FreeFileSync/Source/ui/folder_history_box.cpp
index 511686c0..95534a52 100644
--- a/FreeFileSync/Source/ui/folder_history_box.cpp
+++ b/FreeFileSync/Source/ui/folder_history_box.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,7 +10,7 @@
#include <wx+/string_conv.h>
#include "../lib/resolve_path.h"
#ifdef ZEN_LINUX
-#include <gtk/gtk.h>
+ #include <gtk/gtk.h>
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/ui/folder_history_box.h b/FreeFileSync/Source/ui/folder_history_box.h
index 35a03c69..c008f724 100644
--- a/FreeFileSync/Source/ui/folder_history_box.h
+++ b/FreeFileSync/Source/ui/folder_history_box.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/folder_history_types.h b/FreeFileSync/Source/ui/folder_history_types.h
index 23766413..768bc25c 100644
--- a/FreeFileSync/Source/ui/folder_history_types.h
+++ b/FreeFileSync/Source/ui/folder_history_types.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/folder_pair.h b/FreeFileSync/Source/ui/folder_pair.h
index e48b1e87..5c544edf 100644
--- a/FreeFileSync/Source/ui/folder_pair.h
+++ b/FreeFileSync/Source/ui/folder_pair.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/grid_view.cpp b/FreeFileSync/Source/ui/grid_view.cpp
index 007c8040..491808cb 100644
--- a/FreeFileSync/Source/ui/grid_view.cpp
+++ b/FreeFileSync/Source/ui/grid_view.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/grid_view.h b/FreeFileSync/Source/ui/grid_view.h
index 9250e674..3ee2f642 100644
--- a/FreeFileSync/Source/ui/grid_view.h
+++ b/FreeFileSync/Source/ui/grid_view.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/gui_generated.cpp b/FreeFileSync/Source/ui/gui_generated.cpp
index 2bdd6aca..5a3e3615 100644
--- a/FreeFileSync/Source/ui/gui_generated.cpp
+++ b/FreeFileSync/Source/ui/gui_generated.cpp
@@ -29,6 +29,8 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
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 );
@@ -40,20 +42,34 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
m_menuFile->AppendSeparator();
- m_menuItemCompare = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Start &comparison") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemCompare );
-
- m_menuItemSynchronize = new wxMenuItem( m_menuFile, wxID_ANY, wxString( _("Start &synchronization") ) + wxT('\t') + wxT("F9"), wxEmptyString, wxITEM_NORMAL );
- m_menuFile->Append( m_menuItemSynchronize );
-
- m_menuFile->AppendSeparator();
-
wxMenuItem* m_menuItem4;
- m_menuItem4 = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("&Quit") ) , wxEmptyString, wxITEM_NORMAL );
+ 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( _("&Options") ) , wxEmptyString, wxITEM_NORMAL );
m_menuTools->Append( m_menuItemOptions );
@@ -727,7 +743,7 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
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 overwritten") );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
bSizer172->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
@@ -739,7 +755,7 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
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 overwritten") );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
bSizer172->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
@@ -830,7 +846,7 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
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 overwritten") );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
bSizer177->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
@@ -842,7 +858,7 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
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 overwritten") );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
bSizer177->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
@@ -901,9 +917,12 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
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_menuItem4->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::OnMenuQuit ) );
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 ) );
@@ -930,7 +949,7 @@ MainDialogGenerated::MainDialogGenerated( wxWindow* parent, wxWindowID id, const
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_CHAR, wxKeyEventHandler( MainDialogGenerated::OnCfgHistoryKeyEvent ), 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 );
@@ -1087,20 +1106,27 @@ ConfigDlgGenerated::ConfigDlgGenerated( wxWindow* parent, wxWindowID id, const w
wxBoxSizer* bSizer1721;
bSizer1721 = new wxBoxSizer( wxVERTICAL );
- m_staticText92 = new wxStaticText( m_panelComparisonSettings, wxID_ANY, _("Symbolic links:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText92->Wrap( -1 );
- bSizer1721->Add( m_staticText92, 0, wxBOTTOM, 5 );
+ 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_radioBtnSymlinksDirect = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("Direct"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_radioBtnSymlinksDirect->SetValue( true );
+ bSizer176->Add( m_radioBtnSymlinksDirect, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
+ m_radioBtnSymlinksFollow = new wxRadioButton( m_panelComparisonSettings, wxID_ANY, _("Follow"), wxDefaultPosition, wxDefaultSize, 0 );
+ bSizer176->Add( m_radioBtnSymlinksFollow, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+
- wxArrayString m_choiceHandleSymlinksChoices;
- m_choiceHandleSymlinks = new wxChoice( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceHandleSymlinksChoices, 0 );
- m_choiceHandleSymlinks->SetSelection( 0 );
- bSizer1721->Add( m_choiceHandleSymlinks, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 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, wxTOP, 5 );
+ bSizer1721->Add( m_hyperlink24, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
- bSizer1734->Add( bSizer1721, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
+ bSizer1734->Add( bSizer1721, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
m_staticline441 = new wxStaticLine( m_panelComparisonSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
bSizer1734->Add( m_staticline441, 0, wxEXPAND, 5 );
@@ -1121,7 +1147,7 @@ ConfigDlgGenerated::ConfigDlgGenerated( wxWindow* parent, wxWindowID id, const w
m_panelCompSettingsHolder->SetSizer( bSizer275 );
m_panelCompSettingsHolder->Layout();
bSizer275->Fit( m_panelCompSettingsHolder );
- m_notebook->AddPage( m_panelCompSettingsHolder, _("dummy"), false );
+ 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 ) );
@@ -1707,7 +1733,7 @@ ConfigDlgGenerated::ConfigDlgGenerated( wxWindow* parent, wxWindowID id, const w
m_panelSyncSettingsHolder->SetSizer( bSizer276 );
m_panelSyncSettingsHolder->Layout();
bSizer276->Fit( m_panelSyncSettingsHolder );
- m_notebook->AddPage( m_panelSyncSettingsHolder, _("dummy"), true );
+ m_notebook->AddPage( m_panelSyncSettingsHolder, _("dummy"), false );
bSizer7->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
@@ -1741,6 +1767,7 @@ ConfigDlgGenerated::ConfigDlgGenerated( wxWindow* parent, wxWindowID id, const w
m_toggleBtnContent->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnContent ), NULL, this );
m_checkBoxTimeShift->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeCompOption ), NULL, this );
m_hyperlink241->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpTimeShift ), 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_textCtrlInclude->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( ConfigDlgGenerated::OnChangeFilterOption ), NULL, this );
m_hyperlink171->Connect( wxEVT_COMMAND_HYPERLINK, wxHyperlinkEventHandler( ConfigDlgGenerated::OnHelpShowExamples ), NULL, this );
@@ -1865,7 +1892,7 @@ SyncConfirmationDlgGenerated::SyncConfirmationDlgGenerated( wxWindow* parent, wx
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 overwritten") );
+ m_bitmapUpdateLeft->SetToolTip( _("Number of files that will be updated") );
fgSizer11->Add( m_bitmapUpdateLeft, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
@@ -1885,7 +1912,7 @@ SyncConfirmationDlgGenerated::SyncConfirmationDlgGenerated( wxWindow* parent, wx
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 overwritten") );
+ m_bitmapUpdateRight->SetToolTip( _("Number of files that will be updated") );
fgSizer11->Add( m_bitmapUpdateRight, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
@@ -1902,7 +1929,7 @@ SyncConfirmationDlgGenerated::SyncConfirmationDlgGenerated( wxWindow* parent, wx
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 overwritten") );
+ m_staticTextUpdateLeft->SetToolTip( _("Number of files that will be updated") );
fgSizer11->Add( m_staticTextUpdateLeft, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
@@ -1926,7 +1953,7 @@ SyncConfirmationDlgGenerated::SyncConfirmationDlgGenerated( wxWindow* parent, wx
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 overwritten") );
+ m_staticTextUpdateRight->SetToolTip( _("Number of files that will be updated") );
fgSizer11->Add( m_staticTextUpdateRight, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
@@ -3223,9 +3250,9 @@ AboutDlgGenerated::AboutDlgGenerated( wxWindow* parent, wxWindowID id, const wxS
wxBoxSizer* bSizer171;
bSizer171 = new wxBoxSizer( wxHORIZONTAL );
- m_hyperlink11 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("MS Visual C++"), wxT("http://msdn.microsoft.com/library/60k1461a.aspx"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ 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://msdn.microsoft.com/library/60k1461a.aspx") );
+ m_hyperlink11->SetToolTip( _("http://www.visualstudio.com") );
bSizer171->Add( m_hyperlink11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
@@ -3365,7 +3392,7 @@ AboutDlgGenerated::AboutDlgGenerated( wxWindow* parent, wxWindowID id, const wxS
bSizer166->Add( m_bitmap9, 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 = 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 ) );
@@ -3410,7 +3437,7 @@ AboutDlgGenerated::AboutDlgGenerated( wxWindow* parent, wxWindowID id, const wxS
m_bitmap13 = new wxStaticBitmap( m_panel41, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( -1,-1 ), 0 );
bSizer1671->Add( m_bitmap13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
- m_hyperlink5 = new wxHyperlinkCtrl( m_panel41, wxID_ANY, _("http://www.gnu.org/licenses/gpl.html"), wxT("http://www.gnu.org/licenses/gpl.html"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
+ 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 );
diff --git a/FreeFileSync/Source/ui/gui_generated.h b/FreeFileSync/Source/ui/gui_generated.h
index dc3dd4c7..3fab5c81 100644
--- a/FreeFileSync/Source/ui/gui_generated.h
+++ b/FreeFileSync/Source/ui/gui_generated.h
@@ -44,6 +44,7 @@ namespace zen { class TripleSplitter; }
#include <wx/tglbtn.h>
#include <wx/spinctrl.h>
#include <wx/hyperlink.h>
+#include <wx/radiobut.h>
#include <wx/choice.h>
#include <wx/notebook.h>
#include <wx/dialog.h>
@@ -72,7 +73,11 @@ protected:
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;
@@ -192,9 +197,12 @@ protected:
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 OnMenuQuit( 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(); }
@@ -203,11 +211,8 @@ protected:
virtual void OnMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); }
virtual void OnMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); }
virtual void OnMenuAbout( wxCommandEvent& event ) { event.Skip(); }
- virtual void OnCmpSettings( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCompSettingsContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnConfigureFilter( wxCommandEvent& event ) { event.Skip(); }
virtual void OnGlobalFilterContext( wxMouseEvent& event ) { event.Skip(); }
- virtual void OnSyncSettings( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSyncSettingsContext( wxMouseEvent& event ) { event.Skip(); }
virtual void OnAddFolderPair( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRemoveTopFolderPair( wxCommandEvent& event ) { event.Skip(); }
@@ -267,8 +272,9 @@ protected:
wxSpinCtrl* m_spinCtrlTimeShift;
wxHyperlinkCtrl* m_hyperlink241;
wxStaticLine* m_staticline44;
- wxStaticText* m_staticText92;
- wxChoice* m_choiceHandleSymlinks;
+ wxCheckBox* m_checkBoxSymlinksInclude;
+ wxRadioButton* m_radioBtnSymlinksDirect;
+ wxRadioButton* m_radioBtnSymlinksFollow;
wxHyperlinkCtrl* m_hyperlink24;
wxStaticLine* m_staticline441;
wxStaticLine* m_staticline331;
diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp
index f9f63fa6..ece926a3 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.cpp
+++ b/FreeFileSync/Source/ui/gui_status_handler.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -323,7 +323,7 @@ SyncStatusHandler::~SyncStatusHandler()
{
saveToLastSyncsLog(summary, errorLog, lastSyncsLogFileSizeMax_, OnUpdateLogfileStatusNoThrow(*this, getLastSyncsLogfilePath())); //throw FileError
}
- catch (FileError&) {}
+ catch (FileError&) { assert(false); }
if (progressDlg)
{
diff --git a/FreeFileSync/Source/ui/gui_status_handler.h b/FreeFileSync/Source/ui/gui_status_handler.h
index 7f58afb8..803c8fdb 100644
--- a/FreeFileSync/Source/ui/gui_status_handler.h
+++ b/FreeFileSync/Source/ui/gui_status_handler.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -34,7 +34,7 @@ public:
void reportFatalError(const std::wstring& errorMessage) override;
void reportWarning (const std::wstring& warningMessage, bool& warningActive) override;
- void abortProcessNow() override; //throw GuiAbortProcess
+ void abortProcessNow() override final; //throw GuiAbortProcess
private:
void OnKeyPressed(wxKeyEvent& event);
@@ -68,7 +68,7 @@ public:
void reportFatalError(const std::wstring& errorMessage ) override;
void reportWarning (const std::wstring& warningMessage, bool& warningActive) override;
- void abortProcessNow() override; //throw GuiAbortProcess
+ void abortProcessNow() override final; //throw GuiAbortProcess
private:
void onProgressDialogTerminate();
diff --git a/FreeFileSync/Source/ui/main_dlg.cpp b/FreeFileSync/Source/ui/main_dlg.cpp
index 918da099..57470db7 100644
--- a/FreeFileSync/Source/ui/main_dlg.cpp
+++ b/FreeFileSync/Source/ui/main_dlg.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -23,7 +23,6 @@
#include <wx+/no_flicker.h>
#include <wx+/rtl.h>
#include <wx+/font_size.h>
-#include <wx+/key_event.h>
#include <wx+/popup_dlg.h>
#include <wx+/image_resources.h>
#include "check_version.h"
@@ -45,10 +44,10 @@
#include "../lib/localization.h"
#ifdef ZEN_WIN
-#include <wx+/mouse_move_dlg.h>
+ #include <wx+/mouse_move_dlg.h>
#elif defined ZEN_MAC
-#include <ApplicationServices/ApplicationServices.h>
+ #include <ApplicationServices/ApplicationServices.h>
#endif
using namespace zen;
@@ -79,6 +78,16 @@ IconBuffer::IconSize convert(xmlAccess::FileIconSize isize)
}
return IconBuffer::SIZE_SMALL;
}
+
+//pretty much the same like "bool wxWindowBase::IsDescendant(wxWindowBase* child) const" but without the obvious misnomer
+inline
+bool isComponentOf(const wxWindow* child, const wxWindow* top)
+{
+ for (const wxWindow* wnd = child; wnd != nullptr; wnd = wnd->GetParent())
+ if (wnd == top)
+ return true;
+ return false;
+}
}
@@ -609,15 +618,15 @@ MainDialog::MainDialog(const Zstring& globalConfigFile,
//set tool tips with (non-translated!) short cut hint
m_bpButtonNew ->SetToolTip(replaceCpy(_("&New"), L"&", L"") + L" (Ctrl+N)"); //
- m_bpButtonOpen ->SetToolTip(replaceCpy(_("&Open..."), L"&", L"") + L" (Ctrl+O)"); //reuse texts from gui builder
- m_bpButtonSave ->SetToolTip(replaceCpy(_("&Save"), L"&", L"") + L" (Ctrl+S)"); //
+ m_bpButtonOpen ->SetToolTip(replaceCpy(_("&Open..."), L"&", L"") + L" (Ctrl+O)"); //
+ m_bpButtonSave ->SetToolTip(replaceCpy(_("&Save"), L"&", L"") + L" (Ctrl+S)"); //reuse texts from gui builder
m_bpButtonSaveAs ->SetToolTip(replaceCpy(_("Save &as..."), L"&", L"")); //
m_bpButtonSaveAsBatch->SetToolTip(replaceCpy(_("Save as &batch job..."), L"&", L"")); //
- m_buttonCompare ->SetToolTip(_("Start comparison") + L" (F5)");
- m_bpButtonCmpConfig ->SetToolTip(_("Comparison settings") + L" (F6)");
- m_bpButtonSyncConfig->SetToolTip(_("Synchronization settings") + L" (F8)");
- m_buttonSync ->SetToolTip(_("Start synchronization") + L" (F9)");
+ m_buttonCompare ->SetToolTip(replaceCpy(_("Start &comparison"), L"&", L"") + L" (F5)"); //
+ m_bpButtonCmpConfig ->SetToolTip(replaceCpy(_("C&omparison settings"), L"&", L"") + L" (F6)"); //
+ m_bpButtonSyncConfig->SetToolTip(replaceCpy(_("S&ynchronization settings"), L"&", L"") + L" (F8)"); //
+ m_buttonSync ->SetToolTip(replaceCpy(_("Start &synchronization"), L"&", L"") + L" (F9)"); //
gridDataView = std::make_shared<GridView>();
treeDataView = std::make_shared<TreeView>();
@@ -644,8 +653,11 @@ MainDialog::MainDialog(const Zstring& globalConfigFile,
setMenuItemImage(m_menuItemLoad, getResourceImage(L"load_small"));
setMenuItemImage(m_menuItemSave, getResourceImage(L"save_small"));
- setMenuItemImage(m_menuItemCompare, getResourceImage(L"compare_small"));
- setMenuItemImage(m_menuItemSynchronize, getResourceImage(L"sync_small"));
+ setMenuItemImage(m_menuItemCompare, getResourceImage(L"compare_small"));
+ setMenuItemImage(m_menuItemCompSettings, getResourceImage(L"cfg_compare_small"));
+ setMenuItemImage(m_menuItemFilter, getResourceImage(L"filter_small"));
+ setMenuItemImage(m_menuItemSyncSettings, getResourceImage(L"cfg_sync_small"));
+ setMenuItemImage(m_menuItemSynchronize, getResourceImage(L"sync_small"));
setMenuItemImage(m_menuItemOptions, getResourceImage(L"settings_small"));
setMenuItemImage(m_menuItemSaveAsBatch, getResourceImage(L"batch_small"));
@@ -704,7 +716,7 @@ MainDialog::MainDialog(const Zstring& globalConfigFile,
m_gridNavi->getMainWin().Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(MainDialog::onTreeButtonEvent), nullptr, this);
//enable dialog-specific key local events
- setupLocalKeyEvents(*this, [this](wxKeyEvent& event) { this->onLocalKeyEvent(event); });
+ Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(MainDialog::onLocalKeyEvent), nullptr, this);
//drag & drop on navi panel
setupFileDrop(*m_gridNavi);
@@ -742,6 +754,16 @@ MainDialog::MainDialog(const Zstring& globalConfigFile,
wxCommandEvent evtDummy; //call once before OnLayoutWindowAsync()
OnResizeLeftFolderWidth(evtDummy); //
+ //scroll list box to show the new selection (after window resizing is hopefully complete)
+ for (int i = 0; i < static_cast<int>(m_listBoxHistory->GetCount()); ++i)
+ if (m_listBoxHistory->IsSelected(i))
+ {
+ m_listBoxHistory->SetFirstItem(std::max(0, i - 2)); //add some head room
+ break;
+ //can't use wxListBox::EnsureVisible(): it's an empty stub on Windows! Undocumented! Not even a runtime-error!
+ //=> yet another piece of "high-quality" code from wxWidgets making a dev's life "easy"...
+ }
+
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
//some convenience: if FFS is started with a *.ffs_gui file as commandline parameter AND all directories contained exist, comparison shall be started right away
if (startComparison)
@@ -1705,11 +1727,7 @@ void MainDialog::onTreeButtonEvent(wxKeyEvent& event)
{
case 'C':
case WXK_INSERT: //CTRL + C || CTRL + INS
- {
- std::vector<const Grid*> gridRefs;
- gridRefs.push_back(m_gridNavi);
- copySelectionToClipboard(gridRefs);
- }
+ copySelectionToClipboard({ m_gridNavi });
return;
}
else if (event.AltDown())
@@ -1790,12 +1808,7 @@ void MainDialog::onGridButtonEvent(wxKeyEvent& event, Grid& grid, bool leftSide)
{
case 'C':
case WXK_INSERT: //CTRL + C || CTRL + INS
- {
- std::vector<const Grid*> gridRefs;
- gridRefs.push_back(m_gridMainL);
- gridRefs.push_back(m_gridMainR);
- copySelectionToClipboard(gridRefs);
- }
+ copySelectionToClipboard({ m_gridMainL, m_gridMainR} );
return; // -> swallow event! don't allow default grid commands!
}
@@ -1857,6 +1870,9 @@ void MainDialog::onLocalKeyEvent(wxKeyEvent& event) //process key events without
event.Skip();
return;
}
+ localKeyEventsEnabled = false; //avoid recursion
+ ZEN_ON_SCOPE_EXIT(localKeyEventsEnabled = true;)
+
const int keyCode = event.GetKeyCode();
@@ -1876,29 +1892,29 @@ void MainDialog::onLocalKeyEvent(wxKeyEvent& event) //process key events without
startFindNext();
return; //-> swallow event!
- case WXK_F6:
- {
- wxCommandEvent dummy2(wxEVT_COMMAND_BUTTON_CLICKED); //simulate button click
- if (wxEvtHandler* evtHandler = m_bpButtonCmpConfig->GetEventHandler())
- evtHandler->ProcessEvent(dummy2); //synchronous call
- }
- return; //-> swallow event!
-
- case WXK_F7:
- {
- wxCommandEvent dummy2(wxEVT_COMMAND_BUTTON_CLICKED); //simulate button click
- if (wxEvtHandler* evtHandler = m_bpButtonFilter->GetEventHandler())
- evtHandler->ProcessEvent(dummy2); //synchronous call
- }
- return; //-> swallow event!
-
- case WXK_F8:
- {
- wxCommandEvent dummy2(wxEVT_COMMAND_BUTTON_CLICKED); //simulate button click
- if (wxEvtHandler* evtHandler = m_bpButtonSyncConfig->GetEventHandler())
- evtHandler->ProcessEvent(dummy2); //synchronous call
- }
- return; //-> swallow event!
+ //case WXK_F6:
+ //{
+ // wxCommandEvent dummy2(wxEVT_COMMAND_BUTTON_CLICKED); //simulate button click
+ // if (wxEvtHandler* evtHandler = m_bpButtonCmpConfig->GetEventHandler())
+ // evtHandler->ProcessEvent(dummy2); //synchronous call
+ //}
+ //return; //-> swallow event!
+
+ //case WXK_F7:
+ //{
+ // wxCommandEvent dummy2(wxEVT_COMMAND_BUTTON_CLICKED); //simulate button click
+ // if (wxEvtHandler* evtHandler = m_bpButtonFilter->GetEventHandler())
+ // evtHandler->ProcessEvent(dummy2); //synchronous call
+ //}
+ //return; //-> swallow event!
+
+ //case WXK_F8:
+ //{
+ // wxCommandEvent dummy2(wxEVT_COMMAND_BUTTON_CLICKED); //simulate button click
+ // if (wxEvtHandler* evtHandler = m_bpButtonSyncConfig->GetEventHandler())
+ // evtHandler->ProcessEvent(dummy2); //synchronous call
+ //}
+ //return; //-> swallow event!
case WXK_F10:
setViewTypeSyncAction(!m_bpButtonViewTypeSyncAction->isActive());
@@ -1939,7 +1955,7 @@ void MainDialog::onLocalKeyEvent(wxKeyEvent& event) //process key events without
m_gridMainL->SetFocus();
event.SetEventType(wxEVT_KEY_DOWN); //the grid event handler doesn't expect wxEVT_CHAR_HOOK!
- evtHandler->ProcessEvent(event); //propagating event catched at wxTheApp to child leads to recursion, but code in key_event.h prevents it...
+ evtHandler->ProcessEvent(event); //propagating event to child lead to recursion with old key_event.h handling => still an issue?
event.Skip(false); //definitively handled now!
return;
}
@@ -3111,7 +3127,8 @@ void MainDialog::OnCfgHistoryRightClick(wxMouseEvent& event)
void MainDialog::OnCfgHistoryKeyEvent(wxKeyEvent& event)
{
const int keyCode = event.GetKeyCode();
- if (keyCode == WXK_DELETE || keyCode == WXK_NUMPAD_DELETE)
+ if (keyCode == WXK_DELETE ||
+ keyCode == WXK_NUMPAD_DELETE)
{
deleteSelectedCfgHistoryItems();
return; //"swallow" event
@@ -3414,8 +3431,8 @@ void MainDialog::initViewFilterButtons()
initButton(*m_bpButtonShowCreateRight, "so_create_right", _("Show files that will be created on the right side"));
initButton(*m_bpButtonShowDeleteLeft, "so_delete_left", _("Show files that will be deleted on the left side"));
initButton(*m_bpButtonShowDeleteRight, "so_delete_right", _("Show files that will be deleted on the right side"));
- initButton(*m_bpButtonShowUpdateLeft, "so_update_left", _("Show files that will be overwritten on left side"));
- initButton(*m_bpButtonShowUpdateRight, "so_update_right", _("Show files that will be overwritten on right side"));
+ initButton(*m_bpButtonShowUpdateLeft, "so_update_left", _("Show files that will be updated on the left side"));
+ initButton(*m_bpButtonShowUpdateRight, "so_update_right", _("Show files that will be updated on the right side"));
initButton(*m_bpButtonShowDoNothing, "so_none", _("Show files that won't be copied"));
initButton(*m_bpButtonShowExcluded, "checkboxFalse", _("Show filtered or temporarily excluded files"));
diff --git a/FreeFileSync/Source/ui/main_dlg.h b/FreeFileSync/Source/ui/main_dlg.h
index 689bd528..943c76b7 100644
--- a/FreeFileSync/Source/ui/main_dlg.h
+++ b/FreeFileSync/Source/ui/main_dlg.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/on_completion_box.cpp b/FreeFileSync/Source/ui/on_completion_box.cpp
index 274d0a30..b489a051 100644
--- a/FreeFileSync/Source/ui/on_completion_box.cpp
+++ b/FreeFileSync/Source/ui/on_completion_box.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -11,7 +11,7 @@
#include <zen/stl_tools.h>
#include <zen/utf.h>
#ifdef ZEN_WIN
-#include <zen/win_ver.h>
+ #include <zen/win_ver.h>
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/ui/on_completion_box.h b/FreeFileSync/Source/ui/on_completion_box.h
index 1e05a14f..5085735b 100644
--- a/FreeFileSync/Source/ui/on_completion_box.h
+++ b/FreeFileSync/Source/ui/on_completion_box.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/progress_indicator.cpp b/FreeFileSync/Source/ui/progress_indicator.cpp
index 123e2649..e3595ccd 100644
--- a/FreeFileSync/Source/ui/progress_indicator.cpp
+++ b/FreeFileSync/Source/ui/progress_indicator.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -25,7 +25,6 @@
#include <wx+/std_button_layout.h>
#include <wx+/popup_dlg.h>
#include <wx+/image_resources.h>
-#include <wx+/key_event.h>
#include <zen/file_access.h>
#include <zen/thread.h>
#include "gui_generated.h"
@@ -37,10 +36,10 @@
#include "app_icon.h"
#ifdef ZEN_WIN
-#include <wx+/mouse_move_dlg.h>
+ #include <wx+/mouse_move_dlg.h>
#elif defined ZEN_MAC
-#include <ApplicationServices/ApplicationServices.h>
+ #include <ApplicationServices/ApplicationServices.h>
#endif
using namespace zen;
@@ -352,6 +351,17 @@ void CompareProgressDialog::updateStatusPanelNow()
namespace
{
+//pretty much the same like "bool wxWindowBase::IsDescendant(wxWindowBase* child) const" but without the obvious misnomer
+inline
+bool isComponentOf(const wxWindow* child, const wxWindow* top)
+{
+ for (const wxWindow* wnd = child; wnd != nullptr; wnd = wnd->GetParent())
+ if (wnd == top)
+ return true;
+ return false;
+}
+
+
inline
wxBitmap getImageButtonPressed(const wchar_t* name)
{
@@ -635,7 +645,7 @@ class LogPanel : public LogPanelGenerated
{
public:
LogPanel(wxWindow* parent, const ErrorLog& log) : LogPanelGenerated(parent),
- msgView(std::make_shared<MessageView>(log))
+ msgView(std::make_shared<MessageView>(log)), processingKeyEventHandler(false)
{
const int errorCount = log.getItemCount(TYPE_ERROR | TYPE_FATAL_ERROR);
const int warningCount = log.getItemCount(TYPE_WARNING);
@@ -676,7 +686,7 @@ public:
m_gridMessages->Connect(EVENT_GRID_MOUSE_RIGHT_UP, GridClickEventHandler(LogPanel::onMsgGridContext), nullptr, this);
//enable dialog-specific key local events
- setupLocalKeyEvents(*this, [this](wxKeyEvent& event) { this->onLocalKeyEvent(event); });
+ Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(LogPanel::onLocalKeyEvent), nullptr, this);
updateGrid();
}
@@ -763,6 +773,15 @@ private:
void onLocalKeyEvent(wxKeyEvent& event) //process key events without explicit menu entry :)
{
+ if (processingKeyEventHandler) //avoid recursion
+ {
+ event.Skip();
+ return;
+ }
+ processingKeyEventHandler = true;
+ ZEN_ON_SCOPE_EXIT(processingKeyEventHandler = false;)
+
+
const int keyCode = event.GetKeyCode();
if (event.ControlDown())
@@ -853,6 +872,7 @@ private:
}
std::shared_ptr<MessageView> msgView; //bound!
+ bool processingKeyEventHandler;
};
//########################################################################################
diff --git a/FreeFileSync/Source/ui/progress_indicator.h b/FreeFileSync/Source/ui/progress_indicator.h
index c04f5a50..d86ef14d 100644
--- a/FreeFileSync/Source/ui/progress_indicator.h
+++ b/FreeFileSync/Source/ui/progress_indicator.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/search.cpp b/FreeFileSync/Source/ui/search.cpp
index 416d2c9e..bdba7e41 100644
--- a/FreeFileSync/Source/ui/search.cpp
+++ b/FreeFileSync/Source/ui/search.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/search.h b/FreeFileSync/Source/ui/search.h
index 1adf3d01..5cd94edc 100644
--- a/FreeFileSync/Source/ui/search.h
+++ b/FreeFileSync/Source/ui/search.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/small_dlgs.cpp b/FreeFileSync/Source/ui/small_dlgs.cpp
index b142e8d8..0d98aac3 100644
--- a/FreeFileSync/Source/ui/small_dlgs.cpp
+++ b/FreeFileSync/Source/ui/small_dlgs.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -28,7 +28,7 @@
#include "../version/version.h"
#ifdef ZEN_WIN
-#include <wx+/mouse_move_dlg.h>
+ #include <wx+/mouse_move_dlg.h>
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/ui/small_dlgs.h b/FreeFileSync/Source/ui/small_dlgs.h
index 7b488e57..331c500c 100644
--- a/FreeFileSync/Source/ui/small_dlgs.h
+++ b/FreeFileSync/Source/ui/small_dlgs.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/sorting.h b/FreeFileSync/Source/ui/sorting.h
index d022aeb7..7fb3065f 100644
--- a/FreeFileSync/Source/ui/sorting.h
+++ b/FreeFileSync/Source/ui/sorting.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/switch_to_gui.h b/FreeFileSync/Source/ui/switch_to_gui.h
index 7f2d4002..6684e8d9 100644
--- a/FreeFileSync/Source/ui/switch_to_gui.h
+++ b/FreeFileSync/Source/ui/switch_to_gui.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/sync_cfg.cpp b/FreeFileSync/Source/ui/sync_cfg.cpp
index 88424ccb..fb758aaa 100644
--- a/FreeFileSync/Source/ui/sync_cfg.cpp
+++ b/FreeFileSync/Source/ui/sync_cfg.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -14,7 +14,6 @@
#include <wx+/font_size.h>
#include <wx+/std_button_layout.h>
#include <wx+/popup_dlg.h>
-#include <wx+/key_event.h>
#include <wx+/image_resources.h>
#include "gui_generated.h"
#include "on_completion_box.h"
@@ -24,7 +23,7 @@
#include "../lib/norm_filter.h"
#ifdef ZEN_WIN
-#include <wx+/mouse_move_dlg.h>
+ #include <wx+/mouse_move_dlg.h>
#endif
using namespace zen;
@@ -80,7 +79,6 @@ private:
CompConfig& cmpCfgOut; //for output only
bool* useAlternateCmpCfgOptOut;
CompareVariant localCmpVar;
- EnumDescrList<SymLinkHandling> enumDescrHandleSyml;
//------------- filter panel --------------------------
void OnHelpShowExamples(wxHyperlinkEvent& event) override { displayHelpEntry(L"html/Exclude Items.html", this); }
@@ -245,12 +243,20 @@ ConfigDialog::ConfigDialog(wxWindow* parent,
m_toggleBtnTimeSize->SetToolTip(getCompVariantDescription(CMP_BY_TIME_SIZE));
m_toggleBtnContent ->SetToolTip(getCompVariantDescription(CMP_BY_CONTENT));
- enumDescrHandleSyml.
- add(SYMLINK_EXCLUDE, _("Exclude")).
- add(SYMLINK_DIRECT, _("Direct")).
- add(SYMLINK_FOLLOW, _("Follow"));
-
- setEnumVal(enumDescrHandleSyml, *m_choiceHandleSymlinks, cmpCfg.handleSymlinks);
+ switch (cmpCfg.handleSymlinks)
+ {
+ case SYMLINK_EXCLUDE:
+ m_checkBoxSymlinksInclude->SetValue(false);
+ break;
+ case SYMLINK_DIRECT:
+ m_checkBoxSymlinksInclude->SetValue(true);
+ m_radioBtnSymlinksDirect->SetValue(true);
+ break;
+ case SYMLINK_FOLLOW:
+ m_checkBoxSymlinksInclude->SetValue(true);
+ m_radioBtnSymlinksFollow->SetValue(true);
+ break;
+ }
m_checkBoxTimeShift->SetValue(cmpCfg.optTimeShiftHours != 0);
m_spinCtrlTimeShift->SetValue(cmpCfg.optTimeShiftHours == 0 ? 1 : cmpCfg.optTimeShiftHours);
@@ -354,7 +360,7 @@ ConfigDialog::ConfigDialog(wxWindow* parent,
//-----------------------------------------------------
//enable dialog-specific key local events
- setupLocalKeyEvents(*this, [this](wxKeyEvent& event) { this->onLocalKeyEvent(event); });
+ Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(ConfigDialog::onLocalKeyEvent), nullptr, this);
m_notebook->SetPageText(static_cast<size_t>(SyncConfigPanel::COMPARISON), _("Comparison") + L" (F6)");
m_notebook->SetPageText(static_cast<size_t>(SyncConfigPanel::FILTER ), _("Filter") + L" (F7)");
@@ -442,6 +448,9 @@ void ConfigDialog::updateCompGui()
setText(*m_textCtrlCompVarDescription, L"\n" + getCompVariantDescription(localCmpVar));
m_spinCtrlTimeShift->Enable(m_checkBoxTimeShift->GetValue());
+
+ m_radioBtnSymlinksDirect->Enable(m_checkBoxSymlinksInclude->GetValue());
+ m_radioBtnSymlinksFollow->Enable(m_checkBoxSymlinksInclude->GetValue());
}
@@ -916,7 +925,7 @@ void ConfigDialog::OnOkay(wxCommandEvent& event)
*useAlternateCmpCfgOptOut = m_checkBoxUseLocalCmpOptions->GetValue();
cmpCfgOut.compareVar = localCmpVar;
- cmpCfgOut.handleSymlinks = getEnumVal(enumDescrHandleSyml, *m_choiceHandleSymlinks);
+ cmpCfgOut.handleSymlinks = !m_checkBoxSymlinksInclude->GetValue() ? SYMLINK_EXCLUDE : m_radioBtnSymlinksDirect->GetValue() ? SYMLINK_DIRECT : SYMLINK_FOLLOW;
cmpCfgOut.optTimeShiftHours = m_checkBoxTimeShift->GetValue() ? m_spinCtrlTimeShift->GetValue() : 0;
//------------- filter panel --------------------------
diff --git a/FreeFileSync/Source/ui/sync_cfg.h b/FreeFileSync/Source/ui/sync_cfg.h
index 61c89b13..b560c7ac 100644
--- a/FreeFileSync/Source/ui/sync_cfg.h
+++ b/FreeFileSync/Source/ui/sync_cfg.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/taskbar.cpp b/FreeFileSync/Source/ui/taskbar.cpp
index 863eb6d6..a41eb1fe 100644
--- a/FreeFileSync/Source/ui/taskbar.cpp
+++ b/FreeFileSync/Source/ui/taskbar.cpp
@@ -1,24 +1,24 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "taskbar.h"
#ifdef ZEN_WIN
-#include <zen/dll.h>
-#include <zen/win_ver.h>
-#include <zen/stl_tools.h>
-#include "../dll/Taskbar_Seven/taskbar.h"
+ #include <zen/dll.h>
+ #include <zen/win_ver.h>
+ #include <zen/stl_tools.h>
+ #include "../dll/Taskbar_Seven/taskbar.h"
#elif defined HAVE_UBUNTU_UNITY
-#include <unity/unity/unity.h>
+ #include <unity/unity/unity.h>
#elif defined ZEN_MAC
-#include <zen/basic_math.h>
-#include <zen/string_tools.h>
-#include "osx_dock.h"
+ #include <zen/basic_math.h>
+ #include <zen/string_tools.h>
+ #include "osx_dock.h"
#endif
using namespace zen;
diff --git a/FreeFileSync/Source/ui/taskbar.h b/FreeFileSync/Source/ui/taskbar.h
index 65509cab..d8fd1ace 100644
--- a/FreeFileSync/Source/ui/taskbar.h
+++ b/FreeFileSync/Source/ui/taskbar.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/tray_icon.cpp b/FreeFileSync/Source/ui/tray_icon.cpp
index 712e4d51..3a4de1b0 100644
--- a/FreeFileSync/Source/ui/tray_icon.cpp
+++ b/FreeFileSync/Source/ui/tray_icon.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/tray_icon.h b/FreeFileSync/Source/ui/tray_icon.h
index c83641a7..cdcad3b7 100644
--- a/FreeFileSync/Source/ui/tray_icon.h
+++ b/FreeFileSync/Source/ui/tray_icon.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/tree_view.cpp b/FreeFileSync/Source/ui/tree_view.cpp
index 6e5d4430..735d4732 100644
--- a/FreeFileSync/Source/ui/tree_view.cpp
+++ b/FreeFileSync/Source/ui/tree_view.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/tree_view.h b/FreeFileSync/Source/ui/tree_view.h
index db5edbb8..ea8e926d 100644
--- a/FreeFileSync/Source/ui/tree_view.h
+++ b/FreeFileSync/Source/ui/tree_view.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/triple_splitter.cpp b/FreeFileSync/Source/ui/triple_splitter.cpp
index f88691ec..81bf5579 100644
--- a/FreeFileSync/Source/ui/triple_splitter.cpp
+++ b/FreeFileSync/Source/ui/triple_splitter.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/triple_splitter.h b/FreeFileSync/Source/ui/triple_splitter.h
index 0577dabf..cb834b34 100644
--- a/FreeFileSync/Source/ui/triple_splitter.h
+++ b/FreeFileSync/Source/ui/triple_splitter.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/FreeFileSync/Source/ui/wx_form_build_hide_warnings.h b/FreeFileSync/Source/ui/wx_form_build_hide_warnings.h
index 71f28340..679fb62f 100644
--- a/FreeFileSync/Source/ui/wx_form_build_hide_warnings.h
+++ b/FreeFileSync/Source/ui/wx_form_build_hide_warnings.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,13 +10,13 @@
//pamper over wxFormBuilder "sub-optimal" code
#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-Wunused-variable"
-#ifndef __clang__ //clang seems to define __GNUC__, but doesn't support this warning
-#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
-#endif
+ #pragma GCC diagnostic ignored "-Wunused-variable"
+ #ifndef __clang__ //clang seems to define __GNUC__, but doesn't support this warning
+ #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
+ #endif
#elif defined _MSC_VER
-#pragma warning(disable: 4189)
+ #pragma warning(disable: 4189)
#endif
#endif //WX_FORM_BUILD_230948324234234
diff --git a/FreeFileSync/Source/version/version.h b/FreeFileSync/Source/version/version.h
index 33153cb8..9a490759 100644
--- a/FreeFileSync/Source/version/version.h
+++ b/FreeFileSync/Source/version/version.h
@@ -3,7 +3,7 @@
namespace zen
{
-const wchar_t currentVersion[] = L"6.11"; //internal linkage!
+const wchar_t currentVersion[] = L"6.12"; //internal linkage!
}
#endif
diff --git a/FreeFileSync/Source/version/version.iss b/FreeFileSync/Source/version/version.iss
new file mode 100644
index 00000000..da4f557e
--- /dev/null
+++ b/FreeFileSync/Source/version/version.iss
@@ -0,0 +1 @@
+#define FFS_Version "6.12"
diff --git a/wx+/app_main.h b/wx+/app_main.h
index a13a122d..b97a25ef 100644
--- a/wx+/app_main.h
+++ b/wx+/app_main.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/bitmap_button.h b/wx+/bitmap_button.h
index 14476324..6c186926 100644
--- a/wx+/bitmap_button.h
+++ b/wx+/bitmap_button.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/choice_enum.h b/wx+/choice_enum.h
index 57718158..6a795d4a 100644
--- a/wx+/choice_enum.h
+++ b/wx+/choice_enum.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/context_menu.h b/wx+/context_menu.h
index a498c429..2ae85162 100644
--- a/wx+/context_menu.h
+++ b/wx+/context_menu.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/dc.h b/wx+/dc.h
index b2f5b584..0d3c1cb8 100644
--- a/wx+/dc.h
+++ b/wx+/dc.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -84,7 +84,7 @@ private:
#ifndef wxALWAYS_NATIVE_DOUBLE_BUFFER
-#error we need this one!
+ #error we need this one!
#endif
#if wxALWAYS_NATIVE_DOUBLE_BUFFER
diff --git a/wx+/file_drop.h b/wx+/file_drop.h
index 55772a03..664b4387 100644
--- a/wx+/file_drop.h
+++ b/wx+/file_drop.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/font_size.h b/wx+/font_size.h
index 4639d194..c1ea47cd 100644
--- a/wx+/font_size.h
+++ b/wx+/font_size.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,10 +10,10 @@
#include <zen/basic_math.h>
#include <wx/window.h>
#ifdef ZEN_WIN
-#include <zen/dll.h>
-#include <Uxtheme.h>
-#include <vsstyle.h> //TEXT_MAININSTRUCTION
-#include <vssym32.h> //TMT_COLOR
+ #include <zen/dll.h>
+ #include <Uxtheme.h>
+ #include <vsstyle.h> //TEXT_MAININSTRUCTION
+ #include <vssym32.h> //TMT_COLOR
#endif
namespace zen
diff --git a/wx+/graph.cpp b/wx+/graph.cpp
index 67f8e354..cc844144 100644
--- a/wx+/graph.cpp
+++ b/wx+/graph.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/graph.h b/wx+/graph.h
index 00b0b469..34c7ab3c 100644
--- a/wx+/graph.h
+++ b/wx+/graph.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/grid.cpp b/wx+/grid.cpp
index de50d4c6..377510ae 100644
--- a/wx+/grid.cpp
+++ b/wx+/grid.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -20,7 +20,7 @@
#include "dc.h"
#ifdef ZEN_LINUX
-#include <gtk/gtk.h>
+ #include <gtk/gtk.h>
#endif
using namespace zen;
diff --git a/wx+/grid.h b/wx+/grid.h
index 1ac75aa5..76ee383a 100644
--- a/wx+/grid.h
+++ b/wx+/grid.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/image_resources.cpp b/wx+/image_resources.cpp
index 062ad88c..a76a2822 100644
--- a/wx+/image_resources.cpp
+++ b/wx+/image_resources.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/image_resources.h b/wx+/image_resources.h
index b16544ac..8d7c9b49 100644
--- a/wx+/image_resources.h
+++ b/wx+/image_resources.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/image_tools.cpp b/wx+/image_tools.cpp
index b1732032..c6be3852 100644
--- a/wx+/image_tools.cpp
+++ b/wx+/image_tools.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/image_tools.h b/wx+/image_tools.h
index d3a20a45..cb8da60b 100644
--- a/wx+/image_tools.h
+++ b/wx+/image_tools.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/key_event.h b/wx+/key_event.h
deleted file mode 100644
index aa094b4a..00000000
--- a/wx+/key_event.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
-
-#ifndef KEY_EVENT_H_086130871086708354674
-#define KEY_EVENT_H_086130871086708354674
-
-#include <functional>
-#include <zen/scope_guard.h>
-#include <wx/toplevel.h>
-#include <wx/window.h>
-#include <wx/event.h>
-
-namespace zen
-{
-//wxWidgets provides no elegant way to register shortcut keys scoped for dialog windows
-// => enable dialog-specific local key events!
-
-//setup in wxDialog-derived class' constructor, e.g.:
-// setupLocalKeyEvents(*this, [this](wxKeyEvent& event){ this->onLocalKeyEvent(event); });
-//
-// => redirects local key events to:
-// void MyDlg::onLocalKeyEvent(wxKeyEvent& event);
-void setupLocalKeyEvents(wxWindow& wnd, const std::function<void(wxKeyEvent& event)>& callback); //callback held during life time of "wnd"!
-
-
-
-
-
-
-
-//pretty much the same like "bool wxWindowBase::IsDescendant(wxWindowBase* child) const" but without the obvious misnomer
-inline
-bool isComponentOf(const wxWindow* child, const wxWindow* top)
-{
- for (const wxWindow* wnd = child; wnd != nullptr; wnd = wnd->GetParent())
- if (wnd == top)
- return true;
- return false;
-}
-
-
-namespace impl
-{
-inline
-const wxTopLevelWindow* getTopLevelWindow(const wxWindow* child)
-{
- for (const wxWindow* wnd = child; wnd != nullptr; wnd = wnd->GetParent())
- if (auto tlw = dynamic_cast<const wxTopLevelWindow*>(wnd))
- return tlw;
- return nullptr;
-}
-
-
-class LokalKeyEventHandler : public wxWindow //private wxEvtHandler
-{
-public:
- LokalKeyEventHandler(wxWindow& parent, const std::function<void(wxKeyEvent& event)>& callback) : wxWindow(&parent, wxID_ANY), //use a dummy child window to bind instance life time to parent
- parent_(parent),
- callback_(callback),
- processingCallback(false)
- {
- Hide(); //this is just a dummy window so that its parent can have ownership
- Disable(); //
-
- //register global hotkeys (without needing explicit menu entry)
- wxTheApp->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(LokalKeyEventHandler::onGlobalKeyEvent), nullptr, this);
- wxTheApp->Connect(wxEVT_CHAR_HOOK, wxKeyEventHandler(LokalKeyEventHandler::onGlobalKeyEvent), nullptr, this); //capture direction keys
- }
-
- ~LokalKeyEventHandler()
- {
- //important! event source wxTheApp lives longer than this instance -> disconnect!
- wxTheApp->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(LokalKeyEventHandler::onGlobalKeyEvent), nullptr, this);
- wxTheApp->Disconnect(wxEVT_CHAR_HOOK, wxKeyEventHandler(LokalKeyEventHandler::onGlobalKeyEvent), nullptr, this);
- }
-
-private:
- void onGlobalKeyEvent(wxKeyEvent& event)
- {
- const wxWindow* focus = wxWindow::FindFocus();
- const wxTopLevelWindow* tlw = getTopLevelWindow(&parent_);
-
- //avoid recursion!!! -> this ugly construct seems to be the only (portable) way to avoid re-entrancy
- //recursion may happen in multiple situations: e.g. modal dialogs, Grid::ProcessEvent()!
- if (processingCallback ||
- !isComponentOf(focus, &parent_) ||
- !parent_.IsEnabled() || //only handle if window is in use and no modal dialog is shown:
- !tlw || !const_cast<wxTopLevelWindow*>(tlw)->IsActive()) //thanks to wxWidgets non-portability we need both checks:
- //IsEnabled() is sufficient for Windows, IsActive() is needed on OS X since it does NOT disable the parent when showing a modal dialog
- {
- event.Skip();
- return;
- }
- processingCallback = true;
- ZEN_ON_SCOPE_EXIT(processingCallback = false;)
-
- callback_(event);
- }
-
- wxWindow& parent_;
- const std::function<void(wxKeyEvent& event)> callback_;
- bool processingCallback;
-};
-}
-
-
-inline
-void setupLocalKeyEvents(wxWindow& wnd, const std::function<void(wxKeyEvent& event)>& callback)
-{
- new impl::LokalKeyEventHandler(wnd, callback); //ownership passed to "wnd"!
-}
-
-}
-
-#endif //KEY_EVENT_H_086130871086708354674
diff --git a/wx+/no_flicker.h b/wx+/no_flicker.h
index c5b0d238..fb0585ca 100644
--- a/wx+/no_flicker.h
+++ b/wx+/no_flicker.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/popup_dlg.cpp b/wx+/popup_dlg.cpp
index ff0bf125..480021eb 100644
--- a/wx+/popup_dlg.cpp
+++ b/wx+/popup_dlg.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -12,7 +12,7 @@
#include "popup_dlg_generated.h"
#ifdef ZEN_WIN
-#include <wx+/mouse_move_dlg.h>
+ #include <wx+/mouse_move_dlg.h>
#endif
using namespace zen;
diff --git a/wx+/popup_dlg.h b/wx+/popup_dlg.h
index ab988702..eef7ab79 100644
--- a/wx+/popup_dlg.h
+++ b/wx+/popup_dlg.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/rtl.h b/wx+/rtl.h
index 0ec84524..5f1c9321 100644
--- a/wx+/rtl.h
+++ b/wx+/rtl.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/std_button_layout.h b/wx+/std_button_layout.h
index b5e30472..f497de2c 100644
--- a/wx+/std_button_layout.h
+++ b/wx+/std_button_layout.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/string_conv.h b/wx+/string_conv.h
index e9150223..229a9825 100644
--- a/wx+/string_conv.h
+++ b/wx+/string_conv.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/timespan.h b/wx+/timespan.h
index 28c9e673..09469ccb 100644
--- a/wx+/timespan.h
+++ b/wx+/timespan.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/toggle_button.h b/wx+/toggle_button.h
index e532d9d8..faa72f66 100644
--- a/wx+/toggle_button.h
+++ b/wx+/toggle_button.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/tooltip.cpp b/wx+/tooltip.cpp
index d4bcf302..91298db4 100644
--- a/wx+/tooltip.cpp
+++ b/wx+/tooltip.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/tooltip.h b/wx+/tooltip.h
index 7f58ff27..d4236186 100644
--- a/wx+/tooltip.h
+++ b/wx+/tooltip.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/wx+/zlib_wrap.cpp b/wx+/zlib_wrap.cpp
index eccf8698..d25c2c3e 100644
--- a/wx+/zlib_wrap.cpp
+++ b/wx+/zlib_wrap.cpp
@@ -1,14 +1,14 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "zlib_wrap.h"
#ifdef ZEN_WIN
-#include <wx/../../src/zlib/zlib.h> //not really a "nice" place to look for a stable solution
+ #include <wx/../../src/zlib/zlib.h> //not really a "nice" place to look for a stable solution
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <zlib.h> //let's pray this is the same version wxWidgets is linking against!
+ #include <zlib.h> //let's pray this is the same version wxWidgets is linking against!
#endif
using namespace zen;
diff --git a/wx+/zlib_wrap.h b/wx+/zlib_wrap.h
index c271276f..815d8361 100644
--- a/wx+/zlib_wrap.h
+++ b/wx+/zlib_wrap.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/async_task.h b/zen/async_task.h
index f9bea890..b8d72fbe 100644
--- a/zen/async_task.h
+++ b/zen/async_task.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/basic_math.h b/zen/basic_math.h
index 41f42dbe..9a3d195e 100644
--- a/zen/basic_math.h
+++ b/zen/basic_math.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -42,7 +42,10 @@ auto nearMatch(const T& val, InputIterator first, InputIterator last) -> typenam
template <class T>
bool isNull(T value);
-int round(double d); //little rounding function
+int round(double d); //"little rounding function"
+
+template <class N>
+N integerDivideRoundUp(N numerator, N denominator);
template <size_t N, class T>
T power(const T& value);
@@ -98,7 +101,7 @@ const double ln2 = 0.693147180559945309417;
template <class T> inline
T abs(T value)
{
- //static_assert(std::is_signed<T>::value, ""); might not compile for non-built-in arithmetic types; anyway "-value" should emit compiler error or warning for unsigned types
+ static_assert(std::is_signed<T>::value, "");
if (value < 0)
return -value; // operator "?:" caveat: may be different type than "value"
else
@@ -234,6 +237,15 @@ int round(double d)
}
+template <class N> inline
+N integerDivideRoundUp(N numerator, N denominator)
+{
+ static_assert(std::is_unsigned<N>::value, "");
+ assert(denominator > 0);
+ return (numerator + denominator - 1) / denominator;
+}
+
+
namespace
{
template <size_t N, class T>
diff --git a/zen/build_info.h b/zen/build_info.h
index 406fef70..4eeb8195 100644
--- a/zen/build_info.h
+++ b/zen/build_info.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/deprecate.h b/zen/deprecate.h
index 56f8e27c..49d8386b 100644
--- a/zen/deprecate.h
+++ b/zen/deprecate.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -9,13 +9,13 @@
//compiler macros: http://predef.sourceforge.net/precomp.html
#ifdef __GNUC__
-#define ZEN_DEPRECATE __attribute__ ((deprecated))
+ #define ZEN_DEPRECATE __attribute__ ((deprecated))
#elif defined _MSC_VER
-#define ZEN_DEPRECATE __declspec(deprecated)
+ #define ZEN_DEPRECATE __declspec(deprecated)
#else
-#error add your platform here!
+ #error add your platform here!
#endif
#endif //DEPRECATE_HEADER_2348970348
diff --git a/zen/dir_watcher.cpp b/zen/dir_watcher.cpp
index 9a685fc5..916f6c69 100644
--- a/zen/dir_watcher.cpp
+++ b/zen/dir_watcher.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -11,18 +11,18 @@
#include "scope_guard.h"
#ifdef ZEN_WIN
-#include "notify_removal.h"
-#include "win.h" //includes "windows.h"
-#include "long_path_prefix.h"
+ #include "notify_removal.h"
+ #include "win.h" //includes "windows.h"
+ #include "long_path_prefix.h"
#elif defined ZEN_LINUX
-#include <sys/inotify.h>
-#include <fcntl.h>
-#include "file_traverser.h"
+ #include <sys/inotify.h>
+ #include <fcntl.h>
+ #include "file_traverser.h"
#elif defined ZEN_MAC
-#include <CoreServices/CoreServices.h>
-#include "osx_string.h"
+ #include <CoreServices/CoreServices.h>
+ #include "osx_string.h"
#endif
using namespace zen;
diff --git a/zen/dir_watcher.h b/zen/dir_watcher.h
index 99131470..b5255898 100644
--- a/zen/dir_watcher.h
+++ b/zen/dir_watcher.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/dll.h b/zen/dll.h
deleted file mode 100644
index f6422fa7..00000000
--- a/zen/dll.h
+++ /dev/null
@@ -1,121 +0,0 @@
-// **************************************************************************
-// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
-// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
-// **************************************************************************
-
-#ifndef DLLLOADER_H_4239582598670968
-#define DLLLOADER_H_4239582598670968
-
-#include <memory>
-#ifdef ZEN_WIN
-#include <string>
-#include "scope_guard.h"
-#include "win.h" //includes "windows.h"
-
-#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <dlfcn.h>
-#endif
-
-namespace zen
-{
-/*
-Manage DLL function and library ownership
- - thread safety: like built-in type
- - full value semantics
-
- Usage:
- typedef BOOL (WINAPI* FunType_IsWow64Process)(HANDLE hProcess, PBOOL Wow64Process);
- const zen::SysDllFun<FunType_IsWow64Process> isWow64Process(L"kernel32.dll", "IsWow64Process");
- if (isWow64Process) ... use function ptr ...
-
- Usage 2:
- #define DEF_DLL_FUN(name) DllFun<dll_ns::FunType_##name> name(dll_ns::getDllName(), dll_ns::funName_##name);
- DEF_DLL_FUN(funname1); DEF_DLL_FUN(funname2); DEF_DLL_FUN(funname3);
-*/
-
-template <class Func>
-class DllFun
-{
-public:
- DllFun() : fun(nullptr) {}
-
-#ifdef ZEN_WIN
- DllFun(const wchar_t* libraryName, const char* functionName) :
- hLibRef(::LoadLibrary(libraryName), ::FreeLibrary),
- fun(hLibRef ? reinterpret_cast<Func>(::GetProcAddress(static_cast<HMODULE>(hLibRef.get()), functionName)) : nullptr) {}
-#elif defined ZEN_LINUX || defined ZEN_MAC
- DllFun(const char* libraryName, const char* functionName) :
- hLibRef(::dlopen(libraryName, RTLD_LAZY), ::dlclose),
- fun(hLibRef ? reinterpret_cast<Func>(::dlsym(hLibRef.get(), functionName)) : nullptr) {}
-#endif
- operator Func() const { return fun; }
-
-private:
- std::shared_ptr<void> hLibRef; //we would prefer decltype(*HMODULE()) if only it would work...
- Func fun;
-};
-
-
-#ifdef ZEN_WIN
-//if the dll is already part of the process space, e.g. "kernel32.dll" or "shell32.dll", we can use a faster variant:
-//NOTE: since the lifetime of the referenced library is *not* controlled, this is safe to use only for permanently loaded libraries like these!
-template <class Func>
-class SysDllFun
-{
-public:
- SysDllFun() : fun(nullptr) {}
-
- SysDllFun(const wchar_t* systemLibrary, const char* functionName)
- {
- HMODULE mod = ::GetModuleHandle(systemLibrary);
- fun = mod ? reinterpret_cast<Func>(::GetProcAddress(mod, functionName)) : nullptr;
- }
-
- operator Func() const { return fun; }
-
-private:
- Func fun;
-};
-
-/*
-extract binary resources from .exe/.dll:
-
--- resource.h --
-#define MY_BINARY_RESOURCE 1337
-
--- resource.rc --
-MY_BINARY_RESOURCE RCDATA "filename.dat"
-*/
-std::string getResourceStream(const std::wstring& libraryName, size_t resourceId);
-#endif
-
-
-
-
-
-
-
-
-
-
-//--------------- implementation---------------------------------------------------
-#ifdef ZEN_WIN
-inline
-std::string getResourceStream(const wchar_t* libraryName, size_t resourceId)
-{
- if (HMODULE module = ::LoadLibrary(libraryName))
- {
- ZEN_ON_SCOPE_EXIT(::FreeLibrary(module));
-
- if (HRSRC res = ::FindResource(module, MAKEINTRESOURCE(resourceId), RT_RCDATA))
- if (HGLOBAL resHandle = ::LoadResource(module, res))
- if (const char* stream = static_cast<const char*>(::LockResource(resHandle)))
- return std::string(stream, static_cast<size_t>(::SizeofResource(module, res))); //size is 0 on error
- }
- return std::string();
-}
-#endif
-}
-
-#endif //DLLLOADER_H_4239582598670968
diff --git a/zen/error_log.h b/zen/error_log.h
index de4d3c9e..9814ec23 100644
--- a/zen/error_log.h
+++ b/zen/error_log.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/file_access.cpp b/zen/file_access.cpp
index c4768dd2..7a77b998 100644
--- a/zen/file_access.cpp
+++ b/zen/file_access.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -16,27 +16,27 @@
#include "file_id_def.h"
#ifdef ZEN_WIN
-#include <Aclapi.h>
-#include "privilege.h"
-#include "dll.h"
-#include "long_path_prefix.h"
-#include "win_ver.h"
-#include "IFileOperation/file_op.h"
+ #include <Aclapi.h>
+ #include "privilege.h"
+ #include "dll.h"
+ #include "long_path_prefix.h"
+ #include "win_ver.h"
+ #include "IFileOperation/file_op.h"
#elif defined ZEN_LINUX
-#include <sys/vfs.h> //statfs
-#include <fcntl.h> //AT_SYMLINK_NOFOLLOW, UTIME_OMIT
-#ifdef HAVE_SELINUX
-#include <selinux/selinux.h>
-#endif
+ #include <sys/vfs.h> //statfs
+ #include <fcntl.h> //AT_SYMLINK_NOFOLLOW, UTIME_OMIT
+ #ifdef HAVE_SELINUX
+ #include <selinux/selinux.h>
+ #endif
#elif defined ZEN_MAC
-#include <sys/mount.h> //statfs
+ #include <sys/mount.h> //statfs
#endif
#if defined ZEN_LINUX || defined ZEN_MAC
-#include <sys/stat.h>
-#include <sys/time.h> //lutimes
+ #include <sys/stat.h>
+ #include <sys/time.h> //lutimes
#endif
using namespace zen;
@@ -756,8 +756,6 @@ void setFileTimeRaw(const Zstring& filepath,
ZEN_ON_SCOPE_EXIT(::CloseHandle(hFile));
- auto isNullTime = [](const FILETIME& ft) { return ft.dwLowDateTime == 0 && ft.dwHighDateTime == 0; };
-
if (!::SetFileTime(hFile, //__in HANDLE hFile,
creationTime, //__in_opt const FILETIME *lpCreationTime,
nullptr, //__in_opt const FILETIME *lpLastAccessTime,
@@ -1438,7 +1436,7 @@ void zen::copySymlink(const Zstring& sourceLink, const Zstring& targetLink, bool
if (!createSymbolicLink)
throw FileError(replaceCpy(replaceCpy(_("Cannot copy symbolic link %x to %y."), L"%x", L"\n" + fmtFileName(sourceLink)), L"%y", L"\n" + fmtFileName(targetLink)),
- replaceCpy(_("Cannot find system function %x."), L"%x", L"\"CreateSymbolicLinkW\""));
+ replaceCpy(_("Cannot find system function %x."), L"%x", L"\"CreateSymbolicLinkW\""));
const wchar_t functionName[] = L"CreateSymbolicLinkW";
if (!createSymbolicLink(targetLink.c_str(), //__in LPTSTR lpSymlinkFileName, - seems no long path prefix is required...
@@ -1744,7 +1742,7 @@ void copyFileWindowsSparse(const Zstring& sourceFile,
LPVOID contextWrite = nullptr; //
ZEN_ON_SCOPE_EXIT(
- if (contextRead ) ::BackupRead (0, nullptr, 0, nullptr, true, false, &contextRead); //lpContext must be passed [...] all other parameters are ignored.
+ if (contextRead ) ::BackupRead (0, nullptr, 0, nullptr, true, false, &contextRead); //MSDN: "lpContext must be passed [...] all other parameters are ignored."
if (contextWrite) ::BackupWrite(0, nullptr, 0, nullptr, true, false, &contextWrite); );
//stream-copy sourceFile to targetFile
@@ -1792,8 +1790,6 @@ void copyFileWindowsSparse(const Zstring& sourceFile,
}
while (!eof);
- //DST hack not required, since both source and target volumes cannot be FAT!
-
//::BackupRead() silently fails reading encrypted files -> double check!
if (!someBytesWritten && get64BitUInt(fileInfoSource.nFileSizeLow, fileInfoSource.nFileSizeHigh) != 0U)
//note: there is no guaranteed ordering relation beween bytes transferred and file size! Consider ADS (>) and compressed/sparse files (<)!
@@ -1807,38 +1803,6 @@ void copyFileWindowsSparse(const Zstring& sourceFile,
throwFileError(replaceCpy(_("Cannot write modification time of %x."), L"%x", fmtFileName(targetFile)), L"SetFileTime", getLastError());
guardTarget.dismiss();
-
- /*
- //create sparse file for testing:
- HANDLE hSparse = ::CreateFile(L"C:\\sparse.file",
- GENERIC_READ | GENERIC_WRITE, //read access required for FSCTL_SET_COMPRESSION
- FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
- nullptr,
- CREATE_NEW,
- FILE_FLAG_SEQUENTIAL_SCAN,
- nullptr);
- if (hFileTarget == INVALID_HANDLE_VALUE)
- throw FileError(L"fail");
- ZEN_ON_SCOPE_EXIT(::CloseHandle(hSparse));
-
- DWORD br = 0;
- if (!::DeviceIoControl(hSparse, FSCTL_SET_SPARSE, nullptr, 0, nullptr, 0, &br,nullptr))
- throw FileError(L"fail");
-
- LARGE_INTEGER liDistanceToMove = {};
- liDistanceToMove.QuadPart = 1024 * 1024 * 1024; //create 5 TB sparse file
- liDistanceToMove.QuadPart *= 5 * 1024; //maximum file size on NTFS: 16 TB - 64 kB
- if (!::SetFilePointerEx(hSparse, liDistanceToMove, nullptr, FILE_BEGIN))
- throw FileError(L"fail");
-
- if (!SetEndOfFile(hSparse))
- throw FileError(L"fail");
-
- FILE_ZERO_DATA_INFORMATION zeroInfo = {};
- zeroInfo.BeyondFinalZero.QuadPart = liDistanceToMove.QuadPart;
- if (!::DeviceIoControl(hSparse, FSCTL_SET_ZERO_DATA, &zeroInfo, sizeof(zeroInfo), nullptr, 0, &br, nullptr))
- throw FileError(L"fail");
- */
}
diff --git a/zen/file_access.h b/zen/file_access.h
index 7cac889c..4a36009d 100644
--- a/zen/file_access.h
+++ b/zen/file_access.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/file_error.h b/zen/file_error.h
index 9276e8c5..4ba05107 100644
--- a/zen/file_error.h
+++ b/zen/file_error.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/file_id_def.h b/zen/file_id_def.h
index 3b217b3d..a96e978b 100644
--- a/zen/file_id_def.h
+++ b/zen/file_id_def.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,10 +10,10 @@
#include <utility>
#ifdef ZEN_WIN
-#include "win.h" //includes "windows.h"
+ #include "win.h" //includes "windows.h"
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <sys/stat.h>
+ #include <sys/stat.h>
#endif
diff --git a/zen/file_io.cpp b/zen/file_io.cpp
index 8f4b6cb2..c56d6ac0 100644
--- a/zen/file_io.cpp
+++ b/zen/file_io.cpp
@@ -1,20 +1,20 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#include "file_io.h"
#ifdef ZEN_WIN
-#include "long_path_prefix.h"
-#include "IFileOperation/file_op.h"
-#include "win_ver.h"
-#include "dll.h"
+ #include "long_path_prefix.h"
+ #include "IFileOperation/file_op.h"
+ #include "win_ver.h"
+ #include "dll.h"
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <fcntl.h> //open, close
-#include <unistd.h> //read, write
+ #include <fcntl.h> //open, close
+ #include <unistd.h> //read, write
#endif
using namespace zen;
diff --git a/zen/file_io.h b/zen/file_io.h
index 7ccef05b..111d7a09 100644
--- a/zen/file_io.h
+++ b/zen/file_io.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -11,27 +11,27 @@
#include "file_error.h"
#ifdef ZEN_WIN
-#include "win.h" //includes "windows.h"
+ #include "win.h" //includes "windows.h"
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <cstdio>
-#include <sys/stat.h>
+ #include <cstdio>
+ #include <sys/stat.h>
#endif
namespace zen
{
#ifdef ZEN_WIN
-static const char LINE_BREAK[] = "\r\n";
+ static const char LINE_BREAK[] = "\r\n";
#elif defined ZEN_LINUX || defined ZEN_MAC
-static const char LINE_BREAK[] = "\n"; //since OS X apple uses newline, too
+ static const char LINE_BREAK[] = "\n"; //since OS X apple uses newline, too
#endif
//buffered file IO optimized for sequential read/write accesses + better error reporting + long path support + following symlinks
#ifdef ZEN_WIN
-typedef HANDLE FileHandle;
+ typedef HANDLE FileHandle;
#elif defined ZEN_LINUX || defined ZEN_MAC
-typedef FILE* FileHandle;
+ typedef FILE* FileHandle;
#endif
class FileInput : public FileInputBase
diff --git a/zen/file_io_base.h b/zen/file_io_base.h
index e56ea189..9b6b27ca 100644
--- a/zen/file_io_base.h
+++ b/zen/file_io_base.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/file_traverser.cpp b/zen/file_traverser.cpp
index 7b423faa..f03cf464 100644
--- a/zen/file_traverser.cpp
+++ b/zen/file_traverser.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,20 +10,20 @@
#include "int64.h"
#ifdef ZEN_WIN
-#include "win_ver.h"
-#include "long_path_prefix.h"
-#include "file_access.h"
-#include "dll.h"
-#include "FindFilePlus/find_file_plus.h"
+ #include "win_ver.h"
+ #include "long_path_prefix.h"
+ #include "file_access.h"
+ #include "dll.h"
+ #include "FindFilePlus/find_file_plus.h"
#elif defined ZEN_MAC
-#include "osx_string.h"
+ #include "osx_string.h"
#endif
#if defined ZEN_LINUX || defined ZEN_MAC
-#include <cstddef> //required by GCC 4.8.1 to find ptrdiff_t
-#include <sys/stat.h>
-#include <dirent.h>
+ #include <cstddef> //required by GCC 4.8.1 to find ptrdiff_t
+ #include <sys/stat.h>
+ #include <dirent.h>
#endif
using namespace zen;
@@ -366,7 +366,7 @@ void DirTraverser::traverse<FilePlusTraverser>(const Zstring& dirpath, TraverseC
inline
-DirTraverser::DirTraverser(const Zstring& baseDirectory, TraverseCallback& sink)
+DirTraverser::DirTraverser(const Zstring& baseDirectory, TraverseCallback& sink)
{
try //traversing certain folders with restricted permissions requires this privilege! (but copying these files may still fail)
{
diff --git a/zen/file_traverser.h b/zen/file_traverser.h
index c9efbdb1..174503b5 100644
--- a/zen/file_traverser.h
+++ b/zen/file_traverser.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/fixed_list.h b/zen/fixed_list.h
index 627584df..2a577f13 100644
--- a/zen/fixed_list.h
+++ b/zen/fixed_list.h
@@ -1,12 +1,13 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef FIXED_LIST_01238467085684139453534
#define FIXED_LIST_01238467085684139453534
+#include <cassert>
#include <iterator>
namespace zen
@@ -116,6 +117,13 @@ public:
size_t size() const { return sz; }
+ void swap(FixedList& other)
+ {
+ std::swap(firstInsert, other.firstInsert);
+ std::swap(lastInsert , other.lastInsert);
+ std::swap(sz , other.sz);
+ }
+
private:
FixedList (const FixedList&) = delete;
FixedList& operator=(const FixedList&) = delete;
diff --git a/zen/format_unit.cpp b/zen/format_unit.cpp
index e251dc3c..5f529f9c 100644
--- a/zen/format_unit.cpp
+++ b/zen/format_unit.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -14,12 +14,12 @@
#include <cstdio>
#ifdef ZEN_WIN
-#include "win.h" //includes "windows.h"
-#include "win_ver.h"
+ #include "win.h" //includes "windows.h"
+ #include "win_ver.h"
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <clocale> //thousands separator
-#include "utf.h" //
+ #include <clocale> //thousands separator
+ #include "utf.h" //
#endif
using namespace zen;
diff --git a/zen/format_unit.h b/zen/format_unit.h
index 9416e3e5..009199f6 100644
--- a/zen/format_unit.h
+++ b/zen/format_unit.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/guid.h b/zen/guid.h
index 83845e5c..2ebfa132 100644
--- a/zen/guid.h
+++ b/zen/guid.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -11,15 +11,15 @@
#include <boost/uuid/uuid.hpp>
#ifdef __GNUC__ //boost should start cleaning this mess up
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wshadow"
-#pragma GCC diagnostic ignored "-Wuninitialized"
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wshadow"
+ #pragma GCC diagnostic ignored "-Wuninitialized"
#endif
#include <boost/uuid/uuid_generators.hpp>
#ifdef __GNUC__
-#pragma GCC diagnostic pop
+ #pragma GCC diagnostic pop
#endif
diff --git a/zen/i18n.h b/zen/i18n.h
index bf284c7f..6c3a37c4 100644
--- a/zen/i18n.h
+++ b/zen/i18n.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -15,9 +15,9 @@
//minimal layer enabling text translation - without platform/library dependencies!
#ifdef __WXMSW__ //we have wxWidgets
-#ifndef WXINTL_NO_GETTEXT_MACRO
-#error WXINTL_NO_GETTEXT_MACRO must be defined to deactivate wxWidgets underscore macro
-#endif
+ #ifndef WXINTL_NO_GETTEXT_MACRO
+ #error WXINTL_NO_GETTEXT_MACRO must be defined to deactivate wxWidgets underscore macro
+ #endif
#endif
#define ZEN_TRANS_CONCAT_SUB(X, Y) X ## Y
@@ -78,7 +78,7 @@ std::wstring translate(const std::wstring& singular, const std::wstring& plural,
return translation;
}
- return replaceCpy(std::abs(n) == 1 ? singular : plural, L"%x", toGuiString(n));
+ return replaceCpy(std::abs(n) == 1 ? singular : plural, L"%x", toGuiString(n));
}
template <class T> inline
diff --git a/zen/int64.h b/zen/int64.h
index 671f3372..bc01a4c2 100644
--- a/zen/int64.h
+++ b/zen/int64.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,7 +10,7 @@
#include <cstdint>
#ifdef ZEN_WIN
-#include "win.h"
+ #include "win.h"
#endif
diff --git a/zen/long_path_prefix.h b/zen/long_path_prefix.h
index 824c7084..d2289330 100644
--- a/zen/long_path_prefix.h
+++ b/zen/long_path_prefix.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/notify_removal.cpp b/zen/notify_removal.cpp
index 639264a6..37f305c9 100644
--- a/zen/notify_removal.cpp
+++ b/zen/notify_removal.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/notify_removal.h b/zen/notify_removal.h
index ba560f96..08d75818 100644
--- a/zen/notify_removal.h
+++ b/zen/notify_removal.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/optional.h b/zen/optional.h
index 15d27f4b..d65820c2 100644
--- a/zen/optional.h
+++ b/zen/optional.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/perf.h b/zen/perf.h
index 4405537c..17aeabd0 100644
--- a/zen/perf.h
+++ b/zen/perf.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -11,9 +11,9 @@
#include "tick_count.h"
#ifdef ZEN_WIN
-#include <sstream>
+ #include <sstream>
#else
-#include <iostream>
+ #include <iostream>
#endif
//############# two macros for quick performance measurements ###############
diff --git a/zen/process_priority.cpp b/zen/process_priority.cpp
index ee8e7d8b..c5932900 100644
--- a/zen/process_priority.cpp
+++ b/zen/process_priority.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -9,7 +9,7 @@
#include "i18n.h"
#ifdef ZEN_WIN
-#include "win.h" //includes "windows.h"
+ #include "win.h" //includes "windows.h"
#endif
using namespace zen;
@@ -32,8 +32,8 @@ PreventStandby::~PreventStandby()
#ifndef PROCESS_MODE_BACKGROUND_BEGIN
-#define PROCESS_MODE_BACKGROUND_BEGIN 0x00100000 // Windows Server 2003 and Windows XP/2000: This value is not supported!
-#define PROCESS_MODE_BACKGROUND_END 0x00200000 //
+ #define PROCESS_MODE_BACKGROUND_BEGIN 0x00100000 // Windows Server 2003 and Windows XP/2000: This value is not supported!
+ #define PROCESS_MODE_BACKGROUND_END 0x00200000 //
#endif
struct ScheduleForBackgroundProcessing::Pimpl {};
diff --git a/zen/process_priority.h b/zen/process_priority.h
index a133985f..3e217776 100644
--- a/zen/process_priority.h
+++ b/zen/process_priority.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
#ifndef PREVENTSTANDBY_H_83421759082143245
diff --git a/zen/recycler.cpp b/zen/recycler.cpp
index 5b5e44d4..649bbb8e 100644
--- a/zen/recycler.cpp
+++ b/zen/recycler.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -8,19 +8,19 @@
#include "file_access.h"
#ifdef ZEN_WIN
-#include "thread.h"
-#include "dll.h"
-#include "win_ver.h"
-#include "long_path_prefix.h"
-#include "IFileOperation/file_op.h"
+ #include "thread.h"
+ #include "dll.h"
+ #include "win_ver.h"
+ #include "long_path_prefix.h"
+ #include "IFileOperation/file_op.h"
#elif defined ZEN_LINUX
-#include <sys/stat.h>
-#include <gio/gio.h>
-#include "scope_guard.h"
+ #include <sys/stat.h>
+ #include <gio/gio.h>
+ #include "scope_guard.h"
#elif defined ZEN_MAC
-#include <CoreServices/CoreServices.h>
+ #include <CoreServices/CoreServices.h>
#endif
using namespace zen;
diff --git a/zen/recycler.h b/zen/recycler.h
index b406408f..d86fbb12 100644
--- a/zen/recycler.h
+++ b/zen/recycler.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/scope_guard.h b/zen/scope_guard.h
index 761c6aea..706b20dc 100644
--- a/zen/scope_guard.h
+++ b/zen/scope_guard.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/serialize.h b/zen/serialize.h
index cd427c9c..54baf75a 100644
--- a/zen/serialize.h
+++ b/zen/serialize.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -137,35 +137,35 @@ template < class BinInputStream> void readArray (BinInputStream& stre
//-----------------------implementation-------------------------------
template <class BinContainer> inline
void saveBinStream(const Zstring& filepath, //throw FileError
- const BinContainer& cont,
- const std::function<void(std::int64_t bytesDelta)>& onUpdateStatus) //optional
+ const BinContainer& cont,
+ const std::function<void(std::int64_t bytesDelta)>& onUpdateStatus) //optional
{
static_assert(sizeof(typename BinContainer::value_type) == 1, ""); //expect: bytes (until further)
FileOutput fileOut(filepath, zen::FileOutput::ACC_OVERWRITE); //throw FileError
if (!cont.empty())
- {
- const size_t blockSize = 128 * 1024;
- auto bytePtr = &*cont.begin();
- size_t bytesLeft = cont.size();
-
- while (bytesLeft > blockSize)
- {
- fileOut.write(bytePtr, blockSize); //throw FileError
- bytePtr += blockSize;
- bytesLeft -= blockSize;
- if (onUpdateStatus) onUpdateStatus(blockSize);
- }
-
- fileOut.write(bytePtr, bytesLeft); //throw FileError
- if (onUpdateStatus) onUpdateStatus(bytesLeft);
- }
+ {
+ const size_t blockSize = 128 * 1024;
+ auto bytePtr = &*cont.begin();
+ size_t bytesLeft = cont.size();
+
+ while (bytesLeft > blockSize)
+ {
+ fileOut.write(bytePtr, blockSize); //throw FileError
+ bytePtr += blockSize;
+ bytesLeft -= blockSize;
+ if (onUpdateStatus) onUpdateStatus(blockSize);
+ }
+
+ fileOut.write(bytePtr, bytesLeft); //throw FileError
+ if (onUpdateStatus) onUpdateStatus(bytesLeft);
+ }
}
template <class BinContainer> inline
BinContainer loadBinStream(const Zstring& filepath, //throw FileError
- const std::function<void(std::int64_t bytesDelta)>& onUpdateStatus) //optional
+ const std::function<void(std::int64_t bytesDelta)>& onUpdateStatus) //optional
{
static_assert(sizeof(typename BinContainer::value_type) == 1, ""); //expect: bytes (until further)
@@ -181,7 +181,7 @@ BinContainer loadBinStream(const Zstring& filepath, //throw FileError
if (bytesRead < blockSize)
contOut.resize(contOut.size() - (blockSize - bytesRead)); //caveat: unsigned arithmetics
- if (onUpdateStatus) onUpdateStatus(bytesRead);
+ if (onUpdateStatus) onUpdateStatus(bytesRead);
}
while (!fileIn.eof());
diff --git a/zen/shell_execute.h b/zen/shell_execute.h
index c2ccd837..4eebcca2 100644
--- a/zen/shell_execute.h
+++ b/zen/shell_execute.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,12 +10,12 @@
#include "file_error.h"
#ifdef ZEN_WIN
-#include "scope_guard.h"
-#include "win.h" //includes "windows.h"
+ #include "scope_guard.h"
+ #include "win.h" //includes "windows.h"
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include "thread.h"
-#include <stdlib.h> //::system()
+ #include "thread.h"
+ #include <stdlib.h> //::system()
#endif
diff --git a/zen/stl_tools.h b/zen/stl_tools.h
index eb94b4a1..a8f2a9b5 100644
--- a/zen/stl_tools.h
+++ b/zen/stl_tools.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -164,8 +164,8 @@ bool equal(InputIterator1 first1, InputIterator1 last1,
#if defined _MSC_VER && _MSC_VER <= 1600
-//VS2010 performance bug in std::unordered_set<>: http://drdobbs.com/blogs/cpp/232200410 -> should be fixed in VS11
-static_assert(false, "");
+ //VS2010 performance bug in std::unordered_set<>: http://drdobbs.com/blogs/cpp/232200410 -> should be fixed in VS11
+ static_assert(false, "");
#endif
}
diff --git a/zen/string_base.h b/zen/string_base.h
index 0f9ad479..b1d7102e 100644
--- a/zen/string_base.h
+++ b/zen/string_base.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -74,7 +74,7 @@ protected:
assert(newCapacity >= minCapacity);
Descriptor* const newDescr = static_cast<Descriptor*>(this->allocate(sizeof(Descriptor) + (newCapacity + 1) * sizeof(Char))); //throw std::bad_alloc
- new (newDescr) Descriptor(size, newCapacity);
+ new (newDescr) Descriptor(size, newCapacity);
return reinterpret_cast<Char*>(newDescr + 1); //alignment note: "newDescr + 1" is Descriptor-aligned, which is larger than alignment for Char-array! => no problem!
}
@@ -86,14 +86,14 @@ protected:
return newData;
}
- void destroy(Char* ptr)
- {
+ void destroy(Char* ptr)
+ {
if (!ptr) return; //support "destroy(nullptr)"
- Descriptor* const d = descr(ptr);
- d->~Descriptor();
- this->deallocate(d);
- }
+ Descriptor* const d = descr(ptr);
+ d->~Descriptor();
+ this->deallocate(d);
+ }
//this needs to be checked before writing to "ptr"
static bool canWrite(const Char* ptr, size_t minCapacity) { return minCapacity <= descr(ptr)->capacity; }
@@ -164,7 +164,7 @@ protected:
static bool canWrite(const Char* ptr, size_t minCapacity) //needs to be checked before writing to "ptr"
{
const Descriptor* const d = descr(ptr);
- assert(d->refCount > 0);
+ assert(d->refCount > 0);
return d->refCount == 1 && minCapacity <= d->capacity;
}
@@ -180,7 +180,7 @@ private:
struct Descriptor
{
Descriptor(size_t len, size_t cap) :
- refCount(1),
+ refCount(1),
length (static_cast<std::uint32_t>(len)),
capacity(static_cast<std::uint32_t>(cap)) { static_assert(ATOMIC_INT_LOCK_FREE == 2, ""); } //2: "the types are always lock-free"
diff --git a/zen/string_tools.h b/zen/string_tools.h
index addf2bd5..1b8595c7 100644
--- a/zen/string_tools.h
+++ b/zen/string_tools.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/string_traits.h b/zen/string_traits.h
index ba97397c..8bc55a6a 100644
--- a/zen/string_traits.h
+++ b/zen/string_traits.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -82,10 +82,10 @@ template <class S, bool isStringClass> struct GetCharTypeImpl : ResultType<Null
template <class S>
struct GetCharTypeImpl<S, true> :
- ResultType<
- typename SelectIf<HasConversion<S, wchar_t>::value, wchar_t,
- typename SelectIf<HasConversion<S, char >::value, char, NullType>::Type
- >::Type>
+ ResultType<
+ typename SelectIf<HasConversion<S, wchar_t>::value, wchar_t,
+ typename SelectIf<HasConversion<S, char >::value, char, NullType>::Type
+ >::Type>
{
//typedef typename S::value_type Type;
/*DON'T use S::value_type:
diff --git a/zen/symlink_target.h b/zen/symlink_target.h
index 4106ed02..1a7f45bd 100644
--- a/zen/symlink_target.h
+++ b/zen/symlink_target.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -11,22 +11,22 @@
#include "file_error.h"
#ifdef ZEN_WIN
-#include "win.h" //includes "windows.h"
-#include "privilege.h"
-#include "long_path_prefix.h"
-#include "dll.h"
+ #include "win.h" //includes "windows.h"
+ #include "privilege.h"
+ #include "long_path_prefix.h"
+ #include "dll.h"
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <unistd.h>
-#include <stdlib.h> //realpath
+ #include <unistd.h>
+ #include <stdlib.h> //realpath
#endif
namespace zen
{
#ifdef ZEN_WIN
-bool isSymlink(const WIN32_FIND_DATA& data); //*not* a simple FILE_ATTRIBUTE_REPARSE_POINT check!
-bool isSymlink(DWORD fileAttributes, DWORD reparseTag);
+ bool isSymlink(const WIN32_FIND_DATA& data); //*not* a simple FILE_ATTRIBUTE_REPARSE_POINT check!
+ bool isSymlink(DWORD fileAttributes, DWORD reparseTag);
#endif
Zstring getResolvedFilePath(const Zstring& linkPath); //throw FileError; Win: requires Vista or later!
diff --git a/zen/sys_error.h b/zen/sys_error.h
index 9cfc762f..9f7667db 100644
--- a/zen/sys_error.h
+++ b/zen/sys_error.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -13,11 +13,11 @@
#include "scope_guard.h"
#ifdef ZEN_WIN
-#include "win.h" //includes "windows.h"
+ #include "win.h" //includes "windows.h"
#elif defined ZEN_LINUX || defined ZEN_MAC
-#include <cstring>
-#include <cerrno>
+ #include <cstring>
+ #include <cerrno>
#endif
@@ -25,11 +25,11 @@ namespace zen
{
//evaluate GetLastError()/errno and assemble specific error message
#ifdef ZEN_WIN
-typedef DWORD ErrorCode;
+ typedef DWORD ErrorCode;
#elif defined ZEN_LINUX || defined ZEN_MAC
-typedef int ErrorCode;
+ typedef int ErrorCode;
#else
-#error define a platform!
+ #error define a platform!
#endif
ErrorCode getLastError();
diff --git a/zen/thread.h b/zen/thread.h
index a834f070..cca2561f 100644
--- a/zen/thread.h
+++ b/zen/thread.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -12,27 +12,27 @@
//workaround this pathetic boost thread warning mess
#ifdef __GNUC__
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wswitch-enum"
-#pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#pragma GCC diagnostic ignored "-Wredundant-decls"
-#pragma GCC diagnostic ignored "-Wshadow"
-#ifndef __clang__ //clang defines __GNUC__, but doesn't support this warning
-#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
-#endif
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wswitch-enum"
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+ #pragma GCC diagnostic ignored "-Wredundant-decls"
+ #pragma GCC diagnostic ignored "-Wshadow"
+ #ifndef __clang__ //clang defines __GNUC__, but doesn't support this warning
+ #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
+ #endif
#endif
#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable : 4702 4913) //unreachable code; user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used
+ #pragma warning(push)
+ #pragma warning(disable : 4702 4913) //unreachable code; user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used
#endif
#include <boost/thread.hpp>
#ifdef __GNUC__
-#pragma GCC diagnostic pop
+ #pragma GCC diagnostic pop
#endif
#ifdef _MSC_VER
-#pragma warning(pop)
+ #pragma warning(pop)
#endif
namespace zen
@@ -85,7 +85,7 @@ private:
//###################### implementation ######################
#ifndef BOOST_HAS_THREADS
-#error just some paranoia check...
+ #error just some paranoia check...
#endif
template <class Function> inline
diff --git a/zen/tick_count.h b/zen/tick_count.h
index 56179b62..bedc66a5 100644
--- a/zen/tick_count.h
+++ b/zen/tick_count.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -12,13 +12,13 @@
#include "basic_math.h"
#ifdef ZEN_WIN
-#include "win.h" //includes "windows.h"
+ #include "win.h" //includes "windows.h"
#elif defined ZEN_LINUX
-#include <time.h> //Posix ::clock_gettime()
+ #include <time.h> //Posix ::clock_gettime()
#elif defined ZEN_MAC
-#include <mach/mach_time.h>
+ #include <mach/mach_time.h>
#endif
//template <class T> inline
//T dist(T a, T b)
diff --git a/zen/time.h b/zen/time.h
index e53e4c6e..4593c48b 100644
--- a/zen/time.h
+++ b/zen/time.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/type_tools.h b/zen/type_tools.h
index 1f782a2d..95e49769 100644
--- a/zen/type_tools.h
+++ b/zen/type_tools.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/type_traits.h b/zen/type_traits.h
index 8e85a7b2..082baea9 100644
--- a/zen/type_traits.h
+++ b/zen/type_traits.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/utf.h b/zen/utf.h
index e742c1e2..42758c35 100644
--- a/zen/utf.h
+++ b/zen/utf.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/warn_static.h b/zen/warn_static.h
index b9673ed6..1e942031 100644
--- a/zen/warn_static.h
+++ b/zen/warn_static.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/win.h b/zen/win.h
index 40a157f5..121e6a9c 100644
--- a/zen/win.h
+++ b/zen/win.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -9,20 +9,20 @@
//------------------------------------------------------
#ifdef __WXMSW__ //we have wxWidgets
-#include <wx/msw/wrapwin.h> //includes "windows.h"
-//------------------------------------------------------
+ #include <wx/msw/wrapwin.h> //includes "windows.h"
+ //------------------------------------------------------
#else
-//#define WIN32_LEAN_AND_MEAN
+ //#define WIN32_LEAN_AND_MEAN
-#ifndef NOMINMAX
-#define NOMINMAX
-#endif
+ #ifndef NOMINMAX
+ #define NOMINMAX
+ #endif
-#ifndef STRICT
-#define STRICT //improve type checking
-#endif
+ #ifndef STRICT
+ #define STRICT //improve type checking
+ #endif
-#include <windows.h>
+ #include <windows.h>
#endif
//------------------------------------------------------
diff --git a/zen/win_ver.h b/zen/win_ver.h
index 1d7ce7f0..97b6d7e1 100644
--- a/zen/win_ver.h
+++ b/zen/win_ver.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,6 +10,8 @@
#include <cassert>
#include <utility>
#include "win.h" //includes "windows.h"
+#include "build_info.h"
+#include "dll.h"
namespace zen
{
@@ -33,6 +35,7 @@ const OsVersion osVersionWin7 (6, 1);
const OsVersion osVersionWinVista (6, 0);
const OsVersion osVersionWinServer2003(5, 2);
const OsVersion osVersionWinXp (5, 1);
+const OsVersion osVersionWin2000 (5, 0);
/*
NOTE: there are two basic APIs to check Windows version: (empiric study following)
@@ -53,6 +56,8 @@ inline bool winXpOrLater () { using namespace std::rel_ops; return getOsV
bool isRealOsVersion(const OsVersion& ver);
+bool runningWOW64();
+bool running64BitWindows();
@@ -98,6 +103,30 @@ bool isRealOsVersion(const OsVersion& ver)
return rv;
}
+
+
+inline
+bool runningWOW64() //test if process is running under WOW64: http://msdn.microsoft.com/en-us/library/ms684139(VS.85).aspx
+{
+ typedef BOOL (WINAPI* IsWow64ProcessFun)(HANDLE hProcess, PBOOL Wow64Process);
+
+ const SysDllFun<IsWow64ProcessFun> isWow64Process(L"kernel32.dll", "IsWow64Process");
+ if (isWow64Process)
+ {
+ BOOL isWow64 = FALSE;
+ if (isWow64Process(::GetCurrentProcess(), &isWow64))
+ return isWow64 != FALSE;
+ }
+ return false;
+}
+
+
+inline
+bool running64BitWindows() //http://blogs.msdn.com/b/oldnewthing/archive/2005/02/01/364563.aspx
+{
+ static_assert(zen::is32BitBuild || zen::is64BitBuild, "");
+ return is64BitBuild || runningWOW64(); //should we bother to make this a compile-time check?
+}
}
#endif //WINDOWS_VERSION_HEADER_238470348254325
diff --git a/zen/xml_io.cpp b/zen/xml_io.cpp
index 9ac4b87f..a070b526 100644
--- a/zen/xml_io.cpp
+++ b/zen/xml_io.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/xml_io.h b/zen/xml_io.h
index e3e47f59..16e01aff 100644
--- a/zen/xml_io.h
+++ b/zen/xml_io.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
diff --git a/zen/zstring.cpp b/zen/zstring.cpp
index a2a26f83..d87e7989 100644
--- a/zen/zstring.cpp
+++ b/zen/zstring.cpp
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -9,17 +9,16 @@
#include <unordered_map>
#ifdef ZEN_WIN
-#include "dll.h"
-#include "win_ver.h"
+ #include "dll.h"
+ #include "win_ver.h"
#elif defined ZEN_MAC
-#include <ctype.h> //toupper()
+ #include <ctype.h> //toupper()
#endif
#ifndef NDEBUG
-#include <mutex>
-#include <iostream>
-#include "thread.h"
+ #include <mutex>
+ #include <iostream>
#endif
using namespace zen;
@@ -40,14 +39,14 @@ public:
void insert(const void* ptr, size_t size)
{
- boost::lock_guard<boost::mutex> dummy(lockActStrings);
+ std::lock_guard<std::mutex> dummy(lockActStrings);
if (!activeStrings.emplace(ptr, size).second)
reportProblem("Serious Error: New memory points into occupied space: " + rawMemToString(ptr, size));
}
void remove(const void* ptr)
{
- boost::lock_guard<boost::mutex> dummy(lockActStrings);
+ std::lock_guard<std::mutex> dummy(lockActStrings);
if (activeStrings.erase(ptr) != 1)
reportProblem("Serious Error: No memory available for deallocation at this location!");
}
@@ -96,7 +95,7 @@ private:
throw std::logic_error("Memory leak! " + message);
}
- boost::mutex lockActStrings;
+ std::mutex lockActStrings;
std::unordered_map<const void*, size_t> activeStrings;
};
@@ -168,8 +167,8 @@ int cmpFileName(const Zstring& lhs, const Zstring& rhs)
//do NOT use "CompareString"; this function is NOT accurate (even with LOCALE_INVARIANT and SORT_STRINGSORT): for example "weiß" == "weiss"!!!
//the only reliable way to compare filepaths (with XP) is to call "CharUpper" or "LCMapString":
- const size_t sizeLhs = lhs.size();
- const size_t sizeRhs = rhs.size();
+ const size_t sizeLhs = lhs.size();
+ const size_t sizeRhs = rhs.size();
const auto minSize = std::min(sizeLhs, sizeRhs);
diff --git a/zen/zstring.h b/zen/zstring.h
index 94144386..0610a27f 100644
--- a/zen/zstring.h
+++ b/zen/zstring.h
@@ -1,6 +1,6 @@
// **************************************************************************
// * This file is part of the FreeFileSync project. It is distributed under *
-// * GNU General Public License: http://www.gnu.org/licenses/gpl.html *
+// * GNU General Public License: http://www.gnu.org/licenses/gpl-3.0 *
// * Copyright (C) Zenju (zenju AT gmx DOT de) - All Rights Reserved *
// **************************************************************************
@@ -10,7 +10,7 @@
#include "string_base.h"
#ifdef ZEN_LINUX
-#include <cstring> //strcmp
+ #include <cstring> //strcmp
#endif
@@ -49,14 +49,14 @@ public:
//############################## helper functions #############################################
#ifdef ZEN_WIN //Windows encodes Unicode as UTF-16 wchar_t
-typedef wchar_t Zchar;
-#define Zstr(x) L ## x
-const Zchar FILE_NAME_SEPARATOR = L'\\';
+ typedef wchar_t Zchar;
+ #define Zstr(x) L ## x
+ const Zchar FILE_NAME_SEPARATOR = L'\\';
#elif defined ZEN_LINUX || defined ZEN_MAC //Linux uses UTF-8
-typedef char Zchar;
-#define Zstr(x) x
-const Zchar FILE_NAME_SEPARATOR = '/';
+ typedef char Zchar;
+ #define Zstr(x) x
+ const Zchar FILE_NAME_SEPARATOR = '/';
#endif
//"The reason for all the fuss above" - Loki/SmartPtr
@@ -79,7 +79,7 @@ struct EqualFilename //case-insensitive on Windows, case-sensitive on Linux
};
#if defined ZEN_WIN || defined ZEN_MAC
-Zstring makeUpperCopy(const Zstring& str);
+ Zstring makeUpperCopy(const Zstring& str);
#endif
inline
bgstack15