aboutsummaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2018-04-25 18:07:30 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2018-04-25 18:07:30 -0400
commit9b1b081cfdb1c0fb6457278775e0823f8bc10f62 (patch)
treece8840148d8445055ba9e4f12263b2208f234c16 /src/gui
Import Upstream version 2.0.0+dfsgupstream/2.0.0+dfsg
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/CMakeLists.txt52
-rw-r--r--src/gui/gui.pro162
-rw-r--r--src/gui/gui.ts1407
-rw-r--r--src/gui/lang.cmd1
-rw-r--r--src/gui/langbuild.cmd2
-rw-r--r--src/gui/res/Barrier.qrc58
-rw-r--r--src/gui/res/icons/16x16/barrier-connected.pngbin0 -> 1054 bytes
-rw-r--r--src/gui/res/icons/16x16/barrier-connected.xcfbin0 -> 8583 bytes
-rw-r--r--src/gui/res/icons/16x16/barrier-disconnected.pngbin0 -> 946 bytes
-rw-r--r--src/gui/res/icons/16x16/barrier-disconnected.xcfbin0 -> 7281 bytes
-rw-r--r--src/gui/res/icons/16x16/barrier-transfering.pngbin0 -> 813 bytes
-rw-r--r--src/gui/res/icons/16x16/barrier-transfering.xcfbin0 -> 2367 bytes
-rw-r--r--src/gui/res/icons/16x16/money.pngbin0 -> 738 bytes
-rw-r--r--src/gui/res/icons/16x16/padlock.pngbin0 -> 450 bytes
-rw-r--r--src/gui/res/icons/16x16/warning.pngbin0 -> 693 bytes
-rw-r--r--src/gui/res/icons/256x256/barrier.icobin0 -> 121502 bytes
-rw-r--r--src/gui/res/icons/64x64/user-trash.pngbin0 -> 3815 bytes
-rw-r--r--src/gui/res/icons/64x64/video-display.pngbin0 -> 2579 bytes
-rw-r--r--src/gui/res/image/about.pngbin0 -> 3563 bytes
-rw-r--r--src/gui/res/image/spinning-wheel.gifbin0 -> 9689 bytes
-rw-r--r--src/gui/res/lang/Languages.xml46
-rw-r--r--src/gui/res/lang/gui_af-ZA.qm1
-rw-r--r--src/gui/res/lang/gui_af-ZA.ts1405
-rw-r--r--src/gui/res/lang/gui_ar.qmbin0 -> 7606 bytes
-rw-r--r--src/gui/res/lang/gui_ar.ts1405
-rw-r--r--src/gui/res/lang/gui_bg-BG.qmbin0 -> 21881 bytes
-rw-r--r--src/gui/res/lang/gui_bg-BG.ts1410
-rw-r--r--src/gui/res/lang/gui_ca-AD.qmbin0 -> 23075 bytes
-rw-r--r--src/gui/res/lang/gui_ca-AD.ts1411
-rw-r--r--src/gui/res/lang/gui_cs-CZ.qmbin0 -> 22885 bytes
-rw-r--r--src/gui/res/lang/gui_cs-CZ.ts1411
-rw-r--r--src/gui/res/lang/gui_cy.qmbin0 -> 15069 bytes
-rw-r--r--src/gui/res/lang/gui_cy.ts1407
-rw-r--r--src/gui/res/lang/gui_da.qmbin0 -> 22064 bytes
-rw-r--r--src/gui/res/lang/gui_da.ts1410
-rw-r--r--src/gui/res/lang/gui_de.qmbin0 -> 23630 bytes
-rw-r--r--src/gui/res/lang/gui_de.ts1411
-rw-r--r--src/gui/res/lang/gui_es.qmbin0 -> 23608 bytes
-rw-r--r--src/gui/res/lang/gui_es.ts1411
-rw-r--r--src/gui/res/lang/gui_et-EE.qmbin0 -> 21523 bytes
-rw-r--r--src/gui/res/lang/gui_et-EE.ts1411
-rw-r--r--src/gui/res/lang/gui_fi.qmbin0 -> 21784 bytes
-rw-r--r--src/gui/res/lang/gui_fi.ts1411
-rw-r--r--src/gui/res/lang/gui_fr.qmbin0 -> 23634 bytes
-rw-r--r--src/gui/res/lang/gui_fr.ts1411
-rw-r--r--src/gui/res/lang/gui_gl.qmbin0 -> 3447 bytes
-rw-r--r--src/gui/res/lang/gui_gl.ts1405
-rw-r--r--src/gui/res/lang/gui_grk.qmbin0 -> 4629 bytes
-rw-r--r--src/gui/res/lang/gui_grk.ts1405
-rw-r--r--src/gui/res/lang/gui_he.qmbin0 -> 13575 bytes
-rw-r--r--src/gui/res/lang/gui_he.ts1405
-rw-r--r--src/gui/res/lang/gui_hi.qmbin0 -> 23 bytes
-rw-r--r--src/gui/res/lang/gui_hi.ts1405
-rw-r--r--src/gui/res/lang/gui_hr-HR.qmbin0 -> 20485 bytes
-rw-r--r--src/gui/res/lang/gui_hr-HR.ts1408
-rw-r--r--src/gui/res/lang/gui_hu-HU.qmbin0 -> 18573 bytes
-rw-r--r--src/gui/res/lang/gui_hu-HU.ts1407
-rw-r--r--src/gui/res/lang/gui_id.qmbin0 -> 4680 bytes
-rw-r--r--src/gui/res/lang/gui_id.ts1405
-rw-r--r--src/gui/res/lang/gui_is-IS.qm1
-rw-r--r--src/gui/res/lang/gui_is-IS.ts1405
-rw-r--r--src/gui/res/lang/gui_it.qmbin0 -> 21855 bytes
-rw-r--r--src/gui/res/lang/gui_it.ts1408
-rw-r--r--src/gui/res/lang/gui_ja-JP.qmbin0 -> 17379 bytes
-rw-r--r--src/gui/res/lang/gui_ja-JP.ts1411
-rw-r--r--src/gui/res/lang/gui_ko.qmbin0 -> 18395 bytes
-rw-r--r--src/gui/res/lang/gui_ko.ts1411
-rw-r--r--src/gui/res/lang/gui_lt.qmbin0 -> 2228 bytes
-rw-r--r--src/gui/res/lang/gui_lt.ts1405
-rw-r--r--src/gui/res/lang/gui_lv.qmbin0 -> 1234 bytes
-rw-r--r--src/gui/res/lang/gui_lv.ts1405
-rw-r--r--src/gui/res/lang/gui_mr.qmbin0 -> 3637 bytes
-rw-r--r--src/gui/res/lang/gui_mr.ts1405
-rw-r--r--src/gui/res/lang/gui_nl-NL.qmbin0 -> 22477 bytes
-rw-r--r--src/gui/res/lang/gui_nl-NL.ts1410
-rw-r--r--src/gui/res/lang/gui_no.qmbin0 -> 21716 bytes
-rw-r--r--src/gui/res/lang/gui_no.ts1412
-rw-r--r--src/gui/res/lang/gui_pes-IR.qmbin0 -> 1070 bytes
-rw-r--r--src/gui/res/lang/gui_pes-IR.ts1405
-rw-r--r--src/gui/res/lang/gui_pl-PL.qmbin0 -> 22465 bytes
-rw-r--r--src/gui/res/lang/gui_pl-PL.ts1411
-rw-r--r--src/gui/res/lang/gui_pt-BR.qmbin0 -> 22443 bytes
-rw-r--r--src/gui/res/lang/gui_pt-BR.ts1411
-rw-r--r--src/gui/res/lang/gui_pt-PT.qmbin0 -> 21258 bytes
-rw-r--r--src/gui/res/lang/gui_pt-PT.ts1407
-rw-r--r--src/gui/res/lang/gui_ro.qmbin0 -> 19806 bytes
-rw-r--r--src/gui/res/lang/gui_ro.ts1407
-rw-r--r--src/gui/res/lang/gui_ru.qmbin0 -> 22329 bytes
-rw-r--r--src/gui/res/lang/gui_ru.ts1414
-rw-r--r--src/gui/res/lang/gui_si.qmbin0 -> 677 bytes
-rw-r--r--src/gui/res/lang/gui_si.ts1405
-rw-r--r--src/gui/res/lang/gui_sk-SK.qmbin0 -> 1187 bytes
-rw-r--r--src/gui/res/lang/gui_sk-SK.ts1405
-rw-r--r--src/gui/res/lang/gui_sl-SI.qmbin0 -> 1709 bytes
-rw-r--r--src/gui/res/lang/gui_sl-SI.ts1405
-rw-r--r--src/gui/res/lang/gui_sq-AL.qmbin0 -> 20251 bytes
-rw-r--r--src/gui/res/lang/gui_sq-AL.ts1408
-rw-r--r--src/gui/res/lang/gui_sr.qmbin0 -> 117 bytes
-rw-r--r--src/gui/res/lang/gui_sr.ts1405
-rw-r--r--src/gui/res/lang/gui_sv.qmbin0 -> 22156 bytes
-rw-r--r--src/gui/res/lang/gui_sv.ts1411
-rw-r--r--src/gui/res/lang/gui_th-TH.qmbin0 -> 3721 bytes
-rw-r--r--src/gui/res/lang/gui_th-TH.ts1405
-rw-r--r--src/gui/res/lang/gui_tr-TR.qmbin0 -> 20445 bytes
-rw-r--r--src/gui/res/lang/gui_tr-TR.ts1410
-rw-r--r--src/gui/res/lang/gui_uk.qmbin0 -> 22693 bytes
-rw-r--r--src/gui/res/lang/gui_uk.ts1411
-rw-r--r--src/gui/res/lang/gui_ur.qmbin0 -> 1316 bytes
-rw-r--r--src/gui/res/lang/gui_ur.ts1405
-rw-r--r--src/gui/res/lang/gui_vi.qmbin0 -> 5101 bytes
-rw-r--r--src/gui/res/lang/gui_vi.ts1405
-rw-r--r--src/gui/res/lang/gui_zh-CN.qmbin0 -> 16197 bytes
-rw-r--r--src/gui/res/lang/gui_zh-CN.ts1411
-rw-r--r--src/gui/res/lang/gui_zh-TW.qmbin0 -> 16331 bytes
-rw-r--r--src/gui/res/lang/gui_zh-TW.ts1414
-rw-r--r--src/gui/res/mac/Info.plist28
-rw-r--r--src/gui/res/mac/QBarrier.icnsbin0 -> 124558 bytes
-rw-r--r--src/gui/res/win/Barrier.rc1
-rw-r--r--src/gui/src/AboutDialog.cpp55
-rw-r--r--src/gui/src/AboutDialog.h43
-rw-r--r--src/gui/src/AboutDialogBase.ui223
-rw-r--r--src/gui/src/Action.cpp150
-rw-r--r--src/gui/src/Action.h89
-rw-r--r--src/gui/src/ActionDialog.cpp109
-rw-r--r--src/gui/src/ActionDialog.h56
-rw-r--r--src/gui/src/ActionDialogBase.ui581
-rw-r--r--src/gui/src/AddClientDialog.cpp129
-rw-r--r--src/gui/src/AddClientDialog.h68
-rw-r--r--src/gui/src/AddClientDialogBase.ui144
-rw-r--r--src/gui/src/AppConfig.cpp231
-rw-r--r--src/gui/src/AppConfig.h140
-rw-r--r--src/gui/src/BarrierLocale.cpp68
-rw-r--r--src/gui/src/BarrierLocale.h48
-rw-r--r--src/gui/src/BaseConfig.cpp46
-rw-r--r--src/gui/src/BaseConfig.h91
-rw-r--r--src/gui/src/CommandProcess.cpp63
-rw-r--r--src/gui/src/CommandProcess.h43
-rw-r--r--src/gui/src/CoreInterface.cpp96
-rw-r--r--src/gui/src/CoreInterface.h36
-rw-r--r--src/gui/src/DataDownloader.cpp58
-rw-r--r--src/gui/src/DataDownloader.h53
-rw-r--r--src/gui/src/DisplayIsValid.cpp14
-rw-r--r--src/gui/src/DisplayIsValid.h5
-rw-r--r--src/gui/src/ElevateMode.h41
-rw-r--r--src/gui/src/Fingerprint.cpp149
-rw-r--r--src/gui/src/Fingerprint.h46
-rw-r--r--src/gui/src/Hotkey.cpp75
-rw-r--r--src/gui/src/Hotkey.h66
-rw-r--r--src/gui/src/HotkeyDialog.cpp41
-rw-r--r--src/gui/src/HotkeyDialog.h49
-rw-r--r--src/gui/src/HotkeyDialogBase.ui81
-rw-r--r--src/gui/src/Ipc.cpp26
-rw-r--r--src/gui/src/Ipc.h42
-rw-r--r--src/gui/src/IpcClient.cpp146
-rw-r--r--src/gui/src/IpcClient.h63
-rw-r--r--src/gui/src/IpcReader.cpp140
-rw-r--r--src/gui/src/IpcReader.h49
-rw-r--r--src/gui/src/KeySequence.cpp237
-rw-r--r--src/gui/src/KeySequence.h58
-rw-r--r--src/gui/src/KeySequenceWidget.cpp145
-rw-r--r--src/gui/src/KeySequenceWidget.h81
-rw-r--r--src/gui/src/LogWindow.cpp72
-rw-r--r--src/gui/src/LogWindow.h46
-rw-r--r--src/gui/src/LogWindowBase.ui86
-rw-r--r--src/gui/src/MainWindow.cpp1279
-rw-r--r--src/gui/src/MainWindow.h215
-rw-r--r--src/gui/src/MainWindowBase.ui470
-rw-r--r--src/gui/src/NewScreenWidget.cpp48
-rw-r--r--src/gui/src/NewScreenWidget.h40
-rw-r--r--src/gui/src/ProcessorArch.h28
-rw-r--r--src/gui/src/QBarrierApplication.cpp72
-rw-r--r--src/gui/src/QBarrierApplication.h47
-rw-r--r--src/gui/src/QUtility.cpp115
-rw-r--r--src/gui/src/QUtility.h31
-rw-r--r--src/gui/src/Screen.cpp147
-rw-r--r--src/gui/src/Screen.h105
-rw-r--r--src/gui/src/ScreenSettingsDialog.cpp137
-rw-r--r--src/gui/src/ScreenSettingsDialog.h53
-rw-r--r--src/gui/src/ScreenSettingsDialogBase.ui543
-rw-r--r--src/gui/src/ScreenSetupModel.cpp143
-rw-r--r--src/gui/src/ScreenSetupModel.h71
-rw-r--r--src/gui/src/ScreenSetupView.cpp161
-rw-r--r--src/gui/src/ScreenSetupView.h57
-rw-r--r--src/gui/src/ServerConfig.cpp403
-rw-r--r--src/gui/src/ServerConfig.h141
-rw-r--r--src/gui/src/ServerConfigDialog.cpp219
-rw-r--r--src/gui/src/ServerConfigDialog.h66
-rw-r--r--src/gui/src/ServerConfigDialogBase.ui781
-rw-r--r--src/gui/src/SettingsDialog.cpp140
-rw-r--r--src/gui/src/SettingsDialog.h54
-rw-r--r--src/gui/src/SettingsDialogBase.ui368
-rw-r--r--src/gui/src/SetupWizard.cpp149
-rw-r--r--src/gui/src/SetupWizard.h53
-rw-r--r--src/gui/src/SetupWizardBase.ui245
-rw-r--r--src/gui/src/ShutdownCh.h22
-rw-r--r--src/gui/src/SslCertificate.cpp178
-rw-r--r--src/gui/src/SslCertificate.h47
-rw-r--r--src/gui/src/TrashScreenWidget.cpp43
-rw-r--r--src/gui/src/TrashScreenWidget.h42
-rw-r--r--src/gui/src/VersionChecker.cpp111
-rw-r--r--src/gui/src/VersionChecker.h43
-rw-r--r--src/gui/src/WebClient.cpp83
-rw-r--r--src/gui/src/WebClient.h49
-rw-r--r--src/gui/src/ZeroconfBrowser.cpp92
-rw-r--r--src/gui/src/ZeroconfBrowser.h57
-rw-r--r--src/gui/src/ZeroconfRecord.h50
-rw-r--r--src/gui/src/ZeroconfRegister.cpp94
-rw-r--r--src/gui/src/ZeroconfRegister.h61
-rw-r--r--src/gui/src/ZeroconfServer.cpp33
-rw-r--r--src/gui/src/ZeroconfServer.h37
-rw-r--r--src/gui/src/ZeroconfService.cpp188
-rw-r--r--src/gui/src/ZeroconfService.h57
-rw-r--r--src/gui/src/ZeroconfThread.cpp38
-rw-r--r--src/gui/src/ZeroconfThread.h38
-rw-r--r--src/gui/src/main.cpp180
215 files changed, 80242 insertions, 0 deletions
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
new file mode 100644
index 0000000..5d24891
--- /dev/null
+++ b/src/gui/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required (VERSION 3.4)
+
+find_package (Qt5 COMPONENTS Core Widgets Network)
+set (CMAKE_AUTOMOC ON)
+set (CMAKE_AUTORCC ON)
+set (CMAKE_AUTOUIC ON)
+set (CMAKE_INCLUDE_CURRENT_DIR ON)
+
+file (GLOB GUI_SOURCE_FILES src/*.cpp src/*.h)
+file (GLOB GUI_UI_FILES src/*.ui)
+
+if (WIN32)
+ set (GUI_RC_FILES res/win/Barrier.rc)
+endif()
+
+add_executable (barrier WIN32
+ ${GUI_SOURCE_FILES}
+ ${GUI_UI_FILES}
+ ${GUI_RC_FILES}
+ res/Barrier.qrc
+)
+
+include_directories (./src)
+
+qt5_use_modules (barrier Core Widgets Network)
+target_compile_definitions (barrier PRIVATE -DBARRIER_VERSION_STAGE="${BARRIER_VERSION_STAGE}")
+target_compile_definitions (barrier PRIVATE -DBARRIER_REVISION="${BARRIER_REVISION}")
+
+if (WIN32)
+ include_directories ($ENV{BONJOUR_SDK_HOME}/Include)
+ find_library (DNSSD_LIB dnssd.lib
+ HINTS ENV BONJOUR_SDK_HOME
+ PATH_SUFFIXES "Lib/x64")
+ set_target_properties (barrier PROPERTIES LINK_FLAGS "/NODEFAULTLIB:LIBCMT")
+ target_link_libraries (barrier ${DNSSD_LIB})
+elseif (APPLE)
+ find_library(APPSERVICES_LIB ApplicationServices)
+ target_link_libraries(barrier ${APPSERVICES_LIB})
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR
+ ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
+ target_link_libraries (barrier dns_sd)
+endif()
+
+if (HAVE_X11)
+ target_link_libraries (barrier X11)
+endif()
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ install (TARGETS barrier DESTINATION ${BARRIER_BUNDLE_BINARY_DIR})
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ install (TARGETS barrier DESTINATION bin)
+endif()
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
new file mode 100644
index 0000000..14a2407
--- /dev/null
+++ b/src/gui/gui.pro
@@ -0,0 +1,162 @@
+QT += widgets \
+ network
+TEMPLATE = app
+TARGET = barrier
+DEFINES += VERSION_STAGE=\\\"$$QMAKE_VERSION_STAGE\\\"
+DEFINES += VERSION_REVISION=\\\"$$QMAKE_VERSION_REVISION\\\"
+DEFINES -= UNICODE
+DEFINES += _MBCS
+DEPENDPATH += . \
+ res
+INCLUDEPATH += . \
+ src \
+ ../lib/shared/
+FORMS += src/MainWindowBase.ui \
+ src/AboutDialogBase.ui \
+ src/ServerConfigDialogBase.ui \
+ src/ScreenSettingsDialogBase.ui \
+ src/ActionDialogBase.ui \
+ src/HotkeyDialogBase.ui \
+ src/SettingsDialogBase.ui \
+ src/SetupWizardBase.ui \
+ src/AddClientDialogBase.ui \
+ src/ActivationDialog.ui \
+ src/CancelActivationDialog.ui \
+ src/FailedLoginDialog.ui
+SOURCES += src/main.cpp \
+ src/MainWindow.cpp \
+ src/AboutDialog.cpp \
+ src/ServerConfig.cpp \
+ src/ServerConfigDialog.cpp \
+ src/ScreenSetupView.cpp \
+ src/Screen.cpp \
+ src/ScreenSetupModel.cpp \
+ src/NewScreenWidget.cpp \
+ src/TrashScreenWidget.cpp \
+ src/ScreenSettingsDialog.cpp \
+ src/BaseConfig.cpp \
+ src/HotkeyDialog.cpp \
+ src/ActionDialog.cpp \
+ src/Hotkey.cpp \
+ src/Action.cpp \
+ src/KeySequence.cpp \
+ src/KeySequenceWidget.cpp \
+ src/SettingsDialog.cpp \
+ src/AppConfig.cpp \
+ src/QBarrierApplication.cpp \
+ src/VersionChecker.cpp \
+ src/SetupWizard.cpp \
+ src/IpcClient.cpp \
+ src/IpcReader.cpp \
+ src/Ipc.cpp \
+ src/BarrierLocale.cpp \
+ src/QUtility.cpp \
+ src/ZeroconfServer.cpp \
+ src/ZeroconfThread.cpp \
+ src/ZeroconfRegister.cpp \
+ src/ZeroconfBrowser.cpp \
+ src/ZeroconfService.cpp \
+ src/DataDownloader.cpp \
+ src/AddClientDialog.cpp \
+ src/CommandProcess.cpp \
+ src/CoreInterface.cpp \
+ src/Fingerprint.cpp \
+ src/SslCertificate.cpp \
+ src/WebClient.cpp \
+ src/ActivationNotifier.cpp \
+ src/ActivationDialog.cpp \
+ src/CancelActivationDialog.cpp \
+ src/FailedLoginDialog.cpp \
+ ../lib/shared/SerialKey.cpp \
+ src/LicenseManager.cpp
+HEADERS += src/MainWindow.h \
+ src/AboutDialog.h \
+ src/ServerConfig.h \
+ src/ServerConfigDialog.h \
+ src/ScreenSetupView.h \
+ src/Screen.h \
+ src/ScreenSetupModel.h \
+ src/NewScreenWidget.h \
+ src/TrashScreenWidget.h \
+ src/ScreenSettingsDialog.h \
+ src/BaseConfig.h \
+ src/HotkeyDialog.h \
+ src/ActionDialog.h \
+ src/Hotkey.h \
+ src/Action.h \
+ src/KeySequence.h \
+ src/KeySequenceWidget.h \
+ src/SettingsDialog.h \
+ src/AppConfig.h \
+ src/QBarrierApplication.h \
+ src/VersionChecker.h \
+ src/SetupWizard.h \
+ src/IpcClient.h \
+ src/IpcReader.h \
+ src/Ipc.h \
+ src/BarrierLocale.h \
+ src/QUtility.h \
+ src/ZeroconfServer.h \
+ src/ZeroconfThread.h \
+ src/ZeroconfRegister.h \
+ src/ZeroconfRecord.h \
+ src/ZeroconfBrowser.h \
+ src/ZeroconfService.h \
+ src/DataDownloader.h \
+ src/AddClientDialog.h \
+ src/CommandProcess.h \
+ src/ProcessorArch.h \
+ src/CoreInterface.h \
+ src/Fingerprint.h \
+ src/SslCertificate.h \
+ src/WebClient.h \
+ src/ActivationNotifier.h \
+ src/ElevateMode.h \
+ src/ActivationDialog.h \
+ src/CancelActivationDialog.h \
+ src/FailedLoginDialog.h \
+ ../lib/shared/EditionType.h \
+ ../lib/shared/SerialKey.h \
+ src/LicenseManager.h
+RESOURCES += res/Barrier.qrc
+RC_FILE = res/win/Barrier.rc
+macx {
+ QMAKE_INFO_PLIST = res/mac/Info.plist
+ TARGET = Barrier
+ QBARRIER_ICON.files = res/mac/Barrier.icns
+ QBARRIER_ICON.path = Contents/Resources
+ QMAKE_BUNDLE_DATA += QBARRIER_ICON
+ LIBS += $$MACX_LIBS
+}
+unix:!macx:LIBS += -ldns_sd
+debug {
+ OBJECTS_DIR = tmp/debug
+ MOC_DIR = tmp/debug
+ RCC_DIR = tmp/debug
+}
+release {
+ OBJECTS_DIR = tmp/release
+ MOC_DIR = tmp/release
+ RCC_DIR = tmp/release
+}
+win32-msvc2015 {
+ LIBS += -lAdvapi32
+ QMAKE_LFLAGS += /NODEFAULTLIB:LIBCMT
+}
+win32-msvc* {
+ contains(QMAKE_HOST.arch, x86):{
+ QMAKE_LFLAGS *= /MACHINE:X86
+ LIBS += -L"$$(BONJOUR_SDK_HOME)/Lib/Win32" -ldnssd
+ }
+
+ contains(QMAKE_HOST.arch, x86_64):{
+ QMAKE_LFLAGS *= /MACHINE:X64
+ LIBS += -L"$$(BONJOUR_SDK_HOME)/Lib/x64" -ldnssd
+ }
+}
+win32 {
+ Debug:DESTDIR = ../../bin/Debug
+ Release:DESTDIR = ../../bin/Release
+ INCLUDEPATH += "$$(BONJOUR_SDK_HOME)/Include"
+}
+else:DESTDIR = ../../bin
diff --git a/src/gui/gui.ts b/src/gui/gui.ts
new file mode 100644
index 0000000..861a496
--- /dev/null
+++ b/src/gui/gui.ts
@@ -0,0 +1,1407 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="en" sourcelanguage="en">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2018 Debauchee Open Source Group&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2018 Debauchee Open Source Group&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server&apos;s screen. If the two don&apos;t match exactly, then it&apos;s probably not the server you&apos;re expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer&apos;s mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer&apos;s mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin &apos;%1&apos; to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading &apos;%1&apos; plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don&apos;t take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it&apos;s Free and Open Source. Just move your mouse off the edge of one computer&apos;s screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer&apos;s mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer&apos;s screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer&apos;s mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server&apos;s mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/gui/lang.cmd b/src/gui/lang.cmd
new file mode 100644
index 0000000..4418593
--- /dev/null
+++ b/src/gui/lang.cmd
@@ -0,0 +1 @@
+lupdate -noobsolete gui.pro -ts gui.ts \ No newline at end of file
diff --git a/src/gui/langbuild.cmd b/src/gui/langbuild.cmd
new file mode 100644
index 0000000..b86d202
--- /dev/null
+++ b/src/gui/langbuild.cmd
@@ -0,0 +1,2 @@
+cd res/lang
+lrelease *.ts \ No newline at end of file
diff --git a/src/gui/res/Barrier.qrc b/src/gui/res/Barrier.qrc
new file mode 100644
index 0000000..39da79e
--- /dev/null
+++ b/src/gui/res/Barrier.qrc
@@ -0,0 +1,58 @@
+<RCC>
+ <qresource prefix="/res">
+ <file>icons/16x16/barrier-connected.png</file>
+ <file>icons/16x16/barrier-disconnected.png</file>
+ <file>icons/64x64/video-display.png</file>
+ <file>icons/64x64/user-trash.png</file>
+ <file>icons/16x16/warning.png</file>
+ <file>icons/256x256/barrier.ico</file>
+ <file>image/about.png</file>
+ <file>lang/gui_ar.qm</file>
+ <file>lang/gui_bg-BG.qm</file>
+ <file>lang/gui_ca-AD.qm</file>
+ <file>lang/gui_cs-CZ.qm</file>
+ <file>lang/gui_cy.qm</file>
+ <file>lang/gui_da.qm</file>
+ <file>lang/gui_de.qm</file>
+ <file>lang/gui_es.qm</file>
+ <file>lang/gui_fi.qm</file>
+ <file>lang/gui_fr.qm</file>
+ <file>lang/gui_grk.qm</file>
+ <file>lang/gui_he.qm</file>
+ <file>lang/gui_hr-HR.qm</file>
+ <file>lang/gui_hu-HU.qm</file>
+ <file>lang/gui_id.qm</file>
+ <file>lang/gui_it.qm</file>
+ <file>lang/gui_ja-JP.qm</file>
+ <file>lang/gui_ko.qm</file>
+ <file>lang/gui_lt.qm</file>
+ <file>lang/gui_lv.qm</file>
+ <file>lang/gui_nl-NL.qm</file>
+ <file>lang/gui_no.qm</file>
+ <file>lang/gui_pes-IR.qm</file>
+ <file>lang/gui_pl-PL.qm</file>
+ <file>lang/gui_pt-BR.qm</file>
+ <file>lang/gui_pt-PT.qm</file>
+ <file>lang/gui_ro.qm</file>
+ <file>lang/gui_ru.qm</file>
+ <file>lang/gui_si.qm</file>
+ <file>lang/gui_sk-SK.qm</file>
+ <file>lang/gui_sl-SI.qm</file>
+ <file>lang/gui_sq-AL.qm</file>
+ <file>lang/gui_sr.qm</file>
+ <file>lang/gui_sv.qm</file>
+ <file>lang/gui_th-TH.qm</file>
+ <file>lang/gui_tr-TR.qm</file>
+ <file>lang/gui_uk.qm</file>
+ <file>lang/gui_ur.qm</file>
+ <file>lang/gui_mr.qm</file>
+ <file>lang/gui_vi.qm</file>
+ <file>lang/gui_zh-CN.qm</file>
+ <file>lang/gui_zh-TW.qm</file>
+ <file>lang/Languages.xml</file>
+ <file>icons/16x16/money.png</file>
+ <file>image/spinning-wheel.gif</file>
+ <file>icons/16x16/padlock.png</file>
+ <file>icons/16x16/barrier-transfering.png</file>
+ </qresource>
+</RCC>
diff --git a/src/gui/res/icons/16x16/barrier-connected.png b/src/gui/res/icons/16x16/barrier-connected.png
new file mode 100644
index 0000000..33ea4b4
--- /dev/null
+++ b/src/gui/res/icons/16x16/barrier-connected.png
Binary files differ
diff --git a/src/gui/res/icons/16x16/barrier-connected.xcf b/src/gui/res/icons/16x16/barrier-connected.xcf
new file mode 100644
index 0000000..669663a
--- /dev/null
+++ b/src/gui/res/icons/16x16/barrier-connected.xcf
Binary files differ
diff --git a/src/gui/res/icons/16x16/barrier-disconnected.png b/src/gui/res/icons/16x16/barrier-disconnected.png
new file mode 100644
index 0000000..6ad76e4
--- /dev/null
+++ b/src/gui/res/icons/16x16/barrier-disconnected.png
Binary files differ
diff --git a/src/gui/res/icons/16x16/barrier-disconnected.xcf b/src/gui/res/icons/16x16/barrier-disconnected.xcf
new file mode 100644
index 0000000..9b9c716
--- /dev/null
+++ b/src/gui/res/icons/16x16/barrier-disconnected.xcf
Binary files differ
diff --git a/src/gui/res/icons/16x16/barrier-transfering.png b/src/gui/res/icons/16x16/barrier-transfering.png
new file mode 100644
index 0000000..9ebcdfc
--- /dev/null
+++ b/src/gui/res/icons/16x16/barrier-transfering.png
Binary files differ
diff --git a/src/gui/res/icons/16x16/barrier-transfering.xcf b/src/gui/res/icons/16x16/barrier-transfering.xcf
new file mode 100644
index 0000000..6e5bd2b
--- /dev/null
+++ b/src/gui/res/icons/16x16/barrier-transfering.xcf
Binary files differ
diff --git a/src/gui/res/icons/16x16/money.png b/src/gui/res/icons/16x16/money.png
new file mode 100644
index 0000000..42c52d0
--- /dev/null
+++ b/src/gui/res/icons/16x16/money.png
Binary files differ
diff --git a/src/gui/res/icons/16x16/padlock.png b/src/gui/res/icons/16x16/padlock.png
new file mode 100644
index 0000000..e313e97
--- /dev/null
+++ b/src/gui/res/icons/16x16/padlock.png
Binary files differ
diff --git a/src/gui/res/icons/16x16/warning.png b/src/gui/res/icons/16x16/warning.png
new file mode 100644
index 0000000..193e377
--- /dev/null
+++ b/src/gui/res/icons/16x16/warning.png
Binary files differ
diff --git a/src/gui/res/icons/256x256/barrier.ico b/src/gui/res/icons/256x256/barrier.ico
new file mode 100644
index 0000000..6e90545
--- /dev/null
+++ b/src/gui/res/icons/256x256/barrier.ico
Binary files differ
diff --git a/src/gui/res/icons/64x64/user-trash.png b/src/gui/res/icons/64x64/user-trash.png
new file mode 100644
index 0000000..05eb80e
--- /dev/null
+++ b/src/gui/res/icons/64x64/user-trash.png
Binary files differ
diff --git a/src/gui/res/icons/64x64/video-display.png b/src/gui/res/icons/64x64/video-display.png
new file mode 100644
index 0000000..8a47d90
--- /dev/null
+++ b/src/gui/res/icons/64x64/video-display.png
Binary files differ
diff --git a/src/gui/res/image/about.png b/src/gui/res/image/about.png
new file mode 100644
index 0000000..54d5f07
--- /dev/null
+++ b/src/gui/res/image/about.png
Binary files differ
diff --git a/src/gui/res/image/spinning-wheel.gif b/src/gui/res/image/spinning-wheel.gif
new file mode 100644
index 0000000..220f020
--- /dev/null
+++ b/src/gui/res/image/spinning-wheel.gif
Binary files differ
diff --git a/src/gui/res/lang/Languages.xml b/src/gui/res/lang/Languages.xml
new file mode 100644
index 0000000..5948f9c
--- /dev/null
+++ b/src/gui/res/lang/Languages.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<languages>
+ <language ietfCode="en" name="English" />
+ <language ietfCode="ca-AD" name="Català (Andorra)" />
+ <language ietfCode="cs-CZ" name="Čeština" />
+ <language ietfCode="cy" name="Cymraeg" />
+ <language ietfCode="da" name="Dansk" />
+ <language ietfCode="de" name="Deutsch" />
+ <language ietfCode="es" name="Español" />
+ <language ietfCode="fr" name="Français" />
+ <language ietfCode="hr-HR" name="Hrvatski" />
+ <language ietfCode="id" name="Indonesia" />
+ <language ietfCode="it" name="Italiano" />
+ <language ietfCode="lv" name="Latvijas" />
+ <language ietfCode="lt" name="Lietuvos" />
+ <language ietfCode="hu-HU" name="Magyar" />
+ <language ietfCode="nl-NL" name="Nederlands" />
+ <language ietfCode="no" name="Norsk" />
+ <language ietfCode="pl-PL" name="Polski" />
+ <language ietfCode="pt-PT" name="Português" />
+ <language ietfCode="pt-BR" name="Português (Brasil)" />
+ <language ietfCode="ro" name="Română" />
+ <language ietfCode="sq-AL" name="Shqiptar" />
+ <language ietfCode="sl-SI" name="SlovenÅ¡Äina" />
+ <language ietfCode="sk-SK" name="SlovenÄina" />
+ <language ietfCode="fi" name="Suomi" />
+ <language ietfCode="sv" name="Svenska" />
+ <language ietfCode="vi" name="Tiếng Việt" />
+ <language ietfCode="tr-TR" name="Türkçe" />
+ <language ietfCode="bg-BG" name="българÑки" />
+ <language ietfCode="ru" name="РуÑÑкий" />
+ <language ietfCode="sr" name="ÑрпÑки" />
+ <language ietfCode="uk" name="УкраїнÑький" />
+ <language ietfCode="grk" name="Ελληνικά" />
+ <language ietfCode="he" name="עברית" />
+ <language ietfCode="ar" name="العربية" />
+ <language ietfCode="pes-IR" name="ÙØ§Ø±Ø³ÛŒ" />
+ <language ietfCode="ur" name="اردو" />
+ <language ietfCode="mr" name="मराठी" />
+ <language ietfCode="si" name="Sඉන්හල" />
+ <language ietfCode="th-TH" name="ภาษาไทย" />
+ <language ietfCode="zh-CN" name="中文 (简体)" />
+ <language ietfCode="zh-TW" name="中文 (ç¹é«”)" />
+ <language ietfCode="ja-JP" name="日本語" />
+ <language ietfCode="ko" name="한국어" />
+</languages>
diff --git a/src/gui/res/lang/gui_af-ZA.qm b/src/gui/res/lang/gui_af-ZA.qm
new file mode 100644
index 0000000..be651ee
--- /dev/null
+++ b/src/gui/res/lang/gui_af-ZA.qm
@@ -0,0 +1 @@
+<¸dÊÍ!¿`¡½Ý \ No newline at end of file
diff --git a/src/gui/res/lang/gui_af-ZA.ts b/src/gui/res/lang/gui_af-ZA.ts
new file mode 100644
index 0000000..446c9a4
--- /dev/null
+++ b/src/gui/res/lang/gui_af-ZA.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="af-ZA" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_ar.qm b/src/gui/res/lang/gui_ar.qm
new file mode 100644
index 0000000..dfc4afa
--- /dev/null
+++ b/src/gui/res/lang/gui_ar.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_ar.ts b/src/gui/res/lang/gui_ar.ts
new file mode 100644
index 0000000..c934dba
--- /dev/null
+++ b/src/gui/res/lang/gui_ar.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="ar" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">عن سينيرجي</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">غير معروÙ</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">الإصدار</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">حسنًا</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">تكوين العمل</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">اختار الامر للعمل</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">اضغط على Ù…ÙØªØ§Ø­ التشغيل السريع</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Ø§Ù„Ø§ÙØ±Ø§Ø¬ عنه</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">اضغط ÙˆØ§ÙØ±Ø¬ عن Ù…ÙØªØ§Ø­ التشغيل السريع</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">Ùقط على هذه الشاشات</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">تغيير الشاشة</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">تغيير الاتجاه</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">شمال</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">يمين</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">اعلى</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">اسÙÙ„</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">غلق المؤشر لشاشة</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">تبديل</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">تشغيل</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">تعطيل</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">هذا الامر تم عمله عندما</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">Ù…ÙØªØ§Ø­ التشغيل السريع Ø¶ÙØºØ·</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">Ù…ÙØªØ§Ø­ التشغيل السريع Ø§ÙØ±Ø¬ عنه</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Ù…ÙØªØ§Ø­ التشغيل السريع</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">ادخل ØµÙØ§Øª Ù…ÙØªØ§Ø­ التشغيل السريع:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">ملÙ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">تعديل</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">شباك</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">مساعدة</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">البرناج لا يستطيع ان يبدأ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">عامل التآزر لم يتم العثور عليه</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">لا وجود للتنÙيذ لان عامل التآزر غير موجود.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Ø§Ù„Ù…Ø¶ÙŠÙ ÙØ§Ø±Øº</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished"> الرجاء ملء اسم المضي٠لعاملالتآزر للاتصال.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">لا يمكن كتابة مل٠التكوين</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">غير معروÙ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished"> سينيرجي</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished"> سينيرجي</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">اسم الشاشة:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">خدمة ال IP :</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">ØªØµÙØ­</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">تكوين تبادلي</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">جاهز</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">سجل</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">عنوان ال IP</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">خروج</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">خروج</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">تشغلي</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">توقÙ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Ø¥Ø®ÙØ§Ø¡</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">اظهر</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">إعدادات</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">تعديل الإعدادات</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">تشغيلي</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">غير مسمى</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">شمال</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">اليمين الاعلى</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">يسار</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">يمين</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">تصليحات</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">تعديل</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">إعدادات</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">تسجيل الدخول</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">خطأ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">اللغة:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">تحذير</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">ملاحظة</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">معلومات</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">تصحيح</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">تصحيح1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">تصحيح2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">الرجاء اختيار خيار.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">اهلًا وسهلًا</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">شكرا لتنزيل السنغري</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">التآزر يتيح لك بسهولة مشاركة الماوس ولوحة Ø§Ù„Ù…ÙØ§ØªÙŠØ­ بين العديد من أجهزة الكمبيوتر ÙÙŠ مكتبك، وانها لالحرة ÙˆØ§Ù„Ù…ÙØªÙˆØ­Ø© المصدر. مجرد تحرك الماوس من على Ø­Ø§ÙØ© شاشة جهاز كمبيوتر واحد على آخر. يمكنك حتى أن حصة كل من الألواح الكتابة الخاصة بك. كل ما تحتاجه هو اتصال بالشبكة. التآزر هو عبر منصة (يعمل على ويندوز، وماكنتوش ولينكس).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">غير معروÙ</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished"> سينيرجي</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_bg-BG.qm b/src/gui/res/lang/gui_bg-BG.qm
new file mode 100644
index 0000000..a93d7af
--- /dev/null
+++ b/src/gui/res/lang/gui_bg-BG.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_bg-BG.ts b/src/gui/res/lang/gui_bg-BG.ts
new file mode 100644
index 0000000..fc6988e
--- /dev/null
+++ b/src/gui/res/lang/gui_bg-BG.ts
@@ -0,0 +1,1410 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="bg-BG" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">За Синерджи</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">ÐеизвеÑтно</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">ВерÑиÑ:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">ОК</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Конфигуриране на дейÑтвие</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Изберете дейÑтвие, което да бъде изпълнено.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">ÐатиÑни горещ клавиш.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">ОтпуÑни горещиÑÑ‚ клавиш.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">ÐатиÑни и пуÑни горещ клавиш</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">Ñамо на тези екрани</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Превключи към екран</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Превключи в поÑока</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">лÑво</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">дÑÑно</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">горе</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">долу</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Заключи курÑора на екрана</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">превключи</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">вкл.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">изкл.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">ДейÑтвието Ñе извършва когато</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">горещиÑÑ‚ клавиш бъде натиÑнат </translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">горещиÑÑ‚ клавиш бъде отпуÑнат.</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Въведи ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð·Ð° горещ клавиш</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Старт</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Файл</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">РедакциÑ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Прозорец</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Помощ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Вашата верÑÐ¸Ñ Ð½Ð° Синерджи не е актуална. ВерÑÐ¸Ñ &lt;b&gt;%1&lt;/b&gt; е доÑтъпна за &lt;a href=&quot;%2&quot;&gt;ÑвалÑне&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Програмата не може да бъде Ñтартирана</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ дали имате необходимите Ð¿Ñ€Ð°Ð²Ð¾Ð¼Ð¾Ñ‰Ð¸Ñ Ð·Ð° Ñтартиране на тази програма.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Синерджи клиентът не е намерен.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Името на приемника е празно</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">ÐœÐ¾Ð»Ñ Ð¿Ð¾Ð¿ÑŠÐ»Ð½ÐµÑ‚Ðµ име на приемника за да може Ñинерджи клиентът да Ñе Ñвърже.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">КонфигурационниÑÑ‚ файл не може да бъде запиÑан</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">ВременниÑÑ‚ конфигурационен файл, необходим за Ñтартиране на Ñинерджи, не може да бъде запиÑан.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Името на ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» е невалидно</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Ðе Ñте запиÑали валидно име на ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» за Ñинерджи Ñървъра. ИÑкате ли да направите това Ñега?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Синерджи Ñървърът не е намерен</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Синерджи беше изключена поради грешка</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Синерджи беше неочаквано изключена Ñ Ð¸Ð·Ñ…Ð¾Ð´ÐµÐ½ код %1.&lt;br&gt;&lt;br&gt; ÐœÐ¾Ð»Ñ Ð·Ð° детайли вижте региÑÑ‚Ñ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð».</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Стоп</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Синерджи Ñе Ñтартира.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Синерджи е активна.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Синерджи не е активна.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">ÐеизвеÑтно</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Синерджи</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Браузвайте за да намерите ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» на програмата</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">ЗапиÑване на конфигурациÑта като...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">ЗапиÑването Ñе провали</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">КонфигурационниÑÑ‚ файл не можа да бъде запиÑан.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Синерджи</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Екранно име:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP на Ñървъра:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Старт</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Използвай налична конфигурациÑ:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Конфигурационен файл:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Браузвай...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Интерактивно конфигуриране:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Конфигурирай Ñървър...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Готов</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">РегиÑтър</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Приложи</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP адреÑи:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">ОтноÑно Синерджи</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Прекрати</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Прекрати</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Стартирай</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Стоп</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Стоп</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Покажи ÑтатуÑ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Скрий</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Скрий</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Покажи</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Покажи</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">ЗапиÑване на конфигурациÑта като...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">ЗапиÑване на интерактивно генерираната ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð²ÑŠÐ² файл.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">ÐаÑтройки</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Редактирай наÑтройките</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Стартирай помощник</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Безименен</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">ÐаÑтройка на Синерджи</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Конфигурации на Синерджи (*.sgc);; Ð’Ñички файлове (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Конфигурации на Синерджи (*.conf);; Ð’Ñички файлове (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">СиÑтемниÑÑ‚ контейнер (трей) не е доÑтъпен, затварÑне.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Екранното име липÑва</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Екранното име не може да е празно. ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име или откажете диалога.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Екранното име Ñе припокрива Ñ Ð¿Ñевдонима</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Екранното име не може да е Ñъщото като пÑевдонима. ÐœÐ¾Ð»Ñ Ð¿Ñ€ÐµÐ¼Ð°Ñ…Ð½ÐµÑ‚Ðµ пÑевдонима или Ñменете екранното име.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">ÐаÑтройки на екрана</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Екранно име:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">ПÑевдоним</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Добави</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Премахни</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">РегиÑтър:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift (РегиÑтър)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Супер</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">ÐÑма</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Мъртъв ъгъл</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Горе-лÑво</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Горе-дÑÑно</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Долу-дÑÑно</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Долу-дÑÑно</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Размер на ъглите:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Fixes</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Коригирай клавиш CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Коригирай клавиш NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Коригирай клавиш SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Коригирай XTest за Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Екран &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;За Ñ€ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° наÑтройките шракнете двукратно&lt;br&gt;За да премахнете екран го привлачете към кошчето</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð½Ð° Ñървъра</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Екрани и препратки</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">За да премахнете екран, го изтеглете към кошчето.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Привлечете към мрежата този бутон, за да добавите нов екран.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Привлачете нови екрани към мрежата или размеÑтете ÑъщеÑтвуващите.
+За да изтриете екран, го привлачете към кошчето.
+Щракнете двукратно върху екрана, за да редактирате наÑтройките му.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Горещ клавиш</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Горещ клавиш</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Ðово</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">РедакциÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Премахни</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">ДейÑтвиÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Ðово</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">РедакциÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Премахване</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Разширени наÑтройки на Ñървъра</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Превключи</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Превключи Ñлед изчакване</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Превключи при двойно щракане вътре</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Опции</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">ПроверÑвай клиентите на вÑеки</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Използвай отноÑителни Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° мишката</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Синхронизирай ÑкрийнÑейвърите</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Мъртъв ъгъл</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Горе лÑво</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Горе дÑÑно</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Долу лÑво</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Долу дÑÑно</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Размер на ъгъла:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">ЗапиÑване на региÑтъра във файл...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Вдигане на предимÑтвото на Синерджи</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Сигурни ли Ñте че иÑкате да повишите предимÑтвото на Синерджи? Това ще позволи на Синерджи да общува Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑи Ñ Ð¿Ð¾-голÑмо предимÑтво и UAC диалоговите прозорци, но може да предизвика проблеми Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑи Ñ Ð¿Ð¾-ниÑък проритет. Вдигнете предимÑтвото Ñамо ако е наиÑтина необходимо.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">ÐаÑтройки</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Екранно име:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Порт:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">ИнтерфейÑ:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">РегиÑтриране</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Ðиво на региÑтриране:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">РегиÑтър към файл:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Преглеждане...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Грешка</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Език:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Други</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Предупреждение</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Бележка</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">ИнформациÑ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Дебъгване</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Дебъгване1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">ÐаÑтройка на Синерджи</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ опциÑ.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ Ð²Ð°ÑˆÐ¸Ñ Ð¸Ð¼ÐµÐ¹Ð» Ð°Ð´Ñ€ÐµÑ Ð¸ парола.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">ÐаÑтройка на Синерджи</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Добре дошли</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Благодарим, че инÑталирахте Синерджи!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Синерджи ти помага леÑно да Ñподелиш мишката и клавиатурата Ñи Ñ Ð¼Ð½Ð¾Ð¶ÐµÑтво компютри на работното ти мÑÑто и е безплатен и Ñ Ð¾Ñ‚Ð²Ð¾Ñ€ÐµÐ½ код. ПроÑто меÑтиш мишка от ръба на екрана на един от компютрите на друг. Можеш да ползваш дори клипборд функциÑта на вÑички компютри Ñвързани чрез Синерджи. Ð’Ñичко, от което имаш нужда е мрежова връзка между компютрите, които ползваш. Синерджи е мултиплатформена (работи на Windows, Mac OS X и Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Сървър или клиент?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">ÐеизвеÑтно</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">ВпиÑването е неуÑпешно, невалидно име или парола.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">ВпиÑването е неуÑпешно, възникна грешка.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">ВпиÑването е неуÑпешно, възникна грешка.
+Сървърът отговарÑ:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Синерджи</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_ca-AD.qm b/src/gui/res/lang/gui_ca-AD.qm
new file mode 100644
index 0000000..45e8f7f
--- /dev/null
+++ b/src/gui/res/lang/gui_ca-AD.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_ca-AD.ts b/src/gui/res/lang/gui_ca-AD.ts
new file mode 100644
index 0000000..3ccc7eb
--- /dev/null
+++ b/src/gui/res/lang/gui_ca-AD.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="ca-AD" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">En quant a Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconegut </translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versió:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Configurar Acció</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Tria l'acció a realitzar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Prem una tecla d'accés ràpid</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Allibera una tecla d'accés ràpid</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Prem i allibera una tecla d'accés ràpid</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">només en aquestes pantalles</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Canviar de pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Canviar de direcció</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">esquerra</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">dreta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">amunt</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">avall</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Bloquejar el cursor a la pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">intercanviar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">on</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">off</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Aquesta acció es realitza quan</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">s'ha premut la tecla d'accés ràpid</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">s'ha allibrerat la tecla d'accés ràpid</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Accés Ràpid</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Entrar l'especificació per la tecla d'accés ràpid</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Engegar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Arxiu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Finestra</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Ajuda</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;La teva versió de Barrier està desactualitzada. La nova versió &lt;b&gt;%1&lt;/b&gt; està ara disponible per &lt;a href=&quot;%2&quot;&gt;descarregar&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">El programa no ha pogut iniciar-se</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">L'executable &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;no ha pogut ser iniciat correctament, tot i que aquest existeix. Si us plau revisa si tens permisos suficients per executar aquest programa.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">No s'ha trobat cap client de Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">L'executable del client de Barrier no existeix.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">El nom de Host està buit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Si us plau completa el camp nom de host per al client de Barrier per connectar-t'hi.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">No es pot escriure el fitxer de configuració</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">No s'ha pogut escriure al fitxer de configuració temporal requerit per iniciar Barrier </translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Nom del fitxer de configuració invàlid</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">No has omplert un arxiu de configuració vàlid per al servidor de Barrier. Vols veure ara el fitxer de configuració?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">No s'ha trobat el Servidor de Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">L'executable del servidor de Barrier no existeix.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier ha finalitzat degut a un error</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier ha finalitzat inesperadament amb el codi d'error %1.&lt;br&gt;&lt;br&gt;Si us plau mira el log de sortida per més detalls.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">A&amp;turar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier està engegant-se.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier està executant-se.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier no s'està executant.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconegut </translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Mostrar el fitxer de configuració de Sygergy</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Desar configuració com...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Error al guardar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">No es pot guardar la configuració a l'arxiu.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nom pantalla:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP del Servidor:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Engegar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Utilitzar la configuració actual:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Fitxer &amp;configuració:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Mostrar...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configurar interactivament:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Configurar Servidor...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Llest</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Log</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Aplicar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Adreces IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">En &amp;quant a Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Sortir</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Sortir</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Executa</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">A&amp;turar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Aturar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">&amp;Mostrar Estat</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">A&amp;maga</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Amaga</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Mo&amp;stra</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Mostra</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">&amp;Guardar configuració com...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Guardar la configuració del servidor generada interactivament a un fitxer.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Configuració</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Editar configuració</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Executar Assistent</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Sense nom</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Configuracions Barrier (*.sgc);;Tots els arxius (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Configuracions Barrier (*.conf);;Tots els arxius (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">La safata del sistema no està disponible, sortint.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">El nom de pantalla és buit</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">El nom de pantalla no pot estar buit. Si us plau introdueix un nom o cancel·la el diàleg.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Nom de pantalla coincideix amb l'àlies</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">El nom de pantalla no pot ser el mateix que un àlies. Si us plau treu l'àlies o bé canvia el nom de la pantalla.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Configuració Pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">&amp;Nom pantalla:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">À&amp;lies</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">A&amp;fegir</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Elimina&amp;r</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Modificar claus</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Cap</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Cantonades mortes</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Amunt-esquerra</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Amunt-dreta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Avall-esquerra</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Avall-dreta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Mida cantonada:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Fixes</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Arreglar tecla CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Arreglar tecla NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Arreglar tecla SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Arreglar XTest per Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Pantalla: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Doble clic per editar configuració &lt;br&gt;Arrossega la pantalla a la paperera per eliminar-la</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Configuració Servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Pantalles i enllaços</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Arrossega una pantalla de la graella a la paperera per eliminar-la.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configura la disposició de configuració del teu servidor barrier.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Arrossega aquest botó a la graella per afegir una nova pantalla.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Arrossega noves pantalles a la graella o mou les actuals al voltant.
+Arrossega una pantalla a la paperera per eliminar-la.
+Fes doble clic a una pantalla per editar la seva configuració.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Accés ràpid</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Accés ràpid</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Nou</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Elimina&amp;r</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">A&amp;ccions</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">No&amp;u</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">E&amp;ditar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Eli&amp;minar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Configuracions avançades del servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Can&amp;viar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Canvia després d'esperar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Canvia a doble &amp;toc a</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Opcions</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Comprova clients cada</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Utilitza moviments relatius ratolí</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Sincronitza protectors de pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">No prenguis la finestra en primer pla en Windows servers</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Cantonades mortes</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Amunt-&amp;esquerra</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Amunt-&amp;dreta</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Avall-&amp;esquerra</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Avall-&amp;dreta</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Mida ca&amp;ntonada:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Guardar fitxer log a...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Elevar Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Estas segur que vols elevar Barrier?
+Això permet a Barrier interactuar amb processos elevats i el diàleg del UAC, però pot causar problemes amb processos no elevats. Eleva Barrier només si realment ho necessites.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Configuració</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Nom pantalla:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Port:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;Interfície:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Logging</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Nivell &amp;logging:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Log a fitxer:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Mostrar...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Error</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Idioma:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Miscel·lània</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Advertència</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Nota</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Siusplau tria una opció.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Si us plau introdueix la teva adreça d'email i contrasenya.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Benvingut</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Gràcies per instal·lar Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier et permet compartir fàcilment el ratolí i teclat entre diversos ordinadors al teu escriptori, i és lliure i de codi obert. Només cal moure el punter del ratolí per la vora de la pantalla d'un ordinador a un altre. Fins i tot pots compartir el portapapers. Únicament el que necessites és una connexió de xarxa. Barrier és multiplataforma (funciona en Windows, Mac OS X i Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Servidor o Client?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconegut </translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Ha fallat l'inici de sessió, email o contrasenya incorrectes.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Error inici de sessió, hi ha hagut un error.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Error inici de sessió, hi ha hagut un error.
+Resposta del servidor:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_cs-CZ.qm b/src/gui/res/lang/gui_cs-CZ.qm
new file mode 100644
index 0000000..01a1b70
--- /dev/null
+++ b/src/gui/res/lang/gui_cs-CZ.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_cs-CZ.ts b/src/gui/res/lang/gui_cs-CZ.ts
new file mode 100644
index 0000000..fd639fa
--- /dev/null
+++ b/src/gui/res/lang/gui_cs-CZ.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="cs-CZ" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">O Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Neznámá</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Verze:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Nastavit akci</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Vyberte akci k provedení</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Stisknout klávesovou zkratku</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Pustit (uvolnit) klávesy zkratky</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Stisknout a pustit (uvolnit) klávesy zkratky</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">pouze na těchto obrazovkách</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Přepnout na obrazovku</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Přepnout směrem</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">vlevo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">vpravo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">nahoru</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">dolů</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Uzamknout kurzor k obrazovce</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">přepnout</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">zap</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">vyp</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Tato akce se spustí když</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">je stisknuta klávesová zkratka</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">jsou puštěny (uvolněny) klávesy zkratky</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Klávesová zkratka</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Vytvořte klávesovou zkratku:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Spustit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Soubor</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Upra&amp;vit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">O&amp;kno</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Nápověda</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Používáte starou verzi aplikace Barrier. Ke &lt;a href=&quot;%2&quot;&gt;stažení&lt;/a&gt; je nyní již verze &lt;b&gt;%1&lt;/b&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Program nelze spustit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Program &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt; existuje, ale nelze jej spustit. Ověřte, zda máte potřebná (souborová) oprávnění ke spuštění tohoto programu.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrier klient nebyl nalezen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Spustitelný soubor s programem Barrier klienta neexistuje.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">NevyplnÄ›n cílový poÄítaÄ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Vyplňte adresu cílového poÄítaÄe ke kterému se Barrier klient má pÅ™ipojit.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Do souboru s nastaveními nelze zapisovat</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Do doÄasného souboru s nastaveními, potÅ™ebného pro spuÅ¡tÄ›ní Barrier, nelze zapisovat.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Neplatný název souboru s nastaveními.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Nevyplnili jste platný soubor s nastaveními pro barrier server. Chcete nyní urÄit umístÄ›ní souboru s nastaveními?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier server nebyl nalezen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Spustitelný soubor s programem barrier serveru neexistuje.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier bylo ukonÄeno s chybou</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">NeoÄekávané ukonÄení Barrier. BÄ›h skonÄil s kódem %1. &lt;br&gt;&lt;br&gt;Podrobnosti viz protokol.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Za&amp;stavit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier se spouští.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier je spuštěné.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier není spuštěné.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Neznámá</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Otevřít existující soubor s nastaveními pro barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Uložit nastavení jako…</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Uložení se nezdařilo</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Nelze uložit nastavení do souboru.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Název obrazovky:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP &amp;adresa &amp;serveru:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Spustit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Použít existující nastavení:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Sou&amp;bor s nastaveními:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Pr&amp;ocházet…</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Interaktivní nastavení:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">N&amp;astavit Server…</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Připraven</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Protokol</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Použít</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP adresy:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;O Barrier…</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;UkonÄit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">UkonÄit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Spustit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Zas&amp;tavit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Zastavit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Zobrazit stav</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Skrýt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Skrýt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Zobrazit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Zobrazit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Uložit nastavení j&amp;ako…</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Uložit interaktivně vytvořené nastavení serveru do souboru.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Nastavení</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Upravit nastavení</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Spustit průvodce</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Nepojmenováno</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Instalovat Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Nastavení Barrier (*.sgc);;Všechny soubory (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Nastavení Barrier (*.conf);;Všechny soubory (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Oznamovací oblast systémové liÅ¡ty je nedostupná, aplikace proto bude ukonÄena.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Název obrazovky nebyl vyplněn</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Název obrazovky nemůže zůstat prázdný. BuÄ jej vyplňte, nebo dialog zruÅ¡te.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Název obrazovky koliduje s jejím alternativním názvem</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Název obrazovky a zástupný název být stejné. BuÄ zástupný název odeberte nebo změňte název obrazovky.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Natavení obrazovky</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Název &amp;plochy</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">A&amp;lternativní názvy</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Přid&amp;at</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Odst&amp;ranit</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Modifikátory (klávesy)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Žádné</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Nevyužité rohy</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Vlevo nahoře</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Vpravo nahoře</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Vlevo dole</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Vpravo dole</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Velikost ro&amp;hu:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Opravy</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Oprava chování klávesy Caps Lock</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Oprava chování klávesy Num Lock</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Oprava chování klávesy Scroll Lock</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Oprava chování rozšíření grafického serveru X – XTest a Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Obrazovka: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dvojklikem upravíte nastavení&lt;br&gt;Přetažením do koše obrazovku smažete</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Nastavení serveru</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Obrazovky a propojení</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Obrazovku odstraníte jejím přetažením z mřížky do koše.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Nastavte rozložení svého nastavení serveru barrier.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Novou obrazovku vytvoříte pÅ™etažením tohoto tlaÄítka do mřížky.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Přetáhněte nové obrazovky do mřížky nebo přesuňte stávající.
+Přetáhnutím obrazovky do koše ji smažete.
+Nastavení obrazovky upravíte dvojklikem na ni.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Klávesové zkratky</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Klávesové zkratky</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Nová</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Upra&amp;vit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Odst&amp;ranit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Ak&amp;ce</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">No&amp;vá</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Upravi&amp;t</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Ode&amp;brat</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">PokroÄilé nastavení serveru</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Přepnout</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Přepnout po prodlevě</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Přepnout po dvojitém doteku během</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">M&amp;ožnosti</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Kontrolovat klienty každých</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Používat relativní pohyby myši</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">S&amp;ynchronizovat Å¡etÅ™iÄe obrazovky</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Na serverech s Windows se nepřepínat do popředí</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Nevyužité rohy</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Levý horní</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Pravý &amp;horní</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Spodní levý</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Spodní pravý</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Velikost rohu:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Uložit soubor s protokolem do…</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Zvýšit stupeň oprávnění pro Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Opravdu chcete zvýšit stupeň oprávnění pro Barrier?
+Sice to Barrier umožní pracovat s procesy, které mají také takový stupeň a s dialogem řízení uživatelských úÄtů (UAC), může ale působit problémy aplikacím s běžnými oprávnÄ›ními. Tuto možnost byste tedy mÄ›li využít pouze pokud ji opravdu potÅ™ebujete.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Nastavení</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Název ob&amp;razovky:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">P&amp;ort:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Rozhraní:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Protokolování</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Stupeň podrobnosti protoko&amp;lování:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Protokolovat do souboru:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Procházet…</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Chyba</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">&amp;Jazyk:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Různé</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Varování</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Poznámka</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informace</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Ladění</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Ladění1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Ladění2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Instalovat Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Zvolte možnost.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Zadejte svou e-mailovou adresu a heslo.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Instalovat Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Vítejte</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Těší nás, že jste si nainstalovali Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier vám umožní snadno sdílet myÅ¡ a klávesnici napÅ™Ã­Ä vícero poÄítaÄi na vaÅ¡em stole. Aplikace je svobodná a s otevÅ™eným zdrojovým kódem. StaÄí jen pÅ™esunout kurzor myÅ¡i mimo okraj obrazovky jednoho poÄítaÄe na obrazovku dalšího. Mezi poÄítaÄi můžete dokonce sdílet obsahy jejich schránek. Jediné, co je potÅ™eba, je propojení sítí. Barrier je multiplatformní (funguje na Windows, Mac OS X a GNU/Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server nebo klient?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Neznámá</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">PÅ™ihlášení se nezdaÅ™ilo, e-mailová adresa Äi heslo nebylo zadáno správnÄ›.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Přihlášení se nezdařilo, došlo k chybě.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Přihlášení se nezdařilo, došlo k chybě.
+OdpovÄ›Ä ze serveru:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_cy.qm b/src/gui/res/lang/gui_cy.qm
new file mode 100644
index 0000000..a62d578
--- /dev/null
+++ b/src/gui/res/lang/gui_cy.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_cy.ts b/src/gui/res/lang/gui_cy.ts
new file mode 100644
index 0000000..15b59ea
--- /dev/null
+++ b/src/gui/res/lang/gui_cy.ts
@@ -0,0 +1,1407 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="cy" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Ynghylch Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Fersiwn:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Iawn</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Cyflunio Gweithred</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Dewiswch y weithred i wneud</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Gwasgwch fysell brys</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Ryddhewch y bysell frys</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Gwasgwch a ryddhewch y bysell frys</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">ar y sgriniau yma yn unig</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Newid i sgrîn</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Newid cyfeiriad</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">chwith</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">dde</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">fyny</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">lawr</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Cloi cyrchydd i'r sgrîn</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">toglo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">ymlaen</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">i ffwrdd</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Mae'r weithred hwn yn cael ei wneud gan</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">pan wasgir y bysell frys</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">pan ryddheir y bysell frys</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Bysell frys</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Rhowch y manyleb ar gyfer y bysell frws hwn:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Dechrau</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Ffeil</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Golygu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Ffenest</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Cymorth</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Methwyd cychwyn y rhaglen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Nid oedd yn bosib cychwyn y rhaglen &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;yn llwyddiannus er ei fod yn bodoli. Gwnewch yn siwr fod ganddoch yr hawliau cywir i redeg y rhaglen yma.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Methwyd dod o hyd i gleient Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Nid yw'r ffeil weithredadwy ar gyfer y cleient barrier yn bodoli.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Mae'r enw gwesteiwr yn bodoli</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Rhowch enw gwesteiwr i'r cleient barrier i gysylltu iddo.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Methu sgrifennu i'r ffeil gyfluniad</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Nid yw'n bosib sgrifennu i'r ffeil gyfluniad dros dro sydd angen i ddechrau barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Mae enw'r ffeil gyfluniad yn annilys</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Nid ydych wedi llenwi mewn ffeil gyfluniad dilys ar gyfer y gweinydd barrier. Hoffech chi bori am ffeil gyfluniad nawr?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Methwyd dod o hyd i weinydd Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Nid yw'r ffeil weithredadwy ar gyfer y gweinydd barrier yn bodoli.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Fe wnaeth Barrier derfynnu gyda gwall</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Fe wnaeth Barrier derfynnu yn annisgwyl gyda cod gorffen %1.&lt;br&gt;&lt;br&gt;Gwelwch allbwn log am fanylion.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Stopio</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Mae Barrier yn dechrau.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Mae Barrier yn rhedeg.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Nid yw Barrier yn rhedeg.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Profi am ffeil gyfluniad barriers</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Cadw'r cyfluniad fel...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Methwyd cadw</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Methwyd cadw'r ffeil gyfluniad</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Dechrau</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Defnyddio'r cyfluniad presennol:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Ffeil Cyfluniad:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Pori...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Cyflunio'n rhyngweithiol:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Cyflunio Gweinydd...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Yn barod</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Log</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Ynghylch Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Gadael</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Gadael</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Rhedeg</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Stopio</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stopop</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Dangos Statws</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Cadw'r cyfluniad fel...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Cadw'r cyfluniad gweinydd a gynhyrchwyd i ffeil:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Gosodiadau</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Golygu gosodiadau</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Rhedeg Dewin</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Heb ei enwi</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Gosod fyny Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Cyfluniadau Barrier (*.sgc);;Pob ffeil (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Cyfluniadau Barrier (*.conf);;Pob ffeil (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Nid yw'r gilfach system ar gael, yn gadael.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Mae enw'r sgrîn yn wag</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Gosodiadau Sgrîn</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Enw sgrîn</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Ffugenwau</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Ychwanegu</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Dileu</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Bysellau newid</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Dim</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Top-chwith</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Top-dde</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Gwaelod-chwith</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Gwaelod-dde</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Maint Cornel:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Cyfluniad Gweinydd</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Sgriniau a dolenni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Llusgwch sgrîn o'r grid neu i'r bin sbwriel i'w ddileu.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Cyfluniwch gynllun eich cyfluniad gweinydd barrier</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Llusgwch y botwm i'r grid i ychwanegu sgrîn newydd.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Llusgwch sgrîn newydd i'r grid neu symudwch y rhai presennol o gwmpas.
+Llusgwch sgrîn i'r bin sbwriel i'w ddileu.
+Rhowch glic dwbl ar sgrîn i newid ei osodiadau.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Bysellau brys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Bysellau brys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Newydd</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Golygu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Dileu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Gweithredoedd</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Newydd</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Golygu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Dileu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Gosodiadau uwch y gweinydd</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Newid</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Newid ar ôl aros</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Newid ar ôl tap dwl yn</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Dewisiadau</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Gwirio cleientiaid bob</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Defnyddio symudiadau llygoden perthynol</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Gosodiadau</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Pori...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Gwall</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Rhybudd</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Nodyn</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Gwybodaeth</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Dadfygio</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Gosod fyny Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Dewiswch.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Gosod fyny Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Mae Barrier yn gadael i chi rhannu eich llygoden a'r bysellfwrdd yn hawdd rhwng nifer o gyfrifiaduron ar eich desg, ac mae'n rhad ac am ddim a Ffynhonnell Agored. Dyna gyd sydd angen yw symud eich llygoden dros ymyl sgrîn un cyfrifiadur i un arall. Gallwch hyd yn oed rannu eich holl clipfyrddau. Y cyfan sydd ei angen yw cysylltiad rhwydwaith. Mae Barrier yn draws-lwyfan (mae'n gweithio ar Windows, Mac OS X a Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Gweinydd neu Gleient?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_da.qm b/src/gui/res/lang/gui_da.qm
new file mode 100644
index 0000000..280988f
--- /dev/null
+++ b/src/gui/res/lang/gui_da.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_da.ts b/src/gui/res/lang/gui_da.ts
new file mode 100644
index 0000000..d910ccb
--- /dev/null
+++ b/src/gui/res/lang/gui_da.ts
@@ -0,0 +1,1410 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="da" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Om Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Ukendt</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Version:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Konfigurer handling</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Vælg handling til udførelse</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Tast en hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Slip en hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Tryk og slip en hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">kun på disse skærmbilleder</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Skift til skærm</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Skift i retning</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">højre</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">op</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">ned</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Lås markør til skærm</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">skift mellem</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">til</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">fra</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Denne handling udføres, når</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">hotkey'en er trykket</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">hotkey'en er sluppet</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Indtast beskrivelse af hotkey'en:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Fil</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Rediger</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Vindue</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Hjælp</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Din version af Barrier er forældet. Version &lt;b&gt;%1&lt;/b&gt; er nu tilgængelig som &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Programmet kan ikke startes</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Programfilen&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;kunne ikke startes, eller den eksisterer ikke. Kontroller, at du har rettigheder til at køre programmet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrier-klienten blev ikke fundet</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Programfilen til Barrier-klienten eksisterer ikke.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Værtsnavnet er ikke angivet</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Indtast det værtsnavn, som Barrier-klienten skal forbinde sig til.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Kan ikke skrive til konfigurationsfilen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Den midlertidige konfigurationsfil, som skal bruges for at starte Barrier, kan ikke oprettes.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Ugyldigt navn for konfigurationsfilen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Du har ikke oprettet en gyldig konfigurationsfil til Barrier-serveren. Vil du søge efter konfigurationsfilen?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier-serveren blev ikke fundet</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Programfilen til Barrier-klienten eksisterer ikke.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier afsluttede med en fejl</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier afsluttede uventet med fejlkoden %1.&lt;br&gt;&lt;br&gt;Se venligst logfilen for detaljer.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Stop</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier starter.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier kører allerede.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier er ikke startet</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Ukendt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Søg efter en Barrier-konfigurationsfil</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Gem konfiguration som...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Gem fejlede</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Kunne ikke gemme konfigurationen i filen.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Skærmnavn:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">&amp;Server-IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Brug eksisterende konfiguration:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Konfigurations fil:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Gennemse...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Interaktiv konfiguration:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Konfigurer Server...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Klar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Log</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Anvend</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP-adresser:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;Om Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Afslut</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Afslut</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Kør</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">S&amp;top</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">V&amp;is Status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Skjul</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Skjul</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Vis</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Vis</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Gem konfiguration &amp;som...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Gem den interaktivt genererede server-konfiguration i en fil.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Indstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Rediger indstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Kør guide</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Unavngivet</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Opsæt Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier-konfigurationer (*.sgc);;Alle filer (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier-konfigurationer (*.conf);;Alle filer (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Systembakken er ikke tilgængelig. Afslutter.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Skærmnavn er ikke angivet</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Skærm navnet kan ikke være tomt. Enten skriv et navn eller annuller denne dialog.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Skærm navnet matcher alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Skærm navnet kan ikke være det samme som et alias. Enten fjern alias'et eller skift skærm navnet.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Skærmindstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Skærm&amp;navn:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">A&amp;liaser</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Tilføj</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Fjern</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Ændre-taster</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Skift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Skift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Ingen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Døde hjørner</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Øverst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Øverst til højre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Nederst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Nederst til højre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Hjørnest&amp;ørrelse:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Rettelser</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Fix CAPS LOCK-tasten</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Fix NUM LOCK-tasten</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Fix SCROLL LOCK-tasten</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Fix Xtest for Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Skærm: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dobbeltklik for at redigere indstillinger&lt;br&gt;Træk skærm til Papirkurven for at slette den</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Server-konfiguration</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Skærme og links</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Slet en skærm ved at trække den fra gitteret over i Papirkurven.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Indstil Barrier-serverens konfigurations-layout.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Træk denne knap over på gitteret for at tilføje en ny skærm.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Træk nye skærme over på gitteret eller ryk eksisterende skærme rundt
+slet en skærm ved at trække den over i Papirkurven.
+Dobbeltklik på skærmen for at redigere indstillingerne.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Hotkeys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Hotkeys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Rediger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Fjern</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">H&amp;andlinger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">N&amp;y</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">R&amp;ediger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">S&amp;let</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Avancerede server-indstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;Skift</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Skift &amp;efter at have ventet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Aktivér dobbelt &amp;tap inden for</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Indstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">&amp;Check klienter hver</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Brug &amp;relative museflyt</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">S&amp;ynkroniser screen-savere</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Tag ikke &amp;forgrundsvinduer på Windows-servere</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Døde hjørner</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Øv&amp;erst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Øverst til hø&amp;jre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">&amp;Nederst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Nederst til hø&amp;jre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Hjø&amp;rnestørrelse:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Gem logfil i:</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Ophøj Barrier's rettigheder</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Er du sikker på, at du vil ophøje Barrier's rettigheder? Det giver Barrier rettigheder til at interagere med andre ophøjede processer og UAC-dialogboksen, men det kan give problemer med processer, som ikke har samme rettigheder. Ophøj kun Barrier, hvis du virkelig har brug for det.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Indstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Sk&amp;rmnavn:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">P&amp;ort:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;Brugerflade</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Logning</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">&amp;Lognings niveau:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Log til fil:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Gennemse...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Fejl</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Sprog:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Diverse</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Advarsel</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Bemærk</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Information</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Fejlfind</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Fejlfind1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Fejlfind2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Opsæt Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Vælg en mulighed.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Vær sød at skrive din email adresse og adgangskode.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Opsæt Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Velkommen</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Tak fordi du installerede Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier lader dig nemt dele din mus og tastatur mellem flere computere på dit skrivebord, og det er gratis og Open Source. Flyt blot din mus forbi skærmkanten på en computers skærm til en anden. Du kan endda dele din udklipsholder også. Det eneste du behøver er en netværksforbindelse. Desuden fungere Barrier på flere platforme (Virker på Windows, Mac OS X samt Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server eller Klient?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Ukendt</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Fejl i login, forkert email eller adgangskode.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Fejl i login, en fejl opstod.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Fejl i login, en fejl opstod.
+Server svar:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_de.qm b/src/gui/res/lang/gui_de.qm
new file mode 100644
index 0000000..095a698
--- /dev/null
+++ b/src/gui/res/lang/gui_de.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_de.ts b/src/gui/res/lang/gui_de.ts
new file mode 100644
index 0000000..4b826f5
--- /dev/null
+++ b/src/gui/res/lang/gui_de.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="de" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Über Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Unbekannt</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Version:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Aktion konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Wähle eine Aktion, die ausgeführt werden soll</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Hotkey drücken</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Hotkey loslassen</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Hotkey drücken und loslassen</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">Nur auf diesen Bildschirmen</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Zu Anzeige Wechseln</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">In Richtung wechseln</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">links</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">rechts</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">hoch</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">runter</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Cursor auf Anzeige beschränken</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">umschalten</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">ein</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">aus</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Diese Aktion wird ausgeführt, wenn</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">wenn der Hotkey gedrückt wird</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">wenn der Hotkey losgelassen wird</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Gib die Definition für den Hotkey ein:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Datei</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Fenster</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Hilfe</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Ihre Barrier Version ist veraltet. Version &lt;b&gt;%1&lt;/b&gt; ist jetzt zum &lt;a href=&quot;%2&quot;&gt;Download&lt;/a&gt; verfügbar.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Das Programm konnte nicht gestartet werden</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Die Anwendung&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt; konnte nicht gestartet werden, obwohl sie vorhanden ist. Bitte überprüfen sie, ob sie die benötigten Berechtigungen zur Ausführung der Anwendung haben,</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Der Barrier Client wurde nicht gefunden</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Die ausführbare Datei für den Barrier Client existiert nicht.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Der Hostname is leer</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Bitte tragen Sie einen Hostnamen ein, zu dem sich der Barrier-Client verbinden soll.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Konfigurationsdatei konnte nicht geschrieben werden</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Die temporäre Konfigurationsdatei konnte nicht geschrieben werden. Sie wird jedoch für den Start von Barrier benötigt.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Der Dateiname der Konfigurationsdatei ist ungültig.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Sie haben keine gültige Konfigurationsdatei angegeben. Wollen sie jetzt nach dieser Datei suchen?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Der Barrier Server wurde nicht gefunden.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Die ausführbare Datei für den Barrier Server existiert nicht.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier wurde mit einem Fehler beendet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier wurde unerwartet mit Abbruchcode %1 beendet. &lt;br&gt;&lt;br&gt; Weitere Informationen können dem Log entnommen werden.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Stopp</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier wird gestartet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier läuft.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier wird nicht ausgeführt.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Unbekannt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Nach einer Konfigurationsdatei für Barrier suchen.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Konfiguration speichern unter ...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Speichern fehlgeschlagen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Konfiguration konnte nicht in Datei gespeichert werden</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Anzeigename:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">Server IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Verwende bestehende Konfiguration:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Konfigurationsdatei:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Durchsuchen...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Interaktiv konfigurieren:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Server &amp;konfigurieren...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Fertig</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Log</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Anwenden</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP Adressen:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;Über Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Beenden</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Beenden</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">S&amp;topp</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">S&amp;tatus anzeigen</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Verstecken</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Verstecken</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Zeigen</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Anzeigen</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Configuration speichern &amp;unter ...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Speichere die interaktiv erstellte Konfiguration in eine Datei.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Einstellungen</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Einstellungen bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Assistent ausführen</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Unbenannt</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier einrichten</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier Konfigurationen (*.sgc);;Alle Dateien (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier Konfigurationen (*.conf);;Alle Dateien (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Infobereich ist nicht verfügbar. Beende Programm.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Der Anzeigename ist leer</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Der Bildschirmname darf nicht leer sein. Bitte trage einen Namen ein oder schließe das Fenster.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Der Anzeigename passt zum Alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Der Anzeigename kann nicht derselbe sein wie der Alias. Bitte entfernen sie den Alias oder ändern sie den Anzeigenamen.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Anzeigeeinstellungen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Anzeige&amp;name:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">A&amp;liase</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Hinzufügen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Entfernen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Zusatztasten</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Um&amp;schalt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Umschalt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Strg</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Windows</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Keine</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Strg:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&quot;&amp;Tote&quot; Ecken</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Oben-links</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Oben-rechts</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Unten-links</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Unten-rechts</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">&amp;Größe:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Korrekturen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Korrektur für Feststelltaste</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Korrektur für Num Lock</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Korrektur für Scroll Lock</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Korrektur für XTest mit Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Anzeige: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Klicken Sie doppelt um die Einstellungen zu ändern&lt;br&gt;Ziehen Sie die Anzeige in den Papierkorb um sie zu entfernen</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Server Konfiguration</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Anzeigen und Verbindungen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Ziehen Sie eine Anzeige vom Raster in den Papierkorb um sie zu entfernen.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Konfigurieren Sie die Anordnung Ihrer Barrier Server Konfiguration.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Ziehen diese Symbol auf das Raster um eine neue Anzeige hinzuzufügen.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Ziehen Sie neue Anzeigen auf das Raster oder verschieben sie existierende.
+Ziehen Sie eine Anzeige in den Papierkorb um sie zu entfernen.
+Klicken sie doppelt auf eine Anzeige um die Einstellungen zu bearbeiten.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Hotkeys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Hotkeys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Neu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Bearbeiten</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Entfernen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">&amp;Befehle</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Ne&amp;u</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Än&amp;dern</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">&amp;Entfernen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Erwiterte Servereinstellungen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Wech&amp;sel</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Wechsel n&amp;ach Wartezeit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Wechsel nach doppel&amp;ter Randberührung innerhalb von</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Optionen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Prüfe auf Meldungen vom &amp;Client aller</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Ve&amp;rwende relative Mausbewegungen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Bildschirmschoner s&amp;ynchronisieren</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Auf Windows Servern &amp;Fenster im Vordergrund nicht aktivieren</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&quot;&amp;Tote&quot; Ecken</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">O&amp;ben-links</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Oben-rec&amp;hts</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">&amp;Unten-links</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Unten-rec&amp;hts</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">&amp;Größe:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Speicherort des Logfiles</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Barrier Befördern</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Sind Sie sicher das Sie Barrier Erweiterte Benutzerrechte einräumen wollen?
+Das erlaubt Barrier mit Prozessen die höhere Rechte haben und dem UAC-Dialog zu interagieren, kann aber bei normalen Prozessen Probleme verursachen. Erweiterte Rechte an Barrier bitte nur vergeben wenn es unbedingt nötig ist.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Einstellungen</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">&amp;Anzeigename:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">P&amp;ort:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Schn&amp;ittstelle</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Protokollierung</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">&amp;Umfang:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">In Datei:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Durchsuchen...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Fehler</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Sprache:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">&amp;Sonstiges</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Warnung</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Hinweis</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier einrichten</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Bitte wählen Sie eine option aus.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Bitte geben Sie Ihre E-Mail Adresse und Ihr Passwort ein.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier einrichten</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Willkommen</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Danke, dass du Barrier installiert hast!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Mit Barrier können Sie einfach Ihre Tastatur und Maus an mehreren Computern auf Ihrem Schreibtisch nutzen, und es ist Frei und Open Source. Bewegen Sie einfach ihre Maus über den Rand des Bildschirms eines Computers auf den Bildschirm eines anderen. Sie können sogar den Inhalt ihrer Zwischenablage an alle Computer verteilen. Alles was Sie brauchen ist ein Netzwerk-Anschluss. Barrier funktioniert auf Windows, Mac OS X und Linux.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server oder Client?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Unbekannt</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Login fehlgeschlagen, falsche E-Mail Adresse oder Passwort.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Login fehlgeschlagen, ein Fehler ist aufgetreten.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Login fehlgeschlagen, ein Fehler ist aufgetreten.
+Serverantwort:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_es.qm b/src/gui/res/lang/gui_es.qm
new file mode 100644
index 0000000..f9057ee
--- /dev/null
+++ b/src/gui/res/lang/gui_es.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_es.ts b/src/gui/res/lang/gui_es.ts
new file mode 100644
index 0000000..98ee4f9
--- /dev/null
+++ b/src/gui/res/lang/gui_es.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="es" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Acerca de Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconocido</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versión</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Configurar Acción</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Elige la acción a realizar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Presiona una tecla de acceso directo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Al levantar ó liberar el accedo directo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Al pulsar y liberar el acceso directo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">sólo en estas pantallas</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Cambiar a pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Cambiar dirección</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">izquierda</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">derecha</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">arriba</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">abajo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Bloquear cursor en pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">alternar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">activado</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">desactivado</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Esta acción se realiza cuando</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">la tecla de acceso directo es presionada</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">la tecla de acceso directo es soltada</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Tecla de acceso directo</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Ingresa la especificación para la tecla de acceso directo:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Iniciar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Archivo</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Edición</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Ventana</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Ayuda</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Tú versión de Barrier es antigua. La versión &lt;b&gt;%1&lt;/b&gt; esta ahora disponible para &lt;a href=&quot;%2&quot;&gt;descargar&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">El programa no se puede iniciar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">El ejecutable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;no se pudo iniciar exitósamente, aunque sí existe. Por favor, revisa si tienes permisos suficientes para ejecutar este programa.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">No se encontró el cliente Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">El ejecutable para el cliente Barrier no existe.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Nombre de host está vacío</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Por favor, ingresa un nombre de host al que se conectará el cliente Barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">No se puede escribir el archivo de configuración</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">El archivo de configuración temporal necesario para iniciar Barrier no puede ser escrito.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Nombre de archivo de configuración inválido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">No has ingresado un archivo de configuración válido para el servidor Barrier. Queres buscar el archivo de configuración ahora?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">No se encontró el servidor Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">El ejecutable para el servidor Barrier no existe.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier terminó con un error</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Synergu terminó inesperadamente con el código de salida %1.&lt;br&gt;&lt;br&gt;Por favor, vea el registro de eventos para detalles.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Detener</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier está iniciando.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier se está ejecutando.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier no se está ejecutando.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconocido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Buscar un archivo de configuración Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Guardar configuración como...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">No se guardó</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">No se pudo guardar la configuración en el archivo.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nombre en pantalla:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP del servidor:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Iniciar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Usar configuración existente:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Configuración:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Buscar...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configurar interactivamente:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Configurar Servidor...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Listo</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Registro</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Aplicar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Direcciones IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;Acerca de Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Salir</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Salir</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Ejecutar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">De&amp;tener</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Detener</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">&amp;Mostrar Estado</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Ocultar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Ocultar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Mostrar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Mostrar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Gu&amp;ardar configuración como...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Guardar la configuración generada interactivamente en un archivo.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Opciones</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Editar Opciones</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Iniciar instalación</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Sin nombre</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Configuraciones Barrier (*.sgc);;Todos los archivos (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Configuraciones Barrier (*.conf);;Todos los archivos (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">El área de notificación no esta disponible, cerrando.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Nombre de pantalla está vacío</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">El nombre de la pantalla no puede estar vació. Por favor introduce un nombre o cancela este dialogo.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">El nombre de la pantalla coincide con el alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">El nombre de la pantalla no puede ser el mismo que un alias. Elimina el alias o cambia el nombre de pantalla por favor.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Opciones de Pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">&amp;Nombre de Pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">&amp;Alias</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Agregar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Elimina&amp;r</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Modificar teclas</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Mayúsculas</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Ninguno</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Esquinas &amp;Desactivadas</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Arriba-Izquierda</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Arriba-Derecha</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Abajo-Izquierda</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Abajo-Derecha</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">&amp;Tamaño de Esquina:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Reparaciones</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Reparar tecla CAPS LOCK (BLOQ MAYÚS)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Reparar tecla NUM LOCK (BLOQ NUM)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Reparar tecla SCROLL LOCK (BLOQ DESPL)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Reparar XTest para Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Pantalla: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Haz doble clic para editar opciones&lt;br&gt;Arrastra la pantalla a la papelera para borrarla</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Configuración de Servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Pantallas y enlaces</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Mueve una pantalla de la rejilla a la papelera para eliminarla.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Elige el diseño de rejilla para la configuración de tu servidor Barrier.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Mueve este botón a la rejilla para añadir una nueva pantalla.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Arrastra nuevas pantallas hacia la rejilla o mueve las ya existentes.
+Mueve una pantalla a la papelera para eliminarla.
+Haz doble click sobre una pantalla para modificar sus ajustes.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Teclas de acceso directo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Teclas de acceso directo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Nueva</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Edición</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Elimina&amp;r</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">&amp;Acciones</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">&amp;Nueva</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">&amp;Borrar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Opciones Avanzadas de Servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;Cambiar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Cambiar &amp;al esperar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Cambiar doble toque en</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Opciones</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Revisar &amp;clientes cada</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">&amp;Sar movimientos &amp;relativos del mouse</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">&amp;Sincronizar protectores de pantalla</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">No tomar la ventana de primer plano en servidores Windows</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Esquinas &amp;Desactivadas</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">&amp;Arriba-Izquierda</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">&amp;Arriba-Derec&amp;ha</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">&amp;Bajo-Izquierda</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">&amp;Abajo-Derecha</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">&amp;Tamaño de Esqui&amp;na:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Guardar archivo de registro en...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Elevar a Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">¿Estás seguro que quieres elevar a Barrier?
+Esto permitirá que puedas interactuar con procesos elevados y el cuadro de diálogo de UAC, pero puede causar problemas con procesos no elevados. Eleva a Barrier solo si realmente lo necesitas.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Opciones</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">&amp;Nomb&amp;re de Pantalla:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Puert&amp;o:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;Interfaz:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Registro</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Nive&amp;l de Registro:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Guardar registro en archivo:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Examinar...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Error</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Idioma:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Misceláneos
+</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Advertencia</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Nota</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Información</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Depuración</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Depuración1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Depuración2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Elige una opción, por favor.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Introduce tu dirección de correo electrónico y contraseña</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Bienvenido</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">¡Gracias por instalar Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier te permite compartir fácilmente tu mouse y teclado entre múltiples computadores en tu escritorio, es Gratis y es de Código Abierto. Solo mueve tu mouse hacia los bordes de la pantalla de uno de los computadores hacia otro. Puedes incluso compartir tu portapapeles. Todo lo que necesitas es una conexión de red. Barrier es multiplataforma (funciona en Windows, Mac OS X y Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">¿Servidor o Cliente?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconocido</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Inicio de sesión incorrecto, email o contraseña inválidos.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Inicio de sesión fallido, se encontró un error.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Ha fallado el inicio de la sesión, ocurrió un error.
+Respuesta del servidor: %1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_et-EE.qm b/src/gui/res/lang/gui_et-EE.qm
new file mode 100644
index 0000000..2ff9398
--- /dev/null
+++ b/src/gui/res/lang/gui_et-EE.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_et-EE.ts b/src/gui/res/lang/gui_et-EE.ts
new file mode 100644
index 0000000..1e1ea57
--- /dev/null
+++ b/src/gui/res/lang/gui_et-EE.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="et-EE" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Barrier'st</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Tundmatu</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versioon:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Tegevuse seadistamine</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Vali teostatav tegevus</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Vajuta kiirklahv alla</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Vabasta kiirklahv</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Vajuta kiirklahv alla ja vabasta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">ainult nendel ekraanidel</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Lülitu ekraanile</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Lülitu suunas</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">vasak</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">parem</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">üles</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">alla</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Lukusta kursor ekraanile</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">lülita</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">sisse</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">välja</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">See toiming teostatakse kui</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">Kiirklahv on alla vajutatud</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">kiirklahv on vabastatud</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Kiirklahv</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Sisesta kiirklahvi täpsemad seaded:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Käivita</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Fail</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Redigeeri</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Aken</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Abi</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Teie Barrier versioon on aegunud . Uus versioon &lt;b&gt;%1&lt;/b&gt; on saadaval &lt;a href=&quot;%2&quot;&gt;allalaadimiseks&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Rakendus ei suuda käivituda</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Käivitusfaili&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;ei õnnestunud käivitada, või pole seda olemas. Palun kontrollige, kas Teil on piisavalt õiguseid selle toimingu teostamiseks..</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrier klienti ei leitud</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Barrier kliendi käivitusfaili ei leitud.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Tugijaama nimi on tühi</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Palun sisestage tugijaama nimi millega barrier klient peab ühenduma.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Ei saa kirjutada seadete faili.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Barrier käivitamiseks vajaliku ajutise seadete faili kirjutamine ebaõnnestus.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Seadete faili nimi on vigane</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Te pole valinud korrektset seadete faili barrier serverile. Kas soovite valida seadete faili nüüd?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier serverit ei leitud</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Barrier serveri käivitusfaili ei leitud.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier katkestas töö veateatega</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier katkestas ootamatul töö veateatega %1.&lt;br&gt;&lt;br&gt;Täpsema info saamiseks kontrollige väljundlogi.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Peata</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier käivitub.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier töötab</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier ei tööta.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Tundmatu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Vali barrier seadete fail</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Salvesta seaded kui...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Salvestamine ebaõnnestus</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Seadete salvestamine faili ebaõnnestus.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Ekraani nimi:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">Serveri IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Käivita</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Kasuta olemasolevat seadistust:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Seadete fail:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Vali</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Seadistage interaktiivselt:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Serveri seadistamine...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Valmis</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Logi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Rakenda</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP aadressid:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Barrier'st...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Välju</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Välju</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Käivita</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Peata</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Peata</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Näita olekut</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Peida</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Peida</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Näita</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Näita</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Salvesta seaded kui...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Salvesta interakttivselt loodud serveri seaded faili.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Seaded</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Seadete muutmine</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Käivita nõustaja</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Nimetu</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier seadistamine</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier seaded (*.sgc);;kõik failid (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier seaded (*.conf);;Kõik failid (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Süsteemisalv pole kättesaadav, loobun.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Ekraani nimi on tühi</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Ekraani nimi peab olema määratud. Palun määrake nimi või katkestage dialoog.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Ekraani nimi ühildub aliasega</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Ekraani nimi peab olema erinev aliasest. Palun eemaldage alias või muutke ekraani nime.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Ekraani seaded</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Ekraani nimi:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Aliased</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Lisa</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Eemalda</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Muuteklahvid</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Puudub</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Surnud nurgad</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Ülemine-vasak</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Ülemine-parem</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Alumine vasak</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Alumine-parem</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Nurga suurus:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Parandused</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Kinnita CAPS LOCK klahv</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Kinnita NUM LOCK klahv</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Kinnita SCROLL LOCK klahv</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Kinnita XTest Xineramale</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Ekraan: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Topeltklõps seadete muutmiseks&lt;br&gt;Eemaldamiseks lohista ekraan prügikasti</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Serveri seaded</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Ekraanid ja seosed</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Eemaldamiseks lohista ekraan joonestikult prügikasti.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Seadista barrier serveri paigutuse seadeid.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Ekraani lisamiseks lohista see nupp joonestikule.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Lohista uued ekraanid joonestikule või liiguta olemasolevaid.
+Eemaldamiseks lohista ekraan prügikasti.
+Ekraani seadete muutmiseks tee sellel topeltklõps.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Kiirklahvid</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Kiirklahvid</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Uus</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Redigeeri</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Eemalda</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Toimingud</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Uus</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Muuda</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Eemalda</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Täpsemad serveri seaded</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Lülitu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Lülitu peale ootamist</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Lülitu peale topeltkoputust ajaga</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Valikud</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Kontrolli klienti peale iga</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Kasuta relatiivseid hiire liikumisi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Sünkrooni ekraanisäästjad</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Ära võta esiplaani akent Windows serverites</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Surnud nurgad</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Ülemine vasak</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Ülemine-parem</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Alumine-vasak</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Alumine-parem</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Nurga suurus</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Salvesta logifail asukohta...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Barrier ülendamine</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Kas soovite kindlasti Barrier't ülendada?
+See võimaldab Barrier'l toimetada ülendatud protsessidega ja UAC dialoogiga, kuid võib tekitada probleeme ülendamata protsessidega. Ülendage Barrier ainult kindlal vajadusel.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Seaded</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Ekraani nimi:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Port:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Seade:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Logimine</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Logimise tase:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Logi faili:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Vali...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Viga</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Keel:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Mitmesugust</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Hoiatus</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Märkus</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier seadistamine</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Palun valida sobiv funktsioon.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Palun sisestage oma uus salasõna.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier seadistamine</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Tere tulemast</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Täname, et installeerisid Sünergia!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier võimaldab lihtsalt jagada oma klaviatuuri ja hiirt mitme arvuti vahel, see on tasuta ja vabavaraline. Lihtsalt liiguta oma hiir üle ühe arvuti ekraaniserva teise arvuti ekraanile. Võite isegi jagada kõiki oma lõikepuhvreid. Vajad vaid võrgu ühendust. Barrier't saab kasutada erinevates operatsioonisüsteemides (Windows, Mac OS X ja Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server või klient?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Tundmatu</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Logimine ebaõnnestus, vigane e-posti aadress või salasõna.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Logimine ebaõnnestus, tekkis viga.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Logimine ebaõnnestus, tekkis viga.
+Server vastas:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_fi.qm b/src/gui/res/lang/gui_fi.qm
new file mode 100644
index 0000000..46f69c1
--- /dev/null
+++ b/src/gui/res/lang/gui_fi.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_fi.ts b/src/gui/res/lang/gui_fi.ts
new file mode 100644
index 0000000..9fe0b60
--- /dev/null
+++ b/src/gui/res/lang/gui_fi.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="fi" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Tietoa Barrierstä</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Tuntematon</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versio:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">OK</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Määritä toiminto</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Määritä suoritettava toiminto</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Paina pikanäppäin pohjaan</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Vapauta pikanäppäin</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Paina ja vapauta pikanäppäin</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">vain näillä näytöillä</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Vaihda näyttöön</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Vaihda</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">vasemmalle</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">oikealle</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">ylös</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">alas</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Lukitse kursori näytölle</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">kytke päälle/pois</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">päälle</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">pois päältä</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Suorita toiminto</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">kun pikanäppäintä painetaan</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">kun pikanäppäin vapautetaan</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Pikanäppäin</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Määritä pikanäppäin:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Käynnistä</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Tiedosto</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Muokkaa</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Ikkuna</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Ohje</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Barrier versiosi on vanhentunut. Versio &lt;b&gt;%1&lt;/b&gt; on nyt saatavilla &lt;a href=&quot;%2&quot;&gt;ladattavaksi&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Ohjelmaa ei voida käynnistää</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Ajotiedoston&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;käynnistys ei onnistunut, vaikka se on olemassa. Tarkista onko sinulla riittävät käyttöoikeudet ohjelman ajamiseen.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barriern asiakasohjelmaa ei löydy</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Ajotiedosto Barriern asiakasohjelmalle puuttuu.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Isäntänimi on tyhjä</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Täytä isäntänimellä johon Barrier voi yhdistää.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Asetustiedostoa ei voida luoda.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Väliaikaista Barriern vaatimaa asetustiedostoa ei voida luoda.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Asetustiedoston tiedostonimi virheellinen </translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Et ole määrittänyt kelvollista asetustiedostoa Barrier palvelimelle. Haluatko määrittää asetustiedoston sijainnin nyt?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier palvelinta ei löydy</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Ajotiedosto Barrier palvelimelle puuttuu.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier suljettiin virheen vuoksi</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier suljettiin odottamattomasti paluukoodilla %1.&lt;br&gt;&lt;br&gt;Tarkista lokitiedosto saadaksesi lisätietoja.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Pysäytä</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier käynnistyy.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier on käynnissä.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier ei ole käynnissä.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Tuntematon</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Määritä Barriern asetustiedosto</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Tallenna asetukset nimellä...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Tallennus epäonnistui</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Ei voitu tallentaa asetustiedostoa.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Näytön nimi:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">Palvelimen IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Käynnistä</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Käytä olemassa olevaa kokoonpanoa:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Asetustiedosto:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Selaa...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Määritä interaktiivisesti:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Määritä palvelin...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Valmis</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Loki</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Käytä</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP-osoitteet:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Tietoa Barrierstä</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Lopeta</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Lopeta</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Suorita</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Pysäytä</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Pysäytä</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Näytä tila</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Piilota</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Piilota</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Näytä</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Näytä</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Tallenna asetukset nimellä...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Tallenna interaktiivisesti määritetty palvelinkokoonpano tiedostoon.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Asetukset</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Muokkaa asetuksia</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Ohjattu asetusten määritys</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Nimetön</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Määritä Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier Configuration (*.sgc);;Kaikki tiedostot (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier Configuration (*.conf);;Kaikki tiedostot (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Ilmoitusalue ei ole käytettävissä, suljetaan.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Näytön nimi puuttuu</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Nimimerkki puuttuu. Ole hyvä ja syötä nimi tai sulje dialogi.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Nimimerkki on sala kuin alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Nimimerkki ei voi olla sama kuin alias. Oleva hyvä ja poista alias tai muuta nimimerkki.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Näytön asetukset</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Näytön nimi:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Aliakset</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Lisää</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Poista</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Valintanäppäimet</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Ei mitään</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Kuolleet kulmat</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Ylävasen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Yläoikea</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Alavasen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Alaoikea</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Kulman koko:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Korjaukset</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Korjaa CAPS LOCK näppäin</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Korjaa NUM LOCK näppäin</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Korjaa SCROLL LOCK näppäin</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Korjaa XTest Xineramalle</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Näyttö: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Kaksoisnapsauta muokataksesi asetuksia&lt;br&gt;Vedä näyttö roskakoriin poistaaksesi sen.</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Palvelimen asetukset</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Näytöt ja linkitys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Vedä näyttö ruudukosta roskakoriin poistaaksesi sen.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Määritä Barrier-palvelimen näyttöasetukset</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Vedä tämä kuvake ruudukkoon lisätäksesi uuden näytön.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Lisää uusia näyttöjä ruudukkoon tai siirrä olemassa olevia vetämällä.
+Vedä näyttö roskakoriin poistaaksesi sen.
+Kaksoisnapsauta näyttöä muokataksesi sen asetuksia.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Pikanäppäimet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Pikanäppäimet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Uusi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Muokkaa</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Poista</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Toiminnot</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Uusi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Muokkaa</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Poista</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Palvelimen lisäasetukset</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Vaihda</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Vaihtoviive</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Vaihtoviive kaksoisnapautettaessa</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Asetukset</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Asiakkaiden tarkistusväli</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Suhteutetut kursorin liikkeet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Synkronoi näytönsäästäjät</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Älä siirrä päällimmäiseksi ikkunaksi Windows palvelimilla</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Kuolleet kulmat</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Ylävasen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Yläoikea</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Alavasen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Alaoikea</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Kulman koko:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Lokitiedoston tallennuspaikka...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Korota Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Oletko varma, että haluat korottaa Barriern?
+Tämä mahdollistaa Barriern käyttämisen korotetuissa prosesseissa ja UAC-dialogeissa, mutta voi aiheuttaa ongelma korottamattomissa prosesseissa. Korota Barrier vain jos se on välttämätöntä.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Asetukset</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Näytön nimi:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Portti:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Sovitin:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Loki</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Lokitaso</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Lokitiedosto</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Selaa...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Virhe</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Kieli:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Sekalaiset</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Varoitus</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Huomautus</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Tiedot</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Määritä Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Tee valinta.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Ole hyvä ja syötä sähköpostiosoitteesi ja salasanasi.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Määritä Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Tervetuloa</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Kiitos, että asensit Barriern!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barriern avulla voit helposti jakaa hiiren ja näppäimistösi usean tietokoneen välillä, ja se on ilmainen ja avointa lähdekoodia. Liikuta hiiresi vain näytön reunan yli toiselle koneelle. Voit jopa jakaa leikepöytäsi. Tarvitset vain internet yhteyden. Barrier on cross-platform ( toimii Windows, Mac OS X ja Linuxissa).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Palvelin vai Asiakas?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Tuntematon</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Kirjautuminen epäonnistui, sähköposti tai salasana on väärä.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Kirjautuinen epäonnistui, tapahtui virhe.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Kirjautuinen epäonnistui, tapahtui virhe.
+Palvelimen vaste:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_fr.qm b/src/gui/res/lang/gui_fr.qm
new file mode 100644
index 0000000..8251f4c
--- /dev/null
+++ b/src/gui/res/lang/gui_fr.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_fr.ts b/src/gui/res/lang/gui_fr.ts
new file mode 100644
index 0000000..8d96c5b
--- /dev/null
+++ b/src/gui/res/lang/gui_fr.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="fr" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">À propos de Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Inconnu</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Version:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Configurer l'action</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Choisissez l'action à effectuer</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Appuyez sur une touche</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Relâchez une touche</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Pressez et relâchez une touche</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">uniquement sur ces écrans</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Basculer vers l'écran</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Basculer dans la direction</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">gauche</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">droite</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">haut</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">bas</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Limiter le curseur à l'écran</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">activer</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">activé</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">inactif</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Cette action est exécutée quand</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">Le raccourci est utilisé</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">La touche de raccourci est relachée.</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Raccourci clavier</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Saisir la touche de raccourci&amp;nbsp;:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Démarrer</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Fichier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editer</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Fenêtre</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Aide</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Votre version de Barrier est périmée. La version &lt;b&gt;%1&lt;/b&gt; est désormais disponible au &lt;a href=&quot;%2&quot;&gt;téléchargement&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Le programme ne peut pas démarrer</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">L'exécutable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;n'a pas pu être correctement lancé, bien qu'il existe. Veuillez vérifier si vos permissions sont suffisantes pour lancer ce programme.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Le client Barrier n'est pas détecté</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">L’exécutable du client Barrier n'existe pas</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Le nom d'hôte est vide</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Veuillez renseigner un nom d'hôte auquel le client Barrier doit se connecter</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Impossible d'écrire le fichier de configuration.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Impossible d'écrire le fichier temporaire de configuration, nécessaire au lancement de barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Le nom du fichier de configuration est incorrect.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Le fichier de configuration du serveur barrier n'est pas correct. Voulez vous visualiser ce fichier ? </translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Le serveur Barrier n'a pas été détecté</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">L'exécutable du serveur Barrier n'existe pas.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier s'est arrêté suite à une erreur</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier s'est terminé de façon inattendue avec le code d'erreur %1.&lt;br&gt;&lt;br&gt; Vous trouverez plus de détails dans le fichier journal.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Stop</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier est en train de démarrer</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier est en cours d'exécution</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier n'est pas en train de s'exécuter</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Inconnu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Parcourir pour rechercher un fichier de configuration barriers</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Sauvegarder la configuration sous...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Erreur lors de l'enregistrement</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Impossible de sauvegarder la configuration</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nom de l'écran:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">&amp;Serveur IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Démarrer</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Utiliser la configuration existante : </translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Le fichier de &amp;configuration</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Parcourir...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configurer interactivement : </translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Configurer le serveur...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Prêt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Journal</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Appliquer</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Adresses IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">À &amp;propos de Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Quitter</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Quitter</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Exécuter</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Arrêt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Arrêter</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Voir l'état</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Cac&amp;her</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Cacher</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Montrer</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Montrer</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Sauvegarder la configuration &amp;sous...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Sauvegarder la configuration générée du serveur dans un fichier.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Paramètres</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Éditer les paramètres</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Lancer l'Assistant</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Sans nom</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Installer Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Configuration Barrier (*.sgc);; Tous les fichiers (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier Configurations (*.conf);;All files (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">La barre des tâches n'est pas disponible, fermeture.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Le nom de l'écran est vide</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Le nom de l'écran ne peut pas être vide. Merci de compléter le nom ou d'annuler la boîte de dialogue.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Le nom affiché concorde à l'alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Le nom de l'écran ne peut pas être le même que l'alias. Merci de supprimer l'alias ou de changer le nom de l'écran.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Paramètres d'affichage</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Nom de l'écran</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">A&amp;lias</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Ajouter</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Supprimer</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Touches de combinaison</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Maj&amp;nbsp;:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Maj</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Méta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Aucun</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Coins morts</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Haut-gauche</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Haut-droit</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Bas-gauche</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Bas-droit</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Taille des &amp;coins :</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Correctifs</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Corrige la touche Verrouillage majuscule</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Corrige la touche Verrouillage numérique</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Corrige la touche Verrouillage défilement</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Corrige XTest pour Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Écran: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double cliquer pour modifier les réglages&lt;br&gt;Faire glisser vers la corbeille pour le supprimer</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Configuration Serveur</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Écrans et liens</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Faire glisser un écran de la grille vers la corbeille pour le supprimer.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configurer l'organisation de votre configuration serveur</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Faire glisser ce bouton sur la grille pour ajouter un nouvel écran</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Faire glisser de nouveaux écrans vers la grille ou déplacer ceux existant.
+Faire glisser un écran dans la corbeille pour le supprimer.
+Double cliquer sur un écran pour modifier ses réglages.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Raccourcis clavier</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Raccourcis clavier</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Nouveau</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editer</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Supprimer</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">A&amp;ctions</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Nou&amp;veau</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">E&amp;diter</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Suppri&amp;mer</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Configuration serveur avancé</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Basculer</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Changer d'écran après</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Changer d'écran en double-cliquant dans les</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Options</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Vérifier les clients toutes les</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Utiliser des mouvements souris &amp;relatifs</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">S&amp;ynchroniser les écrans de veille</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Ne pas prendre la fenêtre au premier plan sur les serveurs Windows.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Coins morts</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Ha&amp;ut-gauche</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Haut-&amp;droit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">&amp;Bas-gauche</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Bas-d&amp;roit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Taille des coi&amp;ns :</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Enregistrer le journal dans le fichier :</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Élever Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Êtes-vous sûr de vouloir élever Barrier&amp;nbsp;?
+Ceci autorise Barrier à interagir avec les processus élevés et le dialogue UAC, mais peut poser des problèmes avec les processus non-élevés. N'élevez Barrier que si cela est nécessaire.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Paramètres</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Nom de l'éc&amp;ran</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">&amp;Port :</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Interface :</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Journal</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Niveau de journalisation :</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Enregistrer le journal dans le fichier&amp;nbsp;:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Parcourir</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Erreur</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">&amp;Langage :</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Divers</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Avertissement</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Remarque</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Infos</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Installer Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Choisissez une option s'il vous plait.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Merci d'entrer votre e-mail et votre mot de passe.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Installer Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Bienvenue</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Merci d'avoir installé Barrier !</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier vous permet de partager facilement votre souris et votre clavier entre plusieurs ordinateurs. Il est libre et Open Source. Il suffit de déplacer la souris d'un ordinateur à l'autre en passant par leurs bords, comme pour passer d'un écran à l'autre en multi-écran. Vous pouvez même partager les presse-papiers (copier-coller). Tout ce qu'il faut est une connexion réseau. Barrier est multi-plateforme (fonctionne sur Windows, Mac OS X et Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Serveur ou client ?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Inconnu</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Connexion refusée, e-mail ou mot de passe invalide.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Connexion refusée, une erreur s'est produite.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Connexion refusée, une erreur s'est produite.
+Réponse du serveur :
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_gl.qm b/src/gui/res/lang/gui_gl.qm
new file mode 100644
index 0000000..11d78e1
--- /dev/null
+++ b/src/gui/res/lang/gui_gl.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_gl.ts b/src/gui/res/lang/gui_gl.ts
new file mode 100644
index 0000000..727878f
--- /dev/null
+++ b/src/gui/res/lang/gui_gl.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="gl" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Acerca de Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Descoñecido</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versión:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Configurar acción</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Elixir a acción para realizar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">esquerda</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">dereita</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">arriba</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">abaixo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Ficheiro</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;A súa versión de Barrier está desactualizada. A versión &lt;b&gt;%1&lt;/b&gt; xa está dispoñible para &lt;a href=&quot;%2&quot;&gt;descargar&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Cliente de Barrier non atopado</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Configuración do nome de ficheiro non válida</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Servidor de Barrier non atopado</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier está a iniciarse.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier está a executarse.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier non se está a executar.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Descoñecido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Erro ao gardar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Explorar...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Rexistro</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Enderezos IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;Acerca de Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Agochar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Axustes</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Editar axustes</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Executar asistente</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Sen nome</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Axustes</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">&amp;Idioma:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Benvido/a</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Descoñecido</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_grk.qm b/src/gui/res/lang/gui_grk.qm
new file mode 100644
index 0000000..9793d0d
--- /dev/null
+++ b/src/gui/res/lang/gui_grk.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_grk.ts b/src/gui/res/lang/gui_grk.ts
new file mode 100644
index 0000000..03b71e2
--- /dev/null
+++ b/src/gui/res/lang/gui_grk.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="grk" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Σχετικά με το Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Έκδοση:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">ΟΚ</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">ΔιαμόÏφωσε την ενέÏγεια αυτή</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Επιλέξτε την ενέÏγεια για να εκτελέστεί</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Πιέστε ένα πλήκτÏο άμεσης Ï€Ïόσβασης</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Άφηστε ένα πλήκτÏο άμεσης Ï€Ïόσβασης</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Πιέστε και αφήστε ένα πλήκτÏο άμεσης Ï€Ïόσβασης</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">μόνο σε αυτές τις οθόνες</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Άλλαγή στην οθόνη</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Αλλαγή στην κατεÏθυνση</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">αÏιστεÏά</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">δεξιά</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">πάνω</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">κάτω</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Κλείδωμα δείκτη στην οθόνη</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">Εναλλαγή</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">άνοιξε</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">κλείσε</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Η δÏάση αυτή Ï€Ïαγματοποιείται όταν</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">Το άμεσο πλήκτÏο έχει πατηθεί</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">Το άμεσο πλήκτÏο έχει αφεθεί</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Άμεση Ï€Ïόσβαση</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">ΚαθοÏισμός άμεσου πλήκτÏου</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">ΑÏχείο</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">ΕπεξεÏγασία</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">ΠαÏάθυÏο</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Βοήθεια</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Το Ï€ÏόγÏαμμα δεν μποÏεί να ξεκινήσει</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Έτοιμο</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Έξοδος</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Διακοπή</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Ιδιότητες</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">ΕπεξεÏγασία Ιδιοτήτων</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">ΕπεξεÏγασία</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Ιδιότητες</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">ΠληÏοφοÏίες</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Το Barrier σας αφήνει με εÏκολο Ï„Ïόπο να μοιÏάσετε το ποντίκι και το πληκτÏολόγιο ανάμεσα σε πολλαπλοÏÏ‚ υπολογιστές στο γÏαφείο σας, είναι ΔωÏεάν και Î‘Î½Î¿Î¹Ï‡Ï„Î¿Ï ÎšÏŽÎ´Î¹ÎºÎ±. Απλά μετακινείστε το ποντίκι στην άκÏη της μιας οθόνης στην άλλη. ΜποÏείτε να μοιÏάσετε ακόμα και όλα τα clipboards. Το μόνο που χÏειάζεται μία σÏνδεση δικτÏου. Το Barrier λειτουÏγεί σε πολλαπλές πλατφόÏμες (δουλεÏει σε Windows, Mac OS X και Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_he.qm b/src/gui/res/lang/gui_he.qm
new file mode 100644
index 0000000..2ceeae5
--- /dev/null
+++ b/src/gui/res/lang/gui_he.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_he.ts b/src/gui/res/lang/gui_he.ts
new file mode 100644
index 0000000..192d2a1
--- /dev/null
+++ b/src/gui/res/lang/gui_he.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="he" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">×ודות Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">×œ× ×™×“×•×¢</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">גירס×:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;×ישור</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">הגדר פעולה</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">בחר פעולה לביצוע</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">לחיצה על מקש כלשהו</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">שחרור מקש כלשהו</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">לחיצה ושחרור מקש כלשהו</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">רק ×‘×ž×¡×›×™× ×”×לו</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">עבור למסך</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">החלף בכיוון</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">שמ×ל</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">ימין</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">למעלה</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">למטה</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">נעל ×ת סמן העכבר במסך</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">הדלקה\כיבוי</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">דלוק</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">כיבוי</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">הפעולה מבוצעת ×›×שר</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">המקש לחוץ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">המקש ×ינו לחוץ</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">מקש קיצור</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">הכנס פירוט עבור מקש הקיצור:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">התחל</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;קובץ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;עריכה</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;חלון</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">ע&amp;זרה</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">×œ× × ×™×ª×Ÿ להפעיל ×ת התוכנה</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">היישו×:&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;×§×™×™×, ×ך ×œ× × ×™×ª×Ÿ להפעילו. בדוק ×× ×ž×•×’×“×¨×•×ª עבורך ההר×שות המת×ימות להפעלתו.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">לקוח Barrier ×œ× × ×ž×¦×</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">תוכנת הלקוח של Barrier ×œ× ×§×™×™×ž×ª.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">×œ× ×¦×•×™×Ÿ ×©× ×ž×—×©×‘</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">×× × ×¦×™×™×Ÿ ×©× ×ž×—×©×‘ שלקוח Barrier יתחבר ×ליו.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">×œ× × ×™×ª×Ÿ לכתוב ×ת קובץ ההגדרות</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">×œ× × ×™×ª×Ÿ לכתוב לקובץ ההגדרות הזמני. הדבר הכרחי על מנת להפעיל ×ת Barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">×©× ×§×•×‘×¥ ההגדרות ×ינו חוקי</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">שרת ×”-Barrier ×œ× × ×ž×¦×.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">תוכנת השרת של Barrier ×œ× × ×ž×¦××”.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier נסגרה ×¢× ×©×’×™××”.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier נסגרה ב×ופן ×œ× ×¦×¤×•×™ ×¢× ×©×’×™××” מספר %1.&lt;br&gt;&lt;br&gt;×œ×¤×¨×˜×™× × ×•×¡×¤×™×, פנו לקובץ התיעוד (לוג).</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">עצור</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier מ×תחל</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier רץ ברקע</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier ×œ× ×¨×¥</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">×œ× ×™×“×•×¢</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">מצי×ת קובץ הגדרות של Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">שמור הגדרות &amp;בש×...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">שמירה נכשלה</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">התחל</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">השתמש בהגדרות הקיימות</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">חפש...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">תיעוד פעילות (Log)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;שמור שינויי×</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;יצי××”</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">יצי××”</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">הפעל</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">ע&amp;צור</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">עצור</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">הצג &amp;מצב</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">הסתר</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">שמור הגדרות קונפיגורציה כ...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">שמור הגדרות השרת הנוכחיות לקובץ.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">הגדרות</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">שנה הגדרות</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">הפעל ×שף</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">×œ×œ× ×©×</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">הגדרת Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">קבצי הגדרות של Barrier (*.sgc);;All Files (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">קבצי הגדרות של Barrier (*.conf);;All Files (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">מגש המערכת ×œ× ×–×ž×™×Ÿ, יוצ×.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">×œ× ×”×•×§×œ×“ ×©× ×ž×¡×š</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">הגדרות מסך</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">×©× ×ž×¡×š:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">שמות &amp;נוספי×: </translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;הוסף</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">ה&amp;סר</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">לל×</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;פינות מתות</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">עליון-שמ×ל</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">עליון-ימין</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">שמ×לית-תחתונה</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">ימנית-תחתונה</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">&amp;גודל הפינה:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">הגדרות שרת</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">×ž×¡×›×™× ×•×—×™×‘×•×¨×™×</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">גרור ×ת כפתור ×–×” לרשת להוספת מסך.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;חדש</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;עריכה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">ה&amp;סר</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">פ&amp;עולות</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">חדש</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">כריכה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">הסרה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">הגדרות שרת &amp;מתקדמות</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">ה&amp;חלפה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">החלף ל×חר ×”&amp;מתנה של </translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">×לפיות שניה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">החלף בלחיצה &amp;כפולה בתוך</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">×&amp;פשרויות</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">בדוק ×ת הלקוח &amp;בכל</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">השתמש בהזזות עכבר &amp;יחסיות</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">סנכרן &amp;שומרי מסך</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;פינות מתות</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">שמ×לית-עליונה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">ימנית-עליונה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">שמ×לית-תחתונה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">ימנית-תחתונה</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">&amp;גודל הפינה:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">הגדרות</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">&amp;×©× ×ž×¡×š:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">&amp;פורט:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">תיעוד פעולה (Log)</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">&amp;רמת תיעוד פעולה (Log)</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">תיעוד לקובץ: </translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">עיון...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">שגי××”</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">×©×™× ×œ×‘</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">הערה</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">מידע</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">הגדרת Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">×× × ×‘×—×¨ ×ופציה.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">הגדרת Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier מ×פשרת לשתף בקלות ×ת העכבר והמקלדת בין מספר ×ž×—×©×‘×™× ×¢×œ השולחן, וזה חופשית וקוד פתוח. רק להזיז ×ת העכבר מקצה מסך ×חד של המחשב ל×חר. ×תה יכול ×’× ×œ×©×ª×£ ×ת כל לוחות כתיבה שלך. כל מה שצריך ×”×•× ×—×™×‘×•×¨ לרשת. סינרגיה ×”×™× ×—×•×¦×” פלטפורמות (עובד ב-Windows, Mac OS X ו-Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">שרת ×ו לקוח?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">×œ× ×™×“×•×¢</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_hi.qm b/src/gui/res/lang/gui_hi.qm
new file mode 100644
index 0000000..9dad8df
--- /dev/null
+++ b/src/gui/res/lang/gui_hi.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_hi.ts b/src/gui/res/lang/gui_hi.ts
new file mode 100644
index 0000000..a6ba550
--- /dev/null
+++ b/src/gui/res/lang/gui_hi.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="hi" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_hr-HR.qm b/src/gui/res/lang/gui_hr-HR.qm
new file mode 100644
index 0000000..6c3bd19
--- /dev/null
+++ b/src/gui/res/lang/gui_hr-HR.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_hr-HR.ts b/src/gui/res/lang/gui_hr-HR.ts
new file mode 100644
index 0000000..89e437a
--- /dev/null
+++ b/src/gui/res/lang/gui_hr-HR.ts
@@ -0,0 +1,1408 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="hr-HR" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">O Barrieru</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Nepoznato</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">InaÄica:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;U redu</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Podesite radnje</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Odaberite radnju za izvođenje</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Pritisnite tipku preÄaca</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Oslobodite tipku preÄaca</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Pritisnite i oslobodite tipku preÄaca</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">samo na ovim zaslonima</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Prebaci na zaslon</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Prebaci u smjeru</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">lijevo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">desno</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">gore</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">dolje</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">ZakljuÄaj pokazivaÄ na zaslon</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">ukljuÄi/iskljuÄi</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">UkljuÄeno</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">IskljuÄeno</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Ova radnja se izvodi kada</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">je tipka preÄaca pritisnuta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">je tipka preÄaca osloboÄ‘ena</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Tipka preÄaca</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Odredite tipku preÄaca</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Pokreni</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Datoteka</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Uredi</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Prozor</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Pomoć</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Program ne može biti pokrenut</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Izvršna datoteka&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;ne može se pokrenuti, kao da ne postoji. Provjerite imate li potrebne dozvole za pokretanje ovog programa.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrier klijent nije pronađen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Izvršna datoteka barrier klijenta ne postoji.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Naziv raÄunala nedostaje</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">UpiÅ¡ite naziv raÄunala barrier klijenta na koji se spajate.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Nemoguće ispisivanje datoteke postavki</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Privremena datoteka postavki potrebna za pokretanje barriera ne može biti zapisana.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Pogrešan naziv datoteke postavki</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Niste odabrali valjanu datoteku postavki za barrier poslužitelj. Želite li sada odabrati datoteku postavki?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier poslužitelj nije pronađen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Izvršna datoteka barrier poslužitelja ne postoji.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier je prestao sa radom zbog greške</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier je neoÄekivano prestao sa radom, s izlaznim kodom of %1.&lt;br&gt;&lt;br&gt;Pogledajte izlazni zapis za viÅ¡e pojedinosti.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Zaustavi</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier se pokreće.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier je pokrenut.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier nije pokrenut.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Nepoznato</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Odaberite barrier datoteku postavki</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Spremi postavke kao...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Neuspjelo spremanje</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Nemoguće spremanje postavki u datoteku.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Naziv zaslona:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">&amp;IP poslužitelja:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Pokreni</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Koristi postojeće postavke:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Datoteka postavki:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Pregledaj...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Podesite interaktivno:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Podesite poslužitelj...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Spreman</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Zapis</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Primijeni</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP adresa:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;O Barrieru...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Zatvori</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Zatvori</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Pokreni</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Z&amp;austavi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Zaustavi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">P&amp;rikaži status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Sakrij</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Sakrij</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Prikaži</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Prikaži</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Spremi postavke &amp;kao...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Spremi interaktivno generirane postavke poslužitelja u datoteku...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Postavke</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Uredi postavke</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Pokeni Äarobnjak</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Neimenovan</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Podesite Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier postavke (*.sgc);;Sve datoteke (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier postavke (*.conf);;Sve datoteke (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Obavijesna ikona je nedostupna, otkazujem.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Naziv zaslona nije upisan</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Postavke zaslona</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Naziv &amp;zaslona:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">N&amp;adimci</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Dodaj</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Ukloni</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Promijeni tipke</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Nijedan</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Mrtvi kutovi</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Gore-lijevo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Gore-desno</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Dolje-lijevo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Dolje-desno</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">VeliÄina ku&amp;ta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Popraci</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Popravi CAPS LOCK tipku</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Popravi NUM LOCK tipku</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Popravi SCROLL LOCK tipku</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Popravi XTest za Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Zaslon: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dvostruko kliknite za uređivanje postavki&lt;br&gt;Za uklanjanje zaslona dovucite ga do ikone smeća i ispustite ga</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Postavke poslužitelja</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Zasloni i poveznice</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Za uklanjanje odvucite zaslon iz polja u ikonu smeća.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Podesite izlaz vašeg barrier poslužitelja.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Povucite ovu ikonu zaslona do odabranog polja ispod.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Dovucite novi zaslon u odabrano polje ili premjestite iz trenutnog polja.
+Za brisanje zaslona odvucite ga u ikonu smeća.
+Za uređivanje postavki dvostruko kliknite na zaslon.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Tipke preÄaca</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Tipke preÄaca</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Nova</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Uredi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Ukloni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">R&amp;adnje</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">No&amp;va</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">U&amp;redi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Uk&amp;loni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Napredne postavke poslužitelja</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;UkljuÄi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">UkljuÄi &amp;nakon Äekanja</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">UkljuÄi dvostrukim &amp;dodirom za</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Mogućnosti</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">&amp;Provjeri klijent svakih</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Koristi &amp;relativne pokrete miša</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">U&amp;skladi Äuvare zaslona</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Ne uzimaj &amp;prozor u prednjem planu na Windows poslužiteljima</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Mrtvi kutovi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Go&amp;re-lijevo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Gore-des&amp;no</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">&amp;Dolje-lijevo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Dolje-de&amp;sno</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Vel&amp;iÄina kuta:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Spremi datoteku zapisa u...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">UAC ovlasti Barriera</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Sigurno želite dati UAC ovlasti Barrieru?
+To omogućuje Barrieru interakciju s ovlaštenim procesima i UAC dijalogom, ali može uzrokovati probleme s neovlaštenim procesima. Dajte ovlasti Barrieru samo ako je stvarno potrebno.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Postavke</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Na&amp;ziv zaslona:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">U&amp;laz:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;SuÄelje:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Prijavljivanje</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">&amp;Razina prijavljivanja:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Prijava u datoteku:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Odaberi...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Greška</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Jezik:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Upozorenje</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Napomena</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Otklanjanje greške</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Otklanjanje greške1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Otklanjanje greške2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Podesite Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Molim, odaberite mogućnost.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Podesite Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Dobrodošli</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Hvala što ste instalirali Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier vam omogućuje lagano dijeljenje vaÅ¡g miÅ¡a i tipkovnice izmeÄ‘u viÅ¡e raÄunala na vaÅ¡oj radnoj povrÅ¡ini. Barrier je besplatan i otvorenog kôda. Jednostavno pomaknite vaÅ¡ miÅ¡ preko ruba zaslona jednog raÄunala na zaslon drugog raÄunala. ÄŒak možete dijeliti sve vaÅ¡e meÄ‘uspremnike. Sve Å¡to trebate je Internet veza. Barrier je viÅ¡e platformska aplikacija (radi na Windowsima, Mac OS X i Linuxu).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Poslužitelj ili klijent?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Nepoznato</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_hu-HU.qm b/src/gui/res/lang/gui_hu-HU.qm
new file mode 100644
index 0000000..88499fe
--- /dev/null
+++ b/src/gui/res/lang/gui_hu-HU.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_hu-HU.ts b/src/gui/res/lang/gui_hu-HU.ts
new file mode 100644
index 0000000..524c013
--- /dev/null
+++ b/src/gui/res/lang/gui_hu-HU.ts
@@ -0,0 +1,1407 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="hu-HU" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Barrier névjegy</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Ismeretlen</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Verzió:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Beállítás</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Válasszon egy műveletet</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Nyomjon le egy gyorsbillentyűt</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Engedje fel a gyorsbillentyűt</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Nyomja le, majd engedje fel a gyorsbillentyűt</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">csak ezeken a képernyőkön</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Képernyőváltás</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Irányváltás</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">bal</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">jobb</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">fel</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">le</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Kurzor zárolása a képernyőn</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">váltó</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">BE</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">KI</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Ez a művelet történik amikor</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">a gyorsgomb lenyomva</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">a gyorsgomb felengedve</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Gyorsgomb</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Adjon meg leírást a gyorsgombhoz:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Fájl</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Szerkeszt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Ablak</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Súgó</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">A program nem tud elindulni</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">A végrehajtandó&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;nem indul, esetleg nem létezik. Kérjük ellenőrizze, hogy rendelkezik-e a szükséges engedélyekkel a futtatáshoz.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrier kliens nem található</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">A Barrier kliens futtatható állománya nem található.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">A gépnév üres.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Kérjük adja meg a Barrier kliens gép nevét a csatlakozáshoz.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">A konfigurációs fájl nem írható.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Az ideiglenes konfigurációs fájl, amely szükséges a Barrier indításához, nem jött létre.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Konfigurációs fájlnév érvénytelen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Nem adott meg érvényes konfigurációs fájlnevet a barrier szerveren. Meg akarja keresni a konfigurációs fájlt most?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier szerver nem elérhető</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">A Barrier szerver futtatható állománya nem található.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">A Barrier hibát jelzett, ezért leállt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">A Barrier a következő hibakóddal lépet ki: %1.&lt;br&gt;&lt;br&gt;A részletekért tekintse meg a naplót.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">A Barrier indul.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">A Barrier fut</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">A Barrier nem fut.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Ismeretlen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">A Barrier konfigurációs fájl kijelölése</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Mentse másként a konfigurációt...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Mentés sikertelen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">A konfigurációs fájlt nem lehet menteni.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">A létező konfiguráció használata:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Konfigurációs fájl:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Tallózás...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Interaktív konfiguráció:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Szerver konfiguráció...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Kész</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Napló</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Alkalmaz</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Barrier névjegy...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Kilépés</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Kilépés</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Fut :-)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">S&amp;top</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">S&amp;how Status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Konfig mentése mint...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Mentse az interaktívan létrehozott szerver konfigurációt fájlba.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Beállítások</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Beállítások módosítása</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Varázsló futtatása</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Névtelen</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier beállítás</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier konfiguráció (*.sgc);;Minden fájl (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier konfiguráció (*.conf);;Minden fájl (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Rendszer tálca nem elérhető, kilépés.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Képernyőnév üres.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Képernyő beállítások</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Képernyőnév:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Ãlnevek</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Hozzáad</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Eltávolít</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Módosító billentyűk</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">None</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Dead corners</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Bal-felső</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Jobb-felső</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Bal-alsó</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Jobb-alsó</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Sarokméret:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Rögzít</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Rögzíti a CAPS LOCK-ot</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Rögzíti a NUM LOCK-ot</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Rögzíti a SCROLL LOCK-ot</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Fix XTest for Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Képernyő: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dupla klikk a módosításhoz&lt;br&gt;Húzd a szemetesre a törléshez</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Szerver konfiguráció</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Képernyők és kapcsolatok</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Húzd a képernyőt a listából a szemetesre, hogy eltávolítsd.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configure the layout of your barrier server configuration.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Húzd ezt a gombot a listába, hogy új képernyőt adj hozzá.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Húzza az új képernyőket a listába vagy mozgassa a meglévőket.
+Húzza a képernyőt a szemetesre, hogy törlődjön.
+Dupla kattintással szerkesztheti a beállításokat.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Gyorsgombok</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Gyorsgombok</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Új</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Szerkeszt</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Eltávolít</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">A&amp;ctions</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Ne&amp;w</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">E&amp;dit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Re&amp;move</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">További szerver beállítások</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;Switch</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Váltás a várakozás után</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Switch on double &amp;tap within</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Beállítások</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Kliensek ellenőrzése</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Relatív egér mozgás használata</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Képernyővédők szinkronizálása</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Don't take &amp;foreground window on Windows servers</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Dead corners</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Bal-felső</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Jobb-felső</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Bal-alsó</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Jobb-alsó</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Sarok méret</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Napló mentése mint...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Beállítások</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Képernyő neve:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">P&amp;ort:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;Interface:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Naplózás</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Naplózási szint:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Napló fájlba:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Tallózás...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Hiba</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Figyelmeztetés</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Jegyzet</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Infó</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier beállítás</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Kérem válaszon egy opciót.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier beállítás</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">A Barrier lehetővé teszi a billentyűzet és egér megosztását több számítógép között és ráadásul Ingyenes és nyílt forráskódú. Csak mozgassa az egeret a képernyő szélére, hogy átkerüljön a másik számítógépe monitorára. A számítógépek között a vágólap is megosztásra kerül. Nincs másra szüksége csak hálózati kapcsolatra a két számítógép között. A Barrier operációs rendszer független, így használhatja Windows, Mac OS X és Linux rendszerű számítógéppel.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Szerver vagy kliens?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Ismeretlen</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_id.qm b/src/gui/res/lang/gui_id.qm
new file mode 100644
index 0000000..2394cf7
--- /dev/null
+++ b/src/gui/res/lang/gui_id.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_id.ts b/src/gui/res/lang/gui_id.ts
new file mode 100644
index 0000000..fc2cd9e
--- /dev/null
+++ b/src/gui/res/lang/gui_id.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="id" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Tentang Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Tak dikenal</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versi:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Oke</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Memulai Barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier tidak berjalan.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Tak dikenal</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Siap</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Laporan</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Alamat IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Jalankan</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Berhenti</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Berhenti</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Perlihatkan kondisi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Sembunyi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Sembunyi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Simpan konfigurasi sebagai...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Pengaturan</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Ubah pengaturan</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Tanpa nama</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">System tidak memungkinkan, keluar.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Nama layar kosong</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Pengaturan Layar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Nama Layar:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Nama lain</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Masukan</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Hapus</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Atas-kiri</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Atas-kanan</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Bawah-kiri</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Bawah-kanan</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Konfigurasi server</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Baru</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Hapus</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Baru</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Ubah</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Hapus</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Pengaturan server lanjutan</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Pengaturan</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informasi</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier akan mempermudah dalam membagi tetikus dan papan ketik diantara beberapa komputer yang berlainan, dan ini adalah software bebas dan bersumber terbuka. Hanya dengan menggeser tetikus ke pojok layar komputer maka akan berpindah ke layar komputer lainnya. Bahkan kamu dapat membagikan clipboard kamu. Yang kamu butuhkan hanya koneksi jaringan. Synerg adalah program yang dapat berjalan di beberapa Operating System yang berbeda. </translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Tak dikenal</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_is-IS.qm b/src/gui/res/lang/gui_is-IS.qm
new file mode 100644
index 0000000..be651ee
--- /dev/null
+++ b/src/gui/res/lang/gui_is-IS.qm
@@ -0,0 +1 @@
+<¸dÊÍ!¿`¡½Ý \ No newline at end of file
diff --git a/src/gui/res/lang/gui_is-IS.ts b/src/gui/res/lang/gui_is-IS.ts
new file mode 100644
index 0000000..a4c0aa7
--- /dev/null
+++ b/src/gui/res/lang/gui_is-IS.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="is-IS" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_it.qm b/src/gui/res/lang/gui_it.qm
new file mode 100644
index 0000000..6153507
--- /dev/null
+++ b/src/gui/res/lang/gui_it.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_it.ts b/src/gui/res/lang/gui_it.ts
new file mode 100644
index 0000000..a802e28
--- /dev/null
+++ b/src/gui/res/lang/gui_it.ts
@@ -0,0 +1,1408 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="it" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Riguardo a Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Sconosciuto</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versione:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Configura azione</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Scegli l'azione da compiere</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Premi una hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Rilascia una hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Premi e rilascia una hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">solo su questi schermi</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Passa a schermo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Passa in direzione</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">sinistra</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">destra</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">su</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">giu'</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Blocca il cursore sullo schermo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">scambia</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">attiva</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">disattiva</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Questa operazione viene eseguita quando</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">la hotkey viene premuta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">la hotkey viene rilasciata</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Hotkey</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Specifica la hotkey da utilizzare:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Avvia</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">File</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Modifica</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Finestra</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Aiuto</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Il programma non puo' essere avviato</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">L'eseguibile &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;non puo' essere correttamente avviato, anche se esiste. Controlla di avere i permessi necessari ad eseguire il programma (Super User o Administrator?).</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">La componente client di Barrier non è stata individuata</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">L'eseguibile per il client di Barrier non esiste.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Il nome macchina è vuoto</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Si prega di completare il nome macchina per permettere al client Barrier di connettercisi.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Non posso scrivere il file di configurazione</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Il file temporaneo di configurazione necessario ad avviare Barrier non puo' essere scritto.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Il nome file di configurazione non è valido.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Non hai specificato un nome di file di configurazione valido per la componente server di Barrier. Vuoi sfogliare il contenuto del tuo computer per il trovare il file di configurazione ora?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">La componente server di Barrier non è stata trovata</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">L'eseguibile per il server Barrier non esiste.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier si è chiuso con un errore</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier si è chiuso inaspettatamente con un codice di uscita di %1.&lt;br&gt;&lt;br&gt; Sei pregato di visualizzare il log per maggiori dettagli.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Ferma</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier si sta avviando.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier è in funzione.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier non è in funzione.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Sconosciuto</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Sfoglia il contenuto del tuo computer per un file di configurazione di Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Salva la configurazione attuale come...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Salvataggio fallito</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Impossibile salvare la configurazione attuale in un file.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nome schermo:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">Server IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Avvia</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Utilizza una configurazione esistente:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">File di configurazione:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Sfoglia...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configurazione interattiva:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Configura il Server...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Pronto</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Eventi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Applica</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Indirizzi IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Riguardo a Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Chiudi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Chiudi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Esegui</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Ferma</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Ferma</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Visualizza stato</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Nascondi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Nascondi</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Mostra</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Mostra</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Salva configurazione come...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Salva la configurazione interattiva del server in un file.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Impostazioni</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Modifica impostazioni</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Esegui il Wizard</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Senza nome</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configura Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Configurazioni di Barrier (*.sgc);;Tutti i files (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Configurazioni di Barrier (*.conf);;Tutti i files (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">L'icona nella barra di sistema non è disponibile, sto chiudendo.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Il nome dello schermo è vuoto</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Impostazioni dello schermo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Nome dello schermo:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Soprannomi</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Aggiungi</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Rimuovi</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Tasti speciali</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Nessuno</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Angoli morti</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">In alto a sinistra</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">In alto a destra</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">In basso a sinistra</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">In basso a destra</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Dimensione dell'angolo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Punti fissi</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Blocca il tasto CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Blocca il tasto NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Blocca il tasto SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Blocca XTest per Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Schermo: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Doppio click per modificare le impostazioni&lt;br&gt;Trascina lo schermo nel cestino per rimuoverlo</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Configurazione del Server</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Schermi e collegamenti</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Trascina uno schermo dalla griglia al cestino per rimuoverlo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configura il layout del server Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Trascina questo pulsante sulla griglia per aggiungere un nuovo schermo.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Trascina nuovi schermi sulla griglia o muovi quelli esistenti.
+Trascina uno schermo sul cestino per rimuoverlo.
+Doppio click su uno schermo per modificarne le impostazioni.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Hotkeys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Hotkeys</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Nuovo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Modifica</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Rimuovi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Operazioni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Nuovo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Modifica</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Rimuovi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Configurazioni avanzate del server</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Scambia</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Scambia al termine dell'attesa</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">millisecondi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Scambia con doppio tocco</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Opzioni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Controlla il client ogni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Utilizza i movimenti del mouse relativi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Sincronizza gli screen savers</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Non prendere la finestra in primo piano sui servers Windows</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Angoli morti</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">In alto a sinistra</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">In alto a destra</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">In basso a sinistra</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">In basso a destra</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Dimensione dell'angolo:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Salva il file di log...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Eleva Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Sei sicuro di voler elevare Barrier?
+Ciò consentirà a Barrier di interagire con molti processi e con il dialogo UAC,ma potrebbe casusare problemi con i processi non elevati.Eleva Barrier solo se ti serve davvero.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Impostazioni</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Nome dello schermo:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Porta:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Interfaccia:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Registro Eventi</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Livello di registrazione eventi</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Registra gli eventi in un file</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Sfoglia...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Errore</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Lingua</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Avviso</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Nota</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informazioni</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configura Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Pregasi selezionare un'opzione</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Inserisci il tuo indirizzo email e la password.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configura Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Ti diamo il benvenuto</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Grazie per aver installato Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier ti permette facilmente di condividere il mouse e la tastiera tra piu' computers sulla tua scrivania, è un software Libero e Gratuito. Ti basta muovere il mouse oltre i bordi dello schermo per passare da un computer ad un altro. Puoi anche condividere la bacheca degli appunti (Copia e Incolla). Tutto cio' che serve è una connessione di rete (WiFi o LAN). Barrier è multi-piattaforma (Funziona correttamente su Windows, Mac OS X e Linux)</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server o Client?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Sconosciuto</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Login non riuscito, email o password non valida.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_ja-JP.qm b/src/gui/res/lang/gui_ja-JP.qm
new file mode 100644
index 0000000..6310eae
--- /dev/null
+++ b/src/gui/res/lang/gui_ja-JP.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_ja-JP.ts b/src/gui/res/lang/gui_ja-JP.ts
new file mode 100644
index 0000000..c4c0e9e
--- /dev/null
+++ b/src/gui/res/lang/gui_ja-JP.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="ja-JP" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Barrierã«ã¤ã„ã¦</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">䏿˜Ž</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">ãƒãƒ¼ã‚¸ãƒ§ãƒ³:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">OK</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">動作を構æˆ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">実行ã™ã‚‹å‹•ä½œã‚’é¸æŠž</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">ホットキーを押ã™</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">ホットキーを離ã™</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">ホットキーを押ã—ã¦é›¢ã™</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">ã“れらã®ç”»é¢ã ã‘</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">ç”»é¢ã«åˆ‡ã‚Šæ›¿ãˆ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">切り替ãˆã‚‹æ–¹å‘</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">å·¦</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">å³</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">上</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">下</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">カーソルを画é¢ã«é™å®š</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">切り替ãˆ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">オン</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">オフ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">ã“ã®å‹•作を実行ã™ã‚‹æ™‚: </translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">ホットキーを押ã—ãŸã¨ã</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">ホットキーを離ã—ãŸã¨ã</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">ホットキー</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">ãƒ›ãƒƒãƒˆã‚­ãƒ¼ã®æŒ‡å®šæ–¹æ³•を入力ã—ã¦ãã ã•ã„:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">é–‹å§‹</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">ファイル</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">編集</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">ウィンドウ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">ヘルプ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">プログラムを開始ã§ãã¾ã›ã‚“</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">実行ファイル&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;ã¯å­˜åœ¨ã—ã¾ã™ãŒã€é–‹å§‹ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ã“ã®ãƒ—ログラムを動作ã•ã›ã‚‹ååˆ†ãªæ¨©é™ãŒã‚ã‚‹ã‹ã©ã†ã‹ç¢ºèªã—ã¦ãã ã•ã„。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">BarrierクライアントãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Barrierクライアントã®å®Ÿè¡Œãƒ•ァイルãŒå­˜åœ¨ã—ã¾ã›ã‚“。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">ホストåãŒå…¥åŠ›ã•れã¦ã„ã¾ã›ã‚“</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Barrierã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã§æŽ¥ç¶šã™ã‚‹ãƒ›ã‚¹ãƒˆåを入力ã—ã¦ãã ã•ã„。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">æ§‹æˆãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Barrierã®é–‹å§‹ã«å¿…è¦ãªä¸€æ™‚çš„ãªæ§‹æˆãƒ•ァイルを書ãè¾¼ã‚ã¾ã›ã‚“。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">æ§‹æˆãƒ•ァイルåãŒæ­£ã—ãã‚りã¾ã›ã‚“。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Barrierサーãƒãƒ¼ã®æ­£ã—ã„æ§‹æˆãƒ•ァイルを書ã込んã§ã„ã¾ã›ã‚“ã€‚ä»Šã€æ§‹æˆãƒ•ァイルを閲覧ã—ã¾ã™ã‹?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrierサーãƒãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Barrierサーãƒãƒ¼ã®å®Ÿè¡Œãƒ•ァイルãŒå­˜åœ¨ã—ã¾ã›ã‚“。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrierã¯ã‚¨ãƒ©ãƒ¼ã§çµ‚了ã—ã¾ã—ãŸ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrierã¯äºˆæœŸã—ãªã„終了コード%1ã§çµ‚了ã—ã¾ã—ãŸã€‚&lt;br&gt;&lt;br&gt;詳細ã¯ãƒ­ã‚°ã®å‡ºåŠ›ã‚’å‚ç…§ã—ã¦ãã ã•ã„。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrierを開始中ã§ã™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrierã¯å‹•作中ã§ã™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrierã¯å‹•作ã—ã¦ã„ã¾ã›ã‚“。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">䏿˜Ž</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Barrierã®è¨­å®šãƒ•ァイルをå‚ç…§</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">設定ã«åå‰ã‚’ã¤ã‘ã¦ä¿å­˜</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">ä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">設定をファイルã«ä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">ç”»é¢ã®åå‰:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">サーãƒãƒ¼ IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">é–‹å§‹</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">既存ã®è¨­å®šã‚’使用</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">設定ファイル:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">å‚ç…§</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">インタラクティブモードã§è¨­å®š:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">サーãƒãƒ¼ã‚’設定</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">準備完了</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">ログ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">é©ç”¨</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IPアドレス:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Barrierã«ã¤ã„ã¦...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">終了</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">終了</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">実行</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">状態を表示</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">éš ã™</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">éš ã™</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">表示ã™ã‚‹</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">表示ã™ã‚‹</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">設定ã«åå‰ã‚’ã¤ã‘ã¦ä¿å­˜</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">インタラクティブモードã§ç”Ÿæˆã—ãŸã‚µãƒ¼ãƒè¨­å®šã‚’ファイルã«ä¿å­˜</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">設定</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">設定を編集</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">ウィザードを実行ã™ã‚‹</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">åå‰ãªã—</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrierã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrierã®æ§‹æˆ(*.sgc);;ã™ã¹ã¦ã®ãƒ•ァイル(*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrierã®æ§‹æˆ(*.conf);;ã™ã¹ã¦ã®ãƒ•ァイル(*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">タスクトレイを利用ã§ãã¾ã›ã‚“。終了ã—ã¾ã™ã€‚</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">ç”»é¢ã®åå‰ãŒç©ºã§ã™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">ç”»é¢ã®åå‰ã‚’空ã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。åå‰ã‚’入力ã™ã‚‹ã‹ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã‚’キャンセルã—ã¦ãã ã•ã„。</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">ç”»é¢ã®åå‰ã¯åˆ¥åã¨ä¸€è‡´</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">ç”»é¢ã®åå‰ã‚’別åã¨åŒã˜ã«ã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“。別åを削除ã™ã‚‹ã‹ç”»é¢ã®åå‰ã‚’変更ã—ã¦ãã ã•ã„。</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">ç”»é¢ã®è¨­å®š</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">ç”»é¢ã®åå‰</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">別å</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">追加</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">削除</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">修飾キー</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">シフト</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">シフト</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">コントロール</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">メタ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">スーパー</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">ãªã—</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;undefinedCtrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">&amp;undefinedl&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">&amp;undefined&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">&amp;undefined&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">無効ã¨ã™ã‚‹è§’</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">左上</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">å³ä¸Š</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">左下</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">å³ä¸‹</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">è§’ã®å¤§ãã•</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">修正</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">CAPSロックキーを固定</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">NUMロックキーを固定</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">SCROLLロックキーを固定</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Xineramaå‘ã‘ã«XTestを修正</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;ç”»é¢: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;ダブルクリックã§è¨­å®šã‚’編集&lt;br&gt;削除ã™ã‚‹ã¨ãã¯ç”»é¢ã‚’ゴミ箱ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¾ã™</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">サーãƒãƒ¼ã®æ§‹æˆ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">ç”»é¢ã¨ãƒªãƒ³ã‚¯</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">削除ã™ã‚‹æ™‚ã¯ã‚°ãƒªãƒƒãƒ‰å†…ã®ç”»é¢ã‚’ゴミ箱ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ãã ã•ã„。</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">ã‚µãƒ¼ãƒæ§‹æˆã®é…置を設定ã™ã‚‹</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">æ–°è¦ç”»é¢ã®è¿½åŠ ã¯ã“ã®ãƒœã‚¿ãƒ³ã‚’グリッド内ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¾ã™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">æ–°è¦ç”»é¢ã‚’グリッド内ã«ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã‹æ—¢å­˜ç”»é¢ã‚’移動ã—ã¦ãã ã•ã„。
+ç”»é¢ã‚’ゴミ箱ã«ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã¨å‰Šé™¤ã—ã¾ã™ã€‚
+設定を編集ã™ã‚‹å ´åˆã¯ç”»é¢ä¸Šã§ãƒ€ãƒ–ルクリックã—ã¦ãã ã•ã„。</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">ホットキー</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">ホットキー</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">æ–°è¦</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">編集</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">削除</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">アクション</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">æ–°è¦</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">編集</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">削除</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">サーãƒãƒ¼ã®è©³ç´°ãªè¨­å®š</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">切り替ãˆ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">æ¬¡ã®æ™‚é–“ã®å¾Œåˆ‡ã‚Šæ›¿ãˆ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ミリ秒</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">æ¬¡ã®æ™‚間内ã®ãƒ€ãƒ–ルタップã§åˆ‡ã‚Šæ›¿ãˆ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">オプション</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">クライアント確èªé »åº¦</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">マウスã®ç›¸å¯¾çš„ãªå‹•ãを使用</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">スクリーンセーãƒãƒ¼ã®åŒæœŸ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Windowsサーãƒã§ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’å‰é¢ã«è¡¨ç¤ºã—ãªã„</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">無効ã¨ã™ã‚‹è§’</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">左上</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">å³ä¸Š</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">左下</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">å³ä¸‹</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">éš…ã®å¤§ãã•:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">ログファイルã®ä¿å­˜å…ˆ</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Barrierã®æ¨©é™æ˜‡æ ¼</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">本当㫠Barrier を昇格ã•ã›ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ
+ã“れã«ã‚ˆã‚Šæ˜‡æ ¼ã•れãŸãƒ—ロセスや UAC dialog ã¨ã€Barrier ã¨ãŒäº’ã„ã«ä½œç”¨ã—ã‚ã†ã“ã¨ãŒã§ãるよã†ã«ãªã‚‹åé¢ã€æ˜‡æ ¼ã•れã¦ã„ãªã„プロセスã¨ã®é–“ã§å•題を生ã˜ã‚‹ã“ã¨ã‚‚ã‚り得ã¾ã™ã€‚確ã‹ã«å¿…è¦ã§ã‚ã‚‹ã¨åˆ¤æ–­ã§ãã‚‹å ´åˆã«ã®ã¿ Barrier ã®æ˜‡æ ¼ã‚’行ã£ã¦ãã ã•ã„。</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">設定</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">スクリーンå:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">ãƒãƒ¼ãƒˆ:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">インターフェース:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">ログ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">ログレベル:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">ログ記録先ファイル:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">å‚ç…§...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">エラー</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">言語</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">ãã®ä»–</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">警告</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">通知</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">情報</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">デãƒãƒƒã‚°æƒ…å ±</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">デãƒãƒƒã‚°æƒ…å ±1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">デãƒãƒƒã‚°æƒ…å ±2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrierã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">ã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„。</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">メールアドレスã¨ãƒ‘スワードを入力ã—ã¦ãã ã•ã„。</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrierã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">よã†ã“ã</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Barrierをインストールã—ã¦ã„ãŸã ãã€ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrierã¯è¤‡æ•°ã®ã‚³ãƒ³ãƒ”ュータ間ã®ãƒžã‚¦ã‚¹ã¨ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚’ç°¡å˜ã«å…±æœ‰ã™ã‚‹ã“ã¨ãŒã§ãるフリーã®ã‚ªãƒ¼ãƒ—ンソースソフトウェアã§ã™ã€‚ã‚るコンピュータã®ç”»é¢ã®ç«¯ã«ãƒžã‚¦ã‚¹ã‚’移動ã™ã‚‹ã¨åˆ¥ã®ã‚³ãƒ³ãƒ”ュータã®ç”»é¢ã«ç§»ã‚Šã¾ã™ã€‚クリップボードを共有ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚å¿…è¦ãªã®ã¯ ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šã ã‘ã§ã™ã€‚ Barrierã¯ã‚¯ãƒ­ã‚¹ãƒ—ラットフォームã§Windows, Mac OS X, Linux上ã§å‹•作ã—ã¾ã™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">サーãƒãƒ¼ã¾ãŸã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆ</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">䏿˜Ž</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">ログインã¯å¤±æ•—ã—ã¾ã—ãŸã€‚メールアドレスã¾ãŸã¯ãƒ‘スワードãŒç„¡åйã§ã™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">エラーãŒç™ºç”Ÿã—ã€ãƒ­ã‚°ã‚¤ãƒ³ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">エラーãŒç™ºç”Ÿã—ã€ãƒ­ã‚°ã‚¤ãƒ³ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚
+サーãƒã®å¿œç­”:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_ko.qm b/src/gui/res/lang/gui_ko.qm
new file mode 100644
index 0000000..d29f456
--- /dev/null
+++ b/src/gui/res/lang/gui_ko.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_ko.ts b/src/gui/res/lang/gui_ko.ts
new file mode 100644
index 0000000..fee6276
--- /dev/null
+++ b/src/gui/res/lang/gui_ko.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="ko" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Barrierì— ëŒ€í•˜ì—¬</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">알수없ìŒ</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">버전:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">확ì¸(&amp;O)</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">ë™ìž‘ 설정</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">수행할 ë™ìž‘ì„ ì„ íƒí•˜ì„¸ìš”</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">단축키를 누르세요</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">단축키를 놓으세요</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">단축키를 눌렀다 놓으세요</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">ì´ í™”ë©´ì—서만</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">ì´ í™”ë©´ìœ¼ë¡œ 전환</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">ì´ ë°©í–¥ìœ¼ë¡œ 전환</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">왼쪽</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">오른쪽</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">위</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">아래</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">커서를 í™”ë©´ì•ˆì— ê³ ì •</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">토글</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">켜ì§</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">꺼ì§</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">ì´ ë™ìž‘ì´ ìˆ˜í–‰ ë  ë•Œ:</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">단축키가 눌렸습니다.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">단축키가 놓아졌습니다.</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">단축키</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">단축키로 설정할 키를 누르세요:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">시작(&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">파ì¼(&amp;F)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">편집(&amp;E)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">ì°½(&amp;W)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">ë„움ë§(&amp;H)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;사용 ì¤‘ì¸ ì‹œë„ˆì§€ëŠ” 최신 ë²„ì „ì´ ì•„ë‹™ë‹ˆë‹¤. 새 버전(&lt;b&gt;%1&lt;/b&gt;)ì„ &lt;a href=&quot;%2&quot;&gt;다운로드&lt;/a&gt; ë°›ì„ ìˆ˜ 있습니다.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">í”„ë¡œê·¸ëž¨ì„ ì‹œìž‘í•  수 없습니다</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">실행파ì¼&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;ì´(ê°€) 존재하지만 성공ì ìœ¼ë¡œ 실행ë˜ì§€ 못했습니다. ì´ í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰ì‹œí‚¤ê¸° 위한 충분한 ê¶Œí•œì„ ê°€ì§€ê³  있는지 확ì¸í•´ì£¼ì„¸ìš”.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrier í´ë¼ì´ì–¸íŠ¸ë¥¼ ì°¾ì„ ìˆ˜ 없습니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Barrier í´ë¼ì´ì–¸íЏ 실행 파ì¼ì´ 존재하지 않습니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">í˜¸ìŠ¤íŠ¸ëª…ì´ ë¹„ì–´ìžˆìŠµë‹ˆë‹¤.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">í´ë¼ì´ì–¸íŠ¸ê°€ ì ‘ì†í•  í˜¸ìŠ¤íŠ¸ëª…ì„ ìž…ë ¥í•´ì£¼ì„¸ìš”.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">설정파ì¼ì„ 쓸 수 없습니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Barrier를 구ë™í•˜ê¸° 위해 필요한 임시 설정 파ì¼ì„ 작성할 수 없습니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">설정 íŒŒì¼ ì´ë¦„ì´ ì˜¬ë°”ë¥´ì§€ 않습니다</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Barrier 서버를 실행하기 위한 설정 파ì¼ì´ 제대로 작성ë˜ì–´ 있지 않습니다. 지금 설정 파ì¼ì„ 찾아 보시겠습니까?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier 서버를 ì°¾ì„ ìˆ˜ 없습니다</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Barrier 서버 실행 파ì¼ì´ 존재하지 않습니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrierê°€ 오류로 ì¸í•´ 종료ë˜ì—ˆìŠµë‹ˆë‹¤</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrierê°€ %1ì˜ ì½”ë“œë¡œ 비 ì •ìƒì ìœ¼ë¡œ 종료ë˜ì—ˆìŠµë‹ˆë‹¤.&lt;br&gt;&lt;br&gt;ìžì„¸í•œ ì‚¬í•­ì€ ë¡œê·¸ 출력결과를 확ì¸í•˜ì„¸ìš”</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">중지(&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier가 실행 중 입니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier가 실행 중 입니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrierê°€ 실행 중ì´ì§€ 않습니다.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">알수없ìŒ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">barriers 설정 íŒŒì¼ íƒìƒ‰</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">ì„¤ì •ì„ ë‹¤ë¥¸ ì´ë¦„으로 저장...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">ì €ìž¥ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">설정 ì‚¬í•­ì„ íŒŒì¼ì— 저장할 수 없습니다.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">화면 ì´ë¦„:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">서버 IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">시작(&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">기존 ì„¤ì •ì„ ì‚¬ìš©:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">설정 파ì¼(&amp;C):</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">찾아 보기(&amp;B)...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">ìƒí˜¸ìž‘ìš© 설정:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">서버 설정(&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">준비</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">로그</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">ì ìš©(&amp;A)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP 주소:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Barrierì— ê´€í•˜ì—¬(&amp;A)...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">종료(&amp;Q)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">종료</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">실행</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">중지(&amp;T)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">중지</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">ìƒíƒœ 보기(&amp;H)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">숨기기</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">숨기기</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">ë³´ì´ê¸°</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">ë³´ì´ê¸°</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">ì„¤ì •ì„ ë‹¤ë¥¸ ì´ë¦„으로 저장(&amp;A)...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">ìƒí˜¸ìž‘용으로 ìƒì„±ëœ 서버 ì„¤ì •ì„ íŒŒì¼ë¡œ 저장하기.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">설정</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">설정 편집</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">마법사 실행</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">ì´ë¦„ì—†ìŒ</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">시너지 설정</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier ì„¤ì •íŒŒì¼ (*.sgc);;모든 íŒŒì¼ (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier ì„¤ì •íŒŒì¼ (*.conf);;모든 íŒŒì¼ (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">시스템 트레ì´ë¥¼ 사용할 수 없어 종료합니다.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">스í¬ë¦° ì´ë¦„ì´ ë¹„ì—ˆìŠµë‹ˆë‹¤</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">스í¬ë¦° ëª…ì€ ë¹„ì›Œë‘˜ 수 없습니다. ì´ë¦„ì„ ìž…ë ¥í•˜ê±°ë‚˜ ëŒ€í™”ì°½ì„ ì·¨ì†Œí•˜ì„¸ìš”.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">별명과 ì¼ì¹˜í•˜ëŠ” 화면 ì´ë¦„</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">화면 ì´ë¦„ì€ ë³„ëª…ê³¼ ë™ì¼í•  수 없습니다. ë³„ëª…ì„ ì œê±°í•˜ê±°ë‚˜ 화면 ì´ë¦„ì„ ë°”ê¿”ì£¼ì„¸ìš”.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">화면 설정</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">화면 ì´ë¦„(&amp;N):</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">별칭(&amp;L)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">추가(&amp;A)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">삭제(&amp;R)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">보조 키(&amp;M)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">메타</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">슈í¼</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">ì—†ìŒ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">메타(&amp;M):</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">슈í¼(&amp;U):</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">사용하지 않는 모서리(&amp;D)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">ìƒë‹¨ 왼쪽</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">ìƒë‹¨ 오른쪽</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">하단 왼쪽</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">하단 오른쪽</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">모서리 í¬ê¸°(&amp;Z)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">ê³ ì •(&amp;F)</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">CAPS LOCK 키 고정</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">NUM LOCK 키 고정</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">SCROLL LOCK 키 고정</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Xinerama를 위한 XTest 고정</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;화면: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;ì„¤ì •ì„ íŽ¸ì§‘í•˜ë ¤ë©´ ë”블í´ë¦­&lt;br&gt;삭제하려면 휴지통으로 드래그 하세요</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">서버 설정</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">화면과 ë§í¬</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">삭제하려면 í™”ë©´ì„ íœ´ì§€í†µìœ¼ë¡œ 드래그 하세요.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Barrier 서버 구성과 ë ˆì´ì•„ì›ƒì„ ì„¤ì •í•˜ì„¸ìš”.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">새로운 í™”ë©´ì„ ì¶”ê°€í•˜ë ¤ë©´ ì´ ë²„íŠ¼ì„ ê²©ìž ì•ˆìœ¼ë¡œ 드래그 하세요.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">새로운 í™”ë©´ì„ ì¶”ê°€í•˜ë ¤ë©´ ìƒë‹¨ì˜ í™”ë©´ì„ ê²©ìž ì•ˆìœ¼ë¡œ 드래그 하세요.
+í™”ë©´ì„ ì‚­ì œí•˜ë ¤ë©´ 휴지통으로 드래그 하세요.
+화면 ì„¤ì •ì„ íŽ¸ì§‘í•˜ë ¤ë©´ ë”블í´ë¦­ 하세요.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">단축키</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">단축키(&amp;H)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">ìƒì„±(&amp;N)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">편집(&amp;E)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">삭제(&amp;R)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">í–‰ë™(&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">ìƒì„±(&amp;W)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">편집(&amp;D)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">삭제(&amp;M)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">고급 설정</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">전환(&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">대기 후 전환(&amp;A)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">지정시간 ì•ˆì— ë”블 탭으로 전환(&amp;T)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">옵션(&amp;O)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">지정 시간마다 í´ë¼ì´ì–¸íЏ 확ì¸(&amp;C)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">ìƒëŒ€ì ì¸ 마우스 ì´ë™ 사용(&amp;R)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">스í¬ë¦°ì„¸ì´ë²„ ë™ê¸°í™”(&amp;Y)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">í´ë¼ì´ì–¸íŠ¸ë¡œ ì „í™˜ì‹œí•´ë„ ì„œë²„ì˜ í¬ì»¤ìФ ë°©ì§€ (전체화면 작업중 í´ë¼ì´ì–¸íŠ¸ë¡œ ì „í™˜í•´ë„ ì „ì²´í™”ë©´ì´ ìœ ì§€ë˜ë©°, 서버ì—서 전체화면 중 최소화 후 í´ë¼ì´ì–¸íЏ 전환시 ì „ì²´í™”ë©´ì„ ë°©ì§€)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">사용하지 않는 모서리(&amp;D)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">ìƒë‹¨ 왼쪽(&amp;P)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">ìƒë‹¨ 오른쪽(&amp;H)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">하단 왼쪽(&amp;B)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">하단 오른쪽(&amp;G)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">모서리 í¬ê¸°(&amp;N):</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">로그 íŒŒì¼ ì €ìž¥í•˜ê¸°...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Barrier 승급</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Barrierì˜ ê¶Œí•œì„ ìŠ¹ê¸‰ 하시겠습니까?
+ì´ê²ƒì„ 허용하게 ë˜ë©´ Barrier와 ìŠ¹ê¸‰ëœ í”„ë¡œì„¸ìŠ¤, UAC 대화ìƒìžì™€ ìƒí˜¸ìž‘ìš© í•  수 있지만, 승급ë˜ì§€ ì•Šì€ í”„ë¡œì„¸ìŠ¤ë“¤ê³¼ 문제가 ìƒê¸¸ 수 있습니다. Barrier 권한 ìŠ¹ê¸‰ì€ ë°˜ë“œì‹œ 필요한 경우ì—ë§Œ 사용하세요.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">설정</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">화면 ì´ë¦„(&amp;R):</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">í¬íЏ(&amp;O):</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">ì¸í„°íŽ˜ì´ìФ(&amp;I):</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">로그 기ë¡</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">ê¸°ë¡ ìˆ˜ì¤€(&amp;L):</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">파ì¼ë¡œ 저장:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">찾아보기...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">오류</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">언어:(&amp;l)</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">기타</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">경고</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">알림</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">ì •ë³´</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">디버그</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">디버그1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">디버그2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">시너지 설정</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">ì˜µì…˜ì„ ì„ íƒí•˜ì„¸ìš”.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">ì´ë©”ì¼ ì£¼ì†Œ ë° ì•”í˜¸ë¥¼ 입력하세요.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">시너지 설정</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">환ì˜í•©ë‹ˆë‹¤.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">시너지를 설치하여 주셔서 ê°ì‚¬í•©ë‹ˆë‹¤.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier는 마우스와 키보드를 여러 ì»´í“¨í„°ì— ì‰½ê²Œ 공유하여 사용할 수 있게 해주는 무료 오픈 소스 프로그램입니다. 마우스를 한쪽 ì»´í“¨í„°ì˜ í™”ë©´ ë으로 옮기기만 하면 다른 ì»´í“¨í„°ì˜ í™”ë©´ìœ¼ë¡œ ì´ë™í•  수 있으며 í´ë¦½ë³´ë“œì˜ ë‚´ìš©ê¹Œì§€ë„ ê³µìœ í•  수 있습니다. 필요한 ê²ƒì€ ë‹¨ì§€ ë„¤íŠ¸ì›Œí¬ ì—°ê²° ë¿ì´ë©° Barrier는 여러 플랫í¼(Windows와 Mac OS X, Linux)ì—서 사용할 수 있습니다. </translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">서버 ë˜ëŠ” í´ë¼ì´ì–¸íЏ?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">알수없ìŒ</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">로그ì¸ì— 실패했습니다. ì „ìžë©”ì¼ ë˜ëŠ” 암호가 잘못ë˜ì—ˆìŠµë‹ˆë‹¤.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">로그ì¸ì— 실패했습니다. 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">로그ì¸ì— 실패했습니다. 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.
+서버 ì‘ë‹µì€ ë‹¤ìŒê³¼ 같습니다:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_lt.qm b/src/gui/res/lang/gui_lt.qm
new file mode 100644
index 0000000..10a7a05
--- /dev/null
+++ b/src/gui/res/lang/gui_lt.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_lt.ts b/src/gui/res/lang/gui_lt.ts
new file mode 100644
index 0000000..45713fb
--- /dev/null
+++ b/src/gui/res/lang/gui_lt.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="lt" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Gerai</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">kairÄ—</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">dešinė</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">viršus</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">apaÄia</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">ijungta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">Išiungta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">PradÄ—ti</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Pagalba</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Stabdyti</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">Serverio IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">PradÄ—ti</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP adresas:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Rodyti</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Rodyti</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Klaida</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Įspėjimas</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informacija</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier leis jums dalintis jūsų pelė ir klaviatūra tarp kompiuterių ir tai nieko nekainuoja ir tai Open Source. Tiesiog perkelkite pelę iš vieno kompiuterio ekrano krašto į kitą. Netgi galite dalintis Clipbourdų. Viskas ko jums reikia, yra tinklo sujungimas. Barrier yra cross-platform dirba ant Windows, Mac OS X ir Linux.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_lv.qm b/src/gui/res/lang/gui_lv.qm
new file mode 100644
index 0000000..908d8c4
--- /dev/null
+++ b/src/gui/res/lang/gui_lv.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_lv.ts b/src/gui/res/lang/gui_lv.ts
new file mode 100644
index 0000000..e53cf7d
--- /dev/null
+++ b/src/gui/res/lang/gui_lv.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="lv" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">InformÄcija</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier ļauj tev viegli izmantot savu peli un klaviatÅ«ru vairÄkos datoros vienlaicÄ«gi, un tÄ ir bezmakas un atvÄ“rtÄ koda programma. VienkÄrÅ¡i virzi kursoru no viena datora ekrÄna malas uz cita datora ekrÄnu. ArÄ« starpliktuve var bÅ«t kopÄ«ga. VienÄ«gais, kas tev nepiecieÅ¡ams, ir tÄ«kla savienojums. Barrier darbojas uz dažÄdÄm operÄ“tÄjsistÄ“mÄm – Windows, OS X un Linux.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_mr.qm b/src/gui/res/lang/gui_mr.qm
new file mode 100644
index 0000000..6b0c47d
--- /dev/null
+++ b/src/gui/res/lang/gui_mr.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_mr.ts b/src/gui/res/lang/gui_mr.ts
new file mode 100644
index 0000000..028005d
--- /dev/null
+++ b/src/gui/res/lang/gui_mr.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="mr" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">सिनरà¥à¤œà¥€ बदà¥à¤¦à¤²</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">आवृतà¥à¤¤à¥€:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;ठीक</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">कृती निवडा</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">हॉटकी दाबा</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">हॉटकी सो़डा</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">हॉटकी दाबून सोडा</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">केवळ या पडदà¥à¤¯à¤¾à¤‚वरच</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">पडदà¥à¤¯à¤¾à¤•डे वळा</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">दिशेला वळा</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">डावे</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">उजवे</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">वर</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">खाली</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">करà¥à¤¸à¤° पडदà¥à¤¯à¤¾à¤¶à¥€ बदà¥à¤§ करा </translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">टॉगल</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">चालू</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">बंद</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">ही कृती केली जाते जेवà¥à¤¹à¤¾</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">हॉटकी दाबली गेली आहे</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">हॉटकी सोडणà¥à¤¯à¤¾à¤¤ आली आहे</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">हॉटकी</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">हॉटकीचे तपशील पà¥à¤°à¤µà¤¾:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;फाईल</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;बदल</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;खिडकी</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;मदत</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">कारà¥à¤¯à¤•à¥à¤°à¤® सà¥à¤°à¥‚ होऊ शकला नाही.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;बदल</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">&amp;भाषा:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">माहिती</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">सà¥à¤µà¤¾à¤—तमà¥</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">सिनरà¥à¤œà¥€ इनà¥à¤¸à¥à¤Ÿà¥‰à¤² केलà¥à¤¯à¤¾à¤¬à¤¦à¥à¤¦à¤² धनà¥à¤¯à¤µà¤¾à¤¦.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">सिनरà¥à¤œà¥€ सह तà¥à¤®à¥à¤¹à¥€ तà¥à¤®à¤šà¤¾ कीबोरà¥à¤¡ आणि माऊस अनेक संगणकांसमवेत वापरू शकता. à¤à¤•ा पडदà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ कडेतून माऊस दà¥à¤¸à¤±à¥à¤¯à¤¾ पडदà¥à¤¯à¤¾à¤µà¤° नेऊ शकता, सामाईक कà¥à¤²à¤¿à¤ªà¤¬à¥‹à¤°à¥à¤¡ वारू शकता. आवशà¥à¤¯à¤•ता आहे ती केवळ à¤à¤•ा नेटवरà¥à¤• कनेकà¥à¤¶à¤¨à¤šà¥€. सिनरà¥à¤œà¥€ मोफत आहे, मà¥à¤•à¥à¤¤ सà¥à¤°à¥‹à¤¤ आहे आणि अनेक पà¥à¤°à¤£à¤¾à¤²à¥à¤¯à¤¾à¤‚वर चालू शकते. (विंडोज, मॅक ओ-à¤à¤¸ à¤à¤•à¥à¤¸ आणि लिनकà¥à¤¸)</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_nl-NL.qm b/src/gui/res/lang/gui_nl-NL.qm
new file mode 100644
index 0000000..b467c66
--- /dev/null
+++ b/src/gui/res/lang/gui_nl-NL.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_nl-NL.ts b/src/gui/res/lang/gui_nl-NL.ts
new file mode 100644
index 0000000..2eabfbb
--- /dev/null
+++ b/src/gui/res/lang/gui_nl-NL.ts
@@ -0,0 +1,1410 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="nl-NL" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Over Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Onbekend</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versie:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Configureer Actie</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Kies de uit te voeren actie</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Druk op een sneltoets</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Laat een sneltoets los</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Druk op een sneltoets en laat los</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">alleen op deze schermen</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Naar scherm gaan</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Verander in een bepaalde richting</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">links</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">rechts</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">omhoog</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">omlaag</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Vergrendel muis op scherm</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">wissel</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">aan</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">uit</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Deze actie wordt uitgevoerd wanneer</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">de sneltoets is ingedrukt</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">de sneltoets is losgelaten</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Sneltoets</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Voer de specificatie voor de sneltoets in:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Bestand</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Bewerken</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Venster</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Help</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt; Uw versie van Barrier is verouderd. Versie &lt;b&gt;%1&lt;/b&gt; is nu beschikbaar om te &lt;a href=&quot;%2&quot;&gt;downloaden&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Het programma kan niet worden gestart</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">De uitvoering van &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;kon niet succesvol worden uitgevoerd, hoewel het bestaat. Verifieer eerst of u de nodige rechten heeft om het programma uit te voeren.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">De Barrier client is niet gevonden</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">De executable voor de Barrier client bestaat niet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Hostnaam is leeg</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Vul a.u.b. een hostnaam in voor de Barrier client om mee te verbinden.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Kan configuratiebestand niet aanmaken</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Het tijdelijke configuratiebestand om Barrier te starten kan niet geschreven worden.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">De bestandsnaam van de configuratie is ongeldig</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">U heeft een ongeldig configuratiebestand ingegeven voor de Barrier server. Wilt u nu een configuratiebestand opgeven?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier server is niet gevonden</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">De executable voor de Barrier client bestaat niet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier werd afgesloten met een error</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier werd onverwachts afgesloten met de volgende exit code: %1.&lt;br&gt;&lt;br&gt;. Raadpleeg de log voor meer details.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Stop</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier wordt gestart.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier is actief.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier is niet actief.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Onbekend</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Open een Barrier configuratiebestand</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Sla configuratie op als...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Opslaan is mislukt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Kon configuratie niet opslaan naar bestand.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Schermnaam:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">Server IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Gebruik bestaande configuratie:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Configuratiebestand:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Bladeren...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configureer grafisch:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Configureer Server...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Klaar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Log</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Toep&amp;assen</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP adres:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;Over Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Sluiten</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Sluit</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">S&amp;top</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">T&amp;oon Status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Verberg</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Verberg</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Toon</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Toon</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Configuratie opslaan &amp;als...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Sla de grafisch gemaakte serverconfiguratie naar een bestand op.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Instellingen</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Wijzig instellingen</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Start Wizard</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Naamloos</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier configureren</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier Configuratie (*.sgc);;Alle bestanden (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier configuratie (*.conf);;Alle bestanden (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Taakbalk is niet beschikbaar, Barrier wordt afgesloten.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Schermnaam is leeg</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">De schermnaam kan niet leeg zijn. Geef een naam in of annuleer het venster.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Schermnaam komt overeen met alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">De schermnaam kan niet hetzelfde zijn als een alias. Verwijder of de alias of verander de schermnaam.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Scherm Instellingen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Scherm &amp;naam:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">A&amp;liassen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Nieuw</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Verwijderen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Prefixtoetsen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Geen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Dode hoeken</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Linksboven</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Rechtsboven</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Linksonder</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Rechtsonder</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">&amp;Grootte:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Fixes</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Fix CAPS LOCK toets</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Fix NUM LOCK toets</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Fix SCROLL LOCK toets</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Fix XTest voor Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Scherm: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dubbelklik om instellingen te wijzigen&lt;br&gt;Sleep een scherm naar de prullenbak om het te verwijderen</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Server configuratie</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Schermen en links</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Sleep een scherm naar de prullenbak om het te verwijderen.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configureer de layout voor de server configuratie.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Sleep dit icoon naar het raster om een nieuw scherm toe te voegen.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Sleep nieuwe schermen naar het raster of verplaats bestaande schermen.
+Sleep een scherm naar de prullenbak om het te verwijderen.
+Dubbelklik op een scherm om zijn instellingen aan te passen.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Sneltoetsen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Sneltoetsen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Nieuw</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Bewerken</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Verwijderen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">A&amp;cties</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Nieu&amp;w</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Aanpa&amp;ssen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Verwijderen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Geavanceerde server instellingen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Wissel</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Verander na wachten</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Verander na een dubbele klik in</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Opties</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">&amp;Controleer clients elke</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Gebruik &amp;relatieve muis bewegingen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">S&amp;ynchronizeer schermbeveiliging</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Wordt geen actief venster op Windows Servers</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Dode hoeken</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Linksboven</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Rechtsboven</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Linksonder</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Rechtsonder</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Hoek Grootte:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Schrijf logbestand naar...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Verhoog Barrier's Privileges</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Weet je zeker dat je Barrier's privileges wil verhogen? Dit staat interactie toe met verhoogde processen en het UAC venster, maar kan problemen veroorzaken met niet-verhoogde processen. Verhoog Barrier alleen als het noodzakelijk is.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Instellingen</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Scherm naam:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Poort:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;Interface:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Loggen</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Log niveau:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Log naar bestand:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">&amp;Bladeren...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Fout</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Taal:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Overige</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Waarschuwing</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Opmerking</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier configureren</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Selecteer alstublieft een optie.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Vul uw e-mailadres en wachtwoord in.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier configureren</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Welkom</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Bedankt voor het installeren van Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Met Barrier kunt u eenvoudig uw muis en toetsenbord delen tussen meerdere computers op uw bureau. Bovendien is het gratis en Open Source. Beweeg uw muis over de rand van het scherm van de ene computer naar de andere. U kunt zelfs al uw klemborden delen. Het enige wat u nodig hebt is een netwerkverbinding. Barrier is cross-platform (werkt op Windows, Mac OS X en Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server of Client?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Onbekend</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Inloggen mislukt, ongeldige gebruikersnaam of wachtwoord.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Inloggen mislukt, er is een fout opgetreden.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Inloggen mislukt, er is een fout opgetreden.
+Foutmelding:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_no.qm b/src/gui/res/lang/gui_no.qm
new file mode 100644
index 0000000..6ebf434
--- /dev/null
+++ b/src/gui/res/lang/gui_no.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_no.ts b/src/gui/res/lang/gui_no.ts
new file mode 100644
index 0000000..42d5b95
--- /dev/null
+++ b/src/gui/res/lang/gui_no.ts
@@ -0,0 +1,1412 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="no" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Om Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Ukjent</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versjon:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Konfigurer handlingen</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Velg handling å utføre</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Trykk en hurtigtast</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Slipp en hurtigtast</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Trykk og slipp en hurtigtast</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">kun på disse skjermene</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Bytt til skjerm</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Bytt i retning</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">høyre</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">opp</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">ned</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">LÃ¥s peker til skjerm</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">veksle</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">på</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">av</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Denne handlingen blir utført når</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">hurtigtasten trykkes</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">hurtigtasten slippes</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Hurtigtast</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Angi spesifikasjon for hurtigtast:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Fil</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Rediger</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Vindu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Hjelp</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Din Barrier-versjon er utdatert. Versjon &lt;b&gt;%1&lt;/b&gt; er nå tilgjengelig for &lt;a href=&quot;%2&quot;&gt;nedlasting&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Programmet kan ikke starte</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Programfilen &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt; kunne ikke startes riktig, selv om den finnes. Sjekk at du har tilstrekkelige rettigheter til å kjøre dette programmet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Finner ikke Barrier klient</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Programfilen for Barrier-klienten finnes ikke</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Vertsnavn er tomt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Vennligst fyll inn et vertsnavn for Barrier-klienten å koble til.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Kan ikke skrive konfigurasjonsfil</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Den midlertidige oppsettsfilen, som er nødvendig for å starte Barrier, kan ikke opprettes.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Konfigurasjons-filnavn ugyldig</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Du har ikke lagt inn en gyldig oppsettsfil for barrier-tjeneren. Vil du velge oppsettsfilen nå?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Finner ikke Barrier server</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Programfilen for barrier-tjeneren finnes ikke.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier stoppet med en feil</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier stoppet uventet med kode %1.&lt;br&gt;&lt;br&gt;Se i loggen for detaljer.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Stopp</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier starter</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier kjører</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier kjører ikke</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Ukjent</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Velg en oppsettsfil for barriers.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Lagre oppsettet som ...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Kunne ikke lagre</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Kunne ikke lagre oppsettsfilen.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Skjermnavn:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">&amp;Tjener-IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Bruk eksisterende oppsett:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Oppsettsfil:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Velg...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Sett opp interaktivt:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Sett opp tjener...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Klar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Logg</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Bruk</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP-adresser:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;Om Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Avslutt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Avslutt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Kjør</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">S&amp;topp</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stopp</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">&amp;Vis Status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Skjul</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Skjul</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Vis</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Vis</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">L&amp;agre oppsettet som ...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Lagre det interaktivt opprettede tjener-oppsettet til en fil.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Innstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Endre innstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Kjør Veiledning</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Uten navn</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Konfigurer Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier-oppsett (*.sgc);;Alle filer (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier-oppsett (*.conf);;Alle filer (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Systemstatusfeltet er utilgjengelig - avslutter.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Skjermnavnet er tomt</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Skjermnavnet kan ikke stå tomt. Vennligst fyll inn et navn eller lukk dialogen.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Skjermnavn er likt alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Skjermnavnet kan ikke være likt som et alias. Vennligst fjern aliaset eller endre skjermnavnet.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Skjerminnstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Skjerm&amp;navn:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">A&amp;liaser</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Legg til</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Fjern</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Spesialtaster</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Ingen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Døde hjørner</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Øverst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Øverst til høyre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Nederst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Nederst til høyre</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Hj&amp;ørnestørrelse</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">&amp;Rettelser</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Fiksér CAPS LOCK tast</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Fiksér NUM LOCK tast</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Fiksér SCROLL LOCK tast</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Fiksér XTest for Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Skjerm: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dobbeltklikk for å endre innstillinger&lt;br&gt;Dra skjermen til søppelbøtta for å fjerne den</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Tjener-konfigurasjon</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Skjermer og koblinger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Dra en skjerm fra oppsettet til søppelbøtta for å fjerne den.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Konfigurer oppsettet for din Barrier tjener-konfigurasjon.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Dra denne knappen til oppsettet for å legge til en ny skjerm.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Dra nye skjermer til oppsettet eller flytt rundt på de eksisterende.
+Dra en skjerm til søppelbøtta for å fjerne den.
+Dobbeltklikk en skjerm for å endre dens innstillinger.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Hurtigtaster</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Hurtigtaster</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Ny</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Rediger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Fjern</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">&amp;Handlinger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">N&amp;y</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">En&amp;dre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">&amp;Fjern</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Avanserte tjener-innstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Bytt</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Bytt etter å ha ventet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Bytt ved dobbel berøring innen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Alternativer</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Kontroller klienter hvert</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Bruk relative musebevegelser</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Synkroniser skjermsparere</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Ikke overta som forgrunnsvindu på Windowstjenere</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Døde hjørner</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Øverst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Øverst til høyre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Nederst til venstre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Nederst til høyre</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Hjørnestørrelse:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Lagre loggfil til...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Hev Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Er du sikker på at du vil gi Barrier forhøyede rettigheter?
+Dette tillater Barrier å kommunisere med forhøyede prosesser og UAC dialoger. Dette kan føre til problemer med normale prosesser. Bruk dette kun om du må.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Innstillinger</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Skjermnavn</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Port:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Grensesnitt:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Logging</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Loggingnivå:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Logg til fil</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Velg...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Feil</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Språk:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">&amp;Diverse</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Advarsel</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Merknad</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Feilsøk</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Feilsøk1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Feilsøk2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Konfigurer Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Vennligst velg et alternativ.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Vennligst fyll inn e-postadresse og passord.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Konfigurer Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Velkommen</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Takk for at du installerte Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier kan du enkelt dele dine mus og tastatur mellom flere datamaskiner på skrivebordet, og det er gratis og Open Source. Bare flytte musen utenfor kanten av en datamaskin skjerm til en annen. Du kan også dele alle dine oppslagstavler. Alt du trenger er en nettverksforbindelse. Barrier er cross-platform (fungerer på Windows, Mac OS X og Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Tjener eller Klient?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Ukjent</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Innlogging feilet, ugyldig e-post eller passord.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Innlogging mislykket, en feil oppsto.
+
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Innlogging mislykket, en feil oppsto.
+Svar fra tjener:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_pes-IR.qm b/src/gui/res/lang/gui_pes-IR.qm
new file mode 100644
index 0000000..b900f31
--- /dev/null
+++ b/src/gui/res/lang/gui_pes-IR.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_pes-IR.ts b/src/gui/res/lang/gui_pes-IR.ts
new file mode 100644
index 0000000..d4a0f91
--- /dev/null
+++ b/src/gui/res/lang/gui_pes-IR.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="pes-IR" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">ویراست:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">Ú†Ù¾</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">راست</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">بالا</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">پایین</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">روشن</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">خاموش</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">خروج</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">اجرا</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">توقÙ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">تنظیمات</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">ویرایش تنظیمات</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">بی نام</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">تنظیمات</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_pl-PL.qm b/src/gui/res/lang/gui_pl-PL.qm
new file mode 100644
index 0000000..4b024ad
--- /dev/null
+++ b/src/gui/res/lang/gui_pl-PL.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_pl-PL.ts b/src/gui/res/lang/gui_pl-PL.ts
new file mode 100644
index 0000000..9fef7f3
--- /dev/null
+++ b/src/gui/res/lang/gui_pl-PL.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="pl-PL" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">O Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Nieznane</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Wersja:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Konfiguruj akcje</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Wybierz akcjÄ™ do wykonania</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Wciśnij klawisz</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Zwolnij klawisz</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Wciśnij i zwolnij klawisz</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">tylko na tych ekranach</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Przejdź do ekranu</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Przełącz w kierunku</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">w lewo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">w prawo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">w górę</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">w dół</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Zablokuj kursor myszki dla danego ekranu</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">przełącz</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">wł.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">wył.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Ta akcja jest wykonywana gdy</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">klawisz skrótu jest wciśnięty</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">klawisz skrótu jest zwolniony</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Klawisz skrótu</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Wprowadź opis dla skrótu klawiszowego:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Plik</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Edytuj</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Okno</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Pomoc</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Dostępna jest wersja %1, &lt;a href=&quot;%2&quot;&gt;odwiedź stronę internetową&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Nie można uruchomić programu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Plik wykonawczy&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;nie został poprawnie uruchomiony, mimo, że istnieje. Proszę sprawdzić czy dane konto posiada odpowiednie uprawnienia do uruchomienia wskazanej aplikacji.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Klient Barrier nie został odnaleziony</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Plik wykonywalny klienta barrier nie istnieje</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Pole &quot;Nazwa hosta&quot; jest puste</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Wypełnij nazwę hosta do której ma się podłączyć klient barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Nie można zapisać pliku konfiguracyjnego</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Nie można zapisać tymczasowego pliku konfiguracyjnego wymaganego do uruchomienia barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Niewłaściwa nazwa pliku konfiguracyjnego</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Nie podałeś poprawnego pliku konfiguracji potrzebnego do uruchomienia serwera barrier. Czy chcesz wskazać ten plik teraz?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Nie znaleziono serwera Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Plik wykonywalny serwera barrier nie istnieje</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier zostało zatrzymane z błędem</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier zakończył działanie w sposób nieoczekiwany, kod wyjścia %1 (exit code). &lt;br&gt;&lt;br&gt;Więcej szczegółów w pliku logów wyjściowych.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier jest uruchamiane.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier uruchomione.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier nie uruchomione.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Nieznane</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Wskaż plik konfiguracyjny barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Zachowaj konfigurację jako…</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Błąd zapisu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Nie można zapisać konfiguracji do pliku.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nazwa ekranu:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP &amp;serwera</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Użyj istniejącej konfiguracji:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Plik konfiguracyjny:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Wyszukaj...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Konfiguruj interaktywnie:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Konfiguruj Serwer...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Gotowe</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Log</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Zastosuj</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Adresy IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">O Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Zakończ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Zakończ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Uruchom</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Zatrzymaj</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Zatrzymaj</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Pokaż status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Ukryj</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Ukryj</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Pokaż</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Pokaż</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Zapisz konfiguracjÄ™ jako...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Zapisz interaktywnie wygenerowanÄ… konfiguracjÄ™ serwera do pliku.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Ustawienia</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Edytuj ustawienia</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Uruchom Kreatora</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Nienazwany</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Konfiguracja Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Konfiguracje Barrier (*.sgc);;Wszystkie pliki (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Konfiguracje Barrier (*.conf);;Wszystkie pliki (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Tacka systemowa niedostępna, zamykanie…</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Nazwa ekranu jest pusta</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Nazwa ekranu nie może być pusta. Wprowadź nazwę lub anuluj to okno dialogowe.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Nazwa ekranu odpowiada aliasowi</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Nazwa ekranu nie może być taka sama jak alias. Usuń alias lub zmień nazwę ekranu.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Ustawienia ekranu</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Nazwa ekranu:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Aliasy</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Dodaj</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Usuń</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Klawisze &amp;modyfikujÄ…ce</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Żaden</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Narożniki nieczynne</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Lewy-górny</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Prawy-górny</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Lewy-dół</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Prawy-dół</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Wielkość narożników:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Poprawki</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Napraw przycisk CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Napraw przycisk NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Napraw przycisk SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Napraw XTest w Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Ekran: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Kliknij dwukrotnie, aby edytować ustawienia&lt;br&gt;Przeciągnij ekran do kosza, aby go usunąć</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Konfiguracja serwera</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Ekrany i połączenia</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Przeciągnij ekran z siatki do kosza, aby go usunąć.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Konfiguracja układu serwera barrier.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Żeby dodać nowy ekran, przesuń ten przycisk na siatkę.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">PrzeciÄ…gnij nowe ekrany na siatkÄ™ lub przenoÅ› istniejÄ…ce.
+Przeciągnij ekran do kosza, aby go usunąć.
+Kliknij dwukrotnie w ekran, aby edytować jego ustawienia.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Skróty klawiszowe</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Skróty klawiszowe</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Nowy</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Edytuj</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Usuń</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">A&amp;kcje</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">No&amp;wy</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">E&amp;dytuj</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">U&amp;suń</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Zaawansowane ustawienia serwera</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;Przełącz</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Przełącz &amp;po odczekaniu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Przełącz po &amp;podwójnym stuknięciu w</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Opcje</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">&amp;Sprawdź klientów co każde</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Użyj &amp;względnych ruchów myszki</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">S&amp;ynchronizuj wygaszacze ekranu</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Nie zmieniaj statusu okna na &amp;wierzch w systemie Windows.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Narożniki nieczynne</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Górny-lewy</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Górny-prawy</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Dolny-lewy</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Dolny-prawy</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Wielkość narożnika:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Zapisz logi do...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Zwiększ uprawnienia Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Czy jesteś pewien, żeby podnieść uprawnienia Barrier?
+Pozwoli to Barrier współpracować z innymi aplikacjami o podniesionych uprawnieniach oraz systemem UAC, ale może stwarzać problemy z aplikacjami bez podniesionych uprawnień. Podnoś uprawnienia tylko w sytuacji, gdy naprawdę tego potrzebujesz.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Ustawienia</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Nazwa ekranu:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Port:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Interfejs:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Logowanie</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Poziom logowania:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Zapisuj logi do pliku:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">PrzeglÄ…daj...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Błąd</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Język</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">&amp;Różności</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Ostrzeżenie</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Uwaga</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Debug</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Debug1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Konfiguracja Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Proszę wybrać opcję,</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Proszę wprowadzić swój adres e-mail i hasło.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Konfiguracja Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Witaj!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Dziękujemy za zainstalowanie Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier pozwala w łatwy sposób dzielić się myszką i klawiaturą pomiędzy wieloma komputerami na Twoim biurku, jest darmowe i Open Source. Wystarczy przesunąć kursor myszy poza krawędź jednego monitora aby przejść na monitor innego komputera. Możesz nawet dzielić wszystkie swoje schowki. Potrzebujesz do tego tylko połączenia z siecią. Barrier jest wieloplatformowe (działa na Windows, Mac OS X i Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Klient czy Serwer?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Nieznane</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Logowanie nie powiodło się - błędny email lub hasło.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Logowanie nie powiodło się, wystąpił błąd.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Logowanie nie powiodło się, wystąpił błąd.
+Odpowiedź serwera:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_pt-BR.qm b/src/gui/res/lang/gui_pt-BR.qm
new file mode 100644
index 0000000..d335d9e
--- /dev/null
+++ b/src/gui/res/lang/gui_pt-BR.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_pt-BR.ts b/src/gui/res/lang/gui_pt-BR.ts
new file mode 100644
index 0000000..802551b
--- /dev/null
+++ b/src/gui/res/lang/gui_pt-BR.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="pt-BR" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Sobre o Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconhecido</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versão:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Configurar Ação</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Escolha a ação a ser executada</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Pressione a tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Solte a tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Pressione e solte a tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">somente nessas telas</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Mude para tela</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Mude de direção</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">esquerda</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">direita</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">acima</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">abaixo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Travar cursor na tela</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">alternar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">ligar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">desligar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Essa ação é executada quando</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">a tecla de atalho é pressionada</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">a tecla de atalho é solta</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Entre com a descrição da tecla de atalho:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Início</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Arquivo</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Editar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Janela</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Ajuda</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;A sua versão do Barrier está desatualizada. Versão &lt;b&gt;%1&lt;/b&gt; está disponível para &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Programa não pode ser iniciado</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">O executável &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;não pôde ser iniciado com êxito. Por favor, verifique se você tem permissões suficientes para executar este programa.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Cliente Barrier não foi encontrado.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">O executável para o cliente do barrier não existe.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Nome do servidor:</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Por favor, preencha um nome do servidor para o cliente Barrier se conectar.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Não foi possível gravar as configuração</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">O arquivo temporário de configuração, necessário para iniciar o Barrier, não pode ser gravado.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Nome do arquivo de configuração inválido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Você não preencheu um arquivo de configuração válido para o servidor do Barrier. Você quer procurá-lo agora?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Servidor do Barrier não foi encontrado</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">O executável para o servidor do barrier não existe.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier terminou com um erro</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier fechou inesperadamente retornando o código %1.&lt;br&gt;&lt;br&gt;Por favor veja o log para detalhes.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Parar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier foi iniciado.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier esta rodando.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier não esta rodando.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconhecido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Selecionar um arquivo de configuração barriers</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Gravar a configuração como...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Gravação falhou</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Não foi possível salvar a configuração no arquivo.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nome da tela:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP do servidor</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Início</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Usar a configuração existente:Use a configuração e</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Arquivo de configuração:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Navegar...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configurar interativamente:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Configurar servidor</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Pronto</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Registro</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Aplicar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Endereço ip:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Sobre o Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Sair</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Sair</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Rodar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Parar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Parar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Mostrar Status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Ocultar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Ocultar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Exibir</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Exibir</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Gravar a configuração como...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Salvar a configuração do servidor gerada dinamicamente para um arquivo.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Configurações</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Editar configurações</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Executar o assistente</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Sem nome</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Configurações do Barrier (*.sgc);;Todos os arquivos (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Configurações do Barrier (*.conf);;Todos os arquivos (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">A área de notificação não está disponível, saindo.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">O nome de exibição está vazio.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">O nome de exibição não pode ser vazio. Por favor preencha o nome ou cancele.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Nome de exibição corresponde o apelido</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Configurações da tela</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Nome da tela:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Apelidos</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Adicionar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Remover</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Teclas modificadoras</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Nenhuma</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Cantos</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Superior-esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Superior-direito</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Inferior-esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Inferior-direito</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Tamanho do Canto:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Correções</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Trava a tecla CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Trava a tecla CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Trava a tecla SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Corrigir XTest para o Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Tela: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Clique duplo para editar configurações&lt;br&gt;Arraste a tela para a lixeira para remove-la.</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Configuração do servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Telas e links</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Arraste uma tela para a lixeira para remove-la.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configure a disposição na sua configuração do servidor barrier.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Arraste este botão para o grid para adicionar uma nova tela.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Arrste novas telas para o grid ou mova as existentes.
+Arraste uma tela para a lixeira para remove-la.
+Clique duplo numa tela para editar as suas configurações.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Teclas de Atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Teclas de Atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Novo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">Editar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Remover</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Ações</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Novo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Editar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Remover</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Configurações avançadas de servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Trocar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Trocar após aguardar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Ligar em toque duplo dentro</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Opções</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Verificar os clientes a cada</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Usar movimentos relativo do mouse</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Sincronize proteções de tela</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Não tome janela de primeiro plano em servidores Windows</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Cantos</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Superior-esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Superior-direito</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Inferior-esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Inferior-direito</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Tamanho do Canto:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Salvar o arquivo de log em...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Elevar privilégios de execução do Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Você quer elevar os privilegios de execução do Barrier?
+Isso permite ao Barrier interagir com processos privilegiados e com o UAC, mas pode causar problemas com processos sem privilégios. Eleve os privilégios de execução somente se você realmente precisar.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Configurações</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Nome de Exibição:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Porta:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Interface</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Registrando</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Nível do log:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Salvar log em:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Navegar...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Erro</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">&amp;Idioma:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">Diversos</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Aviso</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Nota</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Depurar</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Depurar1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Depurar2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Por favor, selecione uma opção</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Por favor informe o seu endereço de e-mail e senha.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Bem-vindo</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Obrigado por instalar o Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier permite que você compartilhe seu mouse e teclado facilmente entre vários computadores na sua área de trabalho, além de ser gratuito e de código aberto. Basta mover o mouse para fora da borda da tela de um computador para outro. Você pode até mesmo compartilhar todas as suas áreas de transferência. Tudo que você precisa é de uma conexão de rede. Barrier é multiplataforma (funciona em Windows, Mac OS X e Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Servidor ou Cliente?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconhecido</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Falha no login, e-mail ou senha inválidos.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Falha no login, ocorreu um erro:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Erro no login, ocorreu um erro.
+Resposta do servidor:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_pt-PT.qm b/src/gui/res/lang/gui_pt-PT.qm
new file mode 100644
index 0000000..cda99e1
--- /dev/null
+++ b/src/gui/res/lang/gui_pt-PT.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_pt-PT.ts b/src/gui/res/lang/gui_pt-PT.ts
new file mode 100644
index 0000000..45a20a8
--- /dev/null
+++ b/src/gui/res/lang/gui_pt-PT.ts
@@ -0,0 +1,1407 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="pt-PT" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Acerca de Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconhecido</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versão</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Definir a ação</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Seleccionar a ação a executar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Pressionar uma tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Largar uma tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Pressionar e largar uma tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">apenas nestes ecrãs</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Mudar para o ecrã</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Mudar na direcção</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">esquerda</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">direita</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">cima</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">baixo</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Manter o cursor no ecrã</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">alternar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">ligado</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">desligado</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Esta ação é executada quando</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">a tecla de atalho é pressionada</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">a tecla de atalho é largada</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Tecla de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Coloque a descrição para a tecla de atalho</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Iniciar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Ficheiro</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Janela</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Ajuda</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;A tua versão do Barrier está desatualizada. Versão&lt;b&gt;%1&lt;/b&gt; está agora disponivel &lt;a href=&quot;%2&quot;&gt;para download&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">O programa não consegue iniciar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">O programa&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;, embora exista, não teve êxito a iniciar. Por favor, verifique se tem permissões suficientes para o executar.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">O cliente Barrier não foi encontrado</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">O executável de cliente de Barrier não existe</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">O nome de computador não está preenchido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Por favor coloque o nome de computador ao qual o cliente Barrier vai ligar-se</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Não foi possivel escrever no ficheiro de configuração</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Não foi possível escrever no ficheiro temporário de configuração de barrier, o qual é indispensável para o iniciar.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Ficheiro de configuração inválido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Não colocaste um ficheiro de configuração válido para o servidor de barrier. Queres seleccionar o ficheiro de configuração agora?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">O servidor de barrier não foi encontrado</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">O executável de servidor de barrier não existe.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier terminou com erro</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier terminou inesperadamente com o erro %1.&lt;br&gt;&lt;br&gt;Por favor, verifique o registo de log para mais detalhes.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Parar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier está a iniciar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier está em execução</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier não está em execução</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconhecido</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Seleccionar um ficheiro de configuração de barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Guardar a configuração como...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Falhou o registo</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Não foi possível guardar a configuração para o ficheiro.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nome do ecrã:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">&amp;IP do servidor:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Iniciar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Usar uma configuração guardada:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Ficheiro de &amp;configuração:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Explorar...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configuração interativa:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Configurar Servidor...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Pronto</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Registo de eventos</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Aplicar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Endereços IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">&amp;Acerca de Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Sair</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Sair</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Executar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">&amp;Parar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Parar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">M&amp;ostrar Estado</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Esconder</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Esconder</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Mostrar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Mostrar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Guardar a configuração &amp;como...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Guardar a configuração gerada interactivamente para um ficheiro.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Definições</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Alterar definições</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Usar assistente</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Sem nome</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Configuração de barrier (*.sgc);;Todos os ficheiros (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Configuração de barrier (*.conf);;Todos os ficheiros (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">A área de notificação não está disponivel disponivel, saindo.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">O nome do ecrã não foi definido</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">O nome do ecrã não pode estar vazio. Preenche a nome ou fecha a janela.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Configurações de ecrã</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">&amp;Nome do ecrã:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Nomes al&amp;ternativos</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Adicionar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Remover</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;Teclas de modulação</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Nenhum</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">S&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Cantos inacessíveis</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Canto superior esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Canto superior direito</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Canto inferior esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Canto inferior direito</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Di&amp;mensão do canto:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Co&amp;rrecções</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Corrigir a tecla CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Corrigir a tecla NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Corrigir a tecla SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Corrigir XTest para Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Ecrã: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;duplo clique para alterar as definições&lt;br&gt;Arrastar o ecrã para o lixo para o remover</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Configuração do servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Ecrãs e ligações</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Arrastar um ecrã da grelha para o lixo para o remover.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configurar a disposição na configuração do servidor de barrier</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Arrastar este botão para a grelha para adicionar um novo ecrã.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Arrastar novos ecrãs para a grelha ou mover os existentes.
+Arrastar um ecrã para o lixo para o remover.
+Faça duplo clique num ecrã para alterar as suas definições.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Teclas de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Teclas de atalho</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Novo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Remover</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">&amp;Ações</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">No&amp;vo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">&amp;Alterar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Re&amp;mover</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Definições avançadas do servidor</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;Alternar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Alternar &amp;após aguardar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Alternar ao tocar duas &amp;vezes em</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Opções</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">&amp;Verificar clientes a cada</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Utilizar movimentos &amp;relativos do rato</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">S&amp;incronizar protectores de ecrã</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Não tirar o &amp;foco da janela activa nos servidores Windows</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Cantos inacessíveis</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Canto su&amp;perior esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Canto superior &amp;direito</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Canto &amp;inferior esquerdo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Canto inferior direit&amp;o</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Dimensão do Ca&amp;nto:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Guardar ficheiro de registo de eventos para...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Elevar o Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Definições</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Nome do ecrã:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">P&amp;orto:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;Interface:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Registo de eventos</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">&amp;Nivel de registo:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Ficheiro de registo:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Explorar...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Erro</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">&amp;Linguagem:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Aviso</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Notificação</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informação</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Depuração</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Depuração1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Depuração2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Por favor selecciona uma opção.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurar Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Bem-vindo(a)</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Obrigado por instalares o Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier permite que uses o teu rato e teclado para controlar vários computadores na tua secretária em simultâneo, é gratuito e Open Source. Basta mover o rato para um lado ou para outro para mudar de ecrã. Podes até copiar e colar de um ecrã para o outro. Precisas apenas de uma ligação de rede. O Barrier é cross-platform (funciona em Windows, Mac OS X e Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Servidor ou Cliente?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Desconhecido</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_ro.qm b/src/gui/res/lang/gui_ro.qm
new file mode 100644
index 0000000..3e71663
--- /dev/null
+++ b/src/gui/res/lang/gui_ro.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_ro.ts b/src/gui/res/lang/gui_ro.ts
new file mode 100644
index 0000000..e79e83b
--- /dev/null
+++ b/src/gui/res/lang/gui_ro.ts
@@ -0,0 +1,1407 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="ro" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Sobre o Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Necunoscut</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versiune:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Confirmă Acțiunea</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Alege acțiunea pentru a o efectua</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Apasă o tastă rapidă</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Eliberează o tastă rapidă</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Apăsaţi şi eliberaţi o tastă rapidă</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">doar pe aceste ecrane</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Comută la ecran</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Comută în direcția</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">stânga</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">dreapta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">sus</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">jos</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Blochează cursorul la ecran</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">comută</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">Ligado</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">Desligado</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Această acțiune este executată când</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">o tastă rapidă este apăsată</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">o tastă rapidă este eliberată</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished"> Tastă rapidă</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Introdu specificație pentru tasta rapidă:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Fișier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editează</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Fereastră</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Ajutor</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Programul nu poate fi pornit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Executabilul&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;nu a putut fi pornit cu succes, deși există. Te rog verifică dacă ai suficiente permisiuni pentru a rula acest program.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Clientul Barrier nu poate fi găsit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Executabilul pentru clientul barrier nu există.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Numele gazdă este gol</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Te rog să complectezi numele de gazda pentru clientul barrier la care să te conectezi.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Fișierul de configurare nu poate fi scris</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Fișierul de configurare temporar necesar pentru a porni Barrier nu poate fi scris</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Arquivo de configuração inválido.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Nu ati completat un fişier de configurare valabil pentru serverul barrier. Doriţi să răsfoiţi pentru un fişierul de configurare acum?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Clientul Barrier nu poate fi găsit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Executabilul pentru clientul barrier nu există.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier terminou com um erro</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier a terminat în mod neaşteptat cu un cod %1.&lt;br&gt;&lt;br&gt;Vă rugăm să consultaţi jurnalul pentru detalii.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Stop</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier pornește.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier rulează.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier nu rulează.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Necunoscut</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Răsfoiţi pentru un fişierul de configurare barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Salvează configurația ca...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Salvare eșuată</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Nu sa putut salva configurația în fișier.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Nume de utilizator:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP-ul Server-ului:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Folosește configurație existentă:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Fișier de configurare:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Răsfoiește...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Configurare interactivă:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Configurează Server...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Gata</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Log</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Aplică</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">Adrese IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Despre Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Ieșire</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Ieșire</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Pornește</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stop</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Arată Statutul</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Ascunde </translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Ascunde </translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Afişează</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Afişează </translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Salvează configurația ca...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Salvaţi configuraţia generată interactiv a serverului într-un fişier.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Setări</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Editează setările</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Pornește Expertul</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Anonim</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurare Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Configurații Barrier (*.sgc);;Toate Fișierele (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Configurații Barrier (*.conf);;Toate Fișierele (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Bara de sistem nu este disponibilă, renunțați.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Numele de ecran este gol.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Setări de ecran</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Nume de ecran.</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Aliasuri</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;Adaugă</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Elimină</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Modificator de taste</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Nici unul</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">&amp;Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Colțuri moarte</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Stânga-sus</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Dreapta-sus</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Stânga-jos</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Dreapta-jos</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Mărimea colțurilor:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Corecții</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Corectrează tasta CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Corectrează tasta NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Corectrează tasta SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Corectează XTest pentru Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Ecran: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dublu click pentru editare de setări&lt;br&gt;Glisați ecranul către coșul de gunoi pentru al elimina</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Configurările Serverului</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Ecrane și legături</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Glisați un ecran de pe grilă către coșul de gunoi pentru al elimina.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Configurați aspectul serverului vostru barrier.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Glisați acest buton pe grilă pentru a adăuga un nou ecran.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Glisați ecrane noi pe grilă sau mută cele existente.
+Glisați un ecran către coșul de gunoi pentru al elimina.
+Click dublu pe un ecran pentru ai edita setările.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Taste rapide</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;Taste rapide</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Nou</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Editează</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;Elimină</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Acțiuni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Nou</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Editează</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Elimină</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Setari avansate server</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Comută</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Comută după o așteptare de</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Schimbă la atingere dubla în interiorul</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Opțiuni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Verifică clienți fiecare</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Folosește mișcări relative ale mouse-ului</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Sincronizare protector de ecran</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Nu luaţi fereastre de prim-plan pe servere Windows</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Colțuri moarte</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Stânga-sus</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Dreapta-sus</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Stânga-jos</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Dreapta-jos</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Mărime colțuri</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Salvează fișier jurnal pentru ...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Setări</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Nume ecran:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Port:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Interfață:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Logging</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Nivel logging</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Log în fișier</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Răsfoiește:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Eroare</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Limba:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Avertisment</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Notă</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informação</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Depanare</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Depanare1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Depanare2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurare Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Te rog selectează o opțiune.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Configurare Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Bine aţi venit</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Va multumim ca a-ti instalat Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier vă permite să partajaţi cu uşurinţă mouse-ul şi tastatura între mai multe computere de pe birou, si este gratuit şi open source. Doar mutaţi mouse-ul de pe marginea ecranului pe un calculator pe altul. Puteţi chiar partaja toate clipboarduri tale. Tot ce trebuie este o conexiune la reţea. Sinergia este cross-platform (funcţionează pe Windows, Mac OS X şi Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server sau Client?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Necunoscut</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_ru.qm b/src/gui/res/lang/gui_ru.qm
new file mode 100644
index 0000000..8ab5f1a
--- /dev/null
+++ b/src/gui/res/lang/gui_ru.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_ru.ts b/src/gui/res/lang/gui_ru.ts
new file mode 100644
index 0000000..08cc4cb
--- /dev/null
+++ b/src/gui/res/lang/gui_ru.ts
@@ -0,0 +1,1414 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="ru" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">О программе</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">ÐеизвеÑтно</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">ВерÑиÑ:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ок</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð´ÐµÐ¹ÑтвиÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Выберите дейÑтвие Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Ðажмите горÑчую клавишу</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">ОтпуÑтите горÑчую клавишу</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Ðажмите и отпуÑтите горÑчую клавишу</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">Только на Ñтих Ñкранах</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">ПереключитьÑÑ Ð½Ð° Ñкран</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">ПереключитьÑÑ Ð² направлении</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">влево</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">вправо</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">Вверх</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">Вниз</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Закрепить курÑор на Ñкран</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">Переключить</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">Включить</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">выкл.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Это дейÑтвие выполнÑетÑÑ ÐºÐ¾Ð³Ð´Ð°</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">горÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ° нажата</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">Отпущена горÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">ГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Введите опиÑание горÑчей клавиши</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Старт</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Файл</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Редактировать</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Окно</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Помощь</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt; Ваша верÑÐ¸Ñ Barrier уÑтарела. ВерÑÐ¸Ñ &lt;b&gt;%1&lt;/b&gt; доÑтупна Ð´Ð»Ñ &lt;a href=&quot;%2&quot;&gt;ÑкачиваниÑ&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Программа не может быть запущена</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Программа/файл &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt; Ðе может быть запущена, но она иÑправна. Проверьте - доÑтаточно ли у Ð²Ð°Ñ Ð¿Ñ€Ð°Ð² Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Клиент Barrier не найден</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">ИÑполнÑемый файл Ð´Ð»Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð° Barrier не найден</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Ð˜Ð¼Ñ Ñ…Ð¾Ñта пуÑто</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">ПожалуйÑта заполните Ð¸Ð¼Ñ Ñ…Ð¾Ñта в клиенте Barrier Ð´Ð»Ñ ÑоединениÑ.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Ðевозможно изменить конфигурационный файл</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Временный файл конфигурации, иÑпользующийÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Barrier, заблокирован Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° конфигурации неправильное</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Ð’Ñ‹ не указали правильный файл конфигурации Ñервера Barrier. Желаете указать его ÑейчаÑ?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Сервер Barrier не найден</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Ðе найден выполнÑемый файл Ð´Ð»Ñ Ñервера Barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier завершилаÑÑŒ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier завершилаÑÑŒ неожиданно Ñ ÐºÐ¾Ð´Ð¾Ð¼ выхода %1.&lt;br&gt;&lt;br&gt;ПожалуйÑта проÑмотрите log-файл Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Стоп</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier запуÑкаетÑÑ.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier работает.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier оÑтановлена.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">ÐеизвеÑтно</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Указать файл конфигурации Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Сохранить конфигурацию как...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Сохранение невозможно</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Ðе возможно Ñохранить файл конфигурации.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Ð˜Ð¼Ñ Ñкрана:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP Ñервера:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Старт</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">ИÑпользовать ÑущеÑтвующую конфигурацию:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Файл конфигурации:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Обзор...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">ÐвтоматичеÑÐºÐ°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">ÐаÑтроить Ñервер...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Готово</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Журнал</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Применить</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP адреÑа:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">О Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Выход</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Выход</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">ЗапуÑтить</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">ОÑтановить</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">ОÑтановить</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Показать ÑтатуÑ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Скрыть</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Скрыть</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Показать</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Показать</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Сохранить конфигурацию как..</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Сохранить автоматичеÑки генерированную конфигурацию в файл.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">ÐаÑтройки</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Изменить наÑтройки</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">ЗапуÑтить МаÑтер</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Без названиÑ</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">ÐаÑтроить Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Barrier (*.sgc);;Ð’Ñе файлы (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Barrier (*.conf);;Ð’Ñе файлы (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">СиÑтемный трÑй не доÑтупен, завершение программы.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Ð˜Ð¼Ñ Ñкрана пуÑтое</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Ðазвание не может быть пуÑтым. ПожалуйÑта, либо заполнить Ð¸Ð¼Ñ Ð¸Ð»Ð¸ отменить диалог.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Ð˜Ð¼Ñ Ñкрана:</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Ðазвание Ñкрана не может быть похожим, на ПÑевдоним. ПожалуйÑта удалите ПÑевдоним или поменÑйте Ð˜Ð¼Ñ Ñкрана</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">ÐаÑтройки Ñкрана</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Ð˜Ð¼Ñ Ñкрана:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">ПÑевдонимы</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Добавить</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Удалить</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Клавиши-модификаторы</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Ðет</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Мертвые углы</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Верхний левый</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Верхний правый</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Ðижний левый</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Ðижний правий</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Размер угла:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">ФикÑирование</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">ФикÑировать CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">ФикÑировать NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">ФикÑировать SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">ФикÑировать XTest Ð´Ð»Ñ Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Экран: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Двойной щелчок Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸&lt;br&gt;ПеретÑните Ñкран в корзину Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ñервера</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Экраны и ÑвÑзи</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">ПеретÑните Ñкран Ñ Ñетки в корзину чтобы удалить его.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">ÐаÑтроить раÑположение конфигурации Вашего Ñервера Barrier.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">ПеретÑните Ñту кнопку на Ñетку Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ñкрана.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">ПеретÑните новый Ñкран на Ñетку или передвиньте ÑущеÑтвующие.
+ПеретÑните Ñкран в корзину чтобы удалить его.
+Двойной щелчок на Ñкране Ð´Ð»Ñ ÐµÐ³Ð¾ конфигурации.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">ГорÑчие клавиши</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">&amp;ГорÑчие клавиши</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Ðовый</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Редактировать</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Удалить</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Де&amp;йÑтвиÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Ðо&amp;вый</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Ре&amp;дактировать</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Уда&amp;лить</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Дополнительные наÑтройки Ñервера</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">ПереключитÑÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">ПереключитÑÑ Ð¿Ð¾Ñле ожиданиÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">мÑек</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">ПереключитÑÑ Ð¿Ð¾ двойному нажатию в течении</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Опции</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">ПроверÑть клиентов ка&amp;ждые</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">ИÑпользовать &amp;родные наÑтройки курÑора</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">С&amp;инхронизировать заÑтавки</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Ðе держать окно Ñервера поверх вÑех (Ð´Ð»Ñ Windows)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Мертвые углы</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Верхний &amp;левый</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Верхний &amp;правый</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">&amp;Ðижний левый</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Ðижний правы&amp;й</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Раз&amp;мер угла:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Сохранить log-файл в...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">ПовыÑить привилегии Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ (Ð´Ð»Ñ UAC)</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Вы уверены что хотите повышать Barrier?
+Это позволит Barrier взаимодейÑтвовать Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐ°ÑŽÑ‰Ð¸Ð¼ процеÑÑом и UAC диалогом, но может вызвать проблемы Ñ Ð½ÐµÐ¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ процеÑÑами. Повышайте Synregy только еÑли Ñто дейÑтвительно необходимо.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">ÐаÑтройки</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Ð˜Ð¼Ñ Ñк&amp;рана:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">П&amp;орт:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Интер&amp;фейÑ:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Журнал</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Уровень запиÑи в журна?л:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">ЗапиÑывать журнал в файл:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Обзор...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Ошибка</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Язык:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">&amp;Разное</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Предупреждение</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Заметка</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">ИнформациÑ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Отладка</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Отладка1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Отладка2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">ÐаÑтроить Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">ПожалуйÑта, выберите опцию.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">ПожалуйÑта введите ваш Ð°Ð´Ñ€ÐµÑ Ñлектронной почты и пароль</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">ÐаÑтроить Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Добро пожаловать</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">СпаÑибо за уÑтановку Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier позволÑет вам проÑто и легко работать Ñ Ð¾Ð´Ð½Ð¸Ð¼ набором клавиатуры и мышки между неÑколькими компьютерами. Это беÑплатное приложение Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ иÑходным кодом. ПроÑто подведите курÑор за край Ñкрана. Ð’Ñ‹ также можете объединÑть буферы обмена. Ð’Ñе что вам нужно Ñто Ñетевое подключение. Barrier Ñто кроÑÑ-платформенное приложение, которое работает на Windows, Mac OS X и Linux.</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Сервер или Клиент?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">ÐеизвеÑтно</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">ÐÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ°, email или пароль введены Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Войти не удалоÑÑŒ, произошла ошибка.
+
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Войти не удалоÑÑŒ, произошла ошибка.
+
+Ответ Ñервера:
+
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_si.qm b/src/gui/res/lang/gui_si.qm
new file mode 100644
index 0000000..17ba794
--- /dev/null
+++ b/src/gui/res/lang/gui_si.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_si.ts b/src/gui/res/lang/gui_si.ts
new file mode 100644
index 0000000..cb56677
--- /dev/null
+++ b/src/gui/res/lang/gui_si.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="si" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Barrier à¶œà·à¶± විස්තර</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">වම</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">à¶‹à¶©</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">යට</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">à·€à·à¶©à·ƒà¶§à·„à¶± ඇරඹිය නොහà·à¶š</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">පෙන්වන්න </translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">නිර්නà·à¶¸à·’à¶š </translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">à¶­à·’à¶» à·ƒà·à¶šà·ƒà·”ම </translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">විස්තර </translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_sk-SK.qm b/src/gui/res/lang/gui_sk-SK.qm
new file mode 100644
index 0000000..b2abe68
--- /dev/null
+++ b/src/gui/res/lang/gui_sk-SK.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_sk-SK.ts b/src/gui/res/lang/gui_sk-SK.ts
new file mode 100644
index 0000000..aac1379
--- /dev/null
+++ b/src/gui/res/lang/gui_sk-SK.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="sk-SK" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informácie</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier vám umožní ľahko zdieľaÅ¥ myÅ¡ a klávesnicu medzi viacerými poÄítaÄmi na stole, je to zadarmo a Open Source. Len presunúť kurzor myÅ¡i mimo okraj jedného poÄítaÄa na obrazovke na ÄalÅ¡ie. Môžete dokonca zdieľaÅ¥ vÅ¡etky vaÅ¡e schránok. VÅ¡etko, Äo potrebujete, je pripojenie k sieti. Barrier je cross-platformové (práca na Windows, Mac OS X a Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_sl-SI.qm b/src/gui/res/lang/gui_sl-SI.qm
new file mode 100644
index 0000000..4c5ae79
--- /dev/null
+++ b/src/gui/res/lang/gui_sl-SI.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_sl-SI.ts b/src/gui/res/lang/gui_sl-SI.ts
new file mode 100644
index 0000000..2d4a49d
--- /dev/null
+++ b/src/gui/res/lang/gui_sl-SI.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="sl-SI" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">O Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Neznano</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">RazliÄica:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">V redu</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Neznano</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informacije</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Debug2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier omogoÄa preprosto souporabo miÅ¡ke in tipkovnice med mnogimi raÄunalniki na vaÅ¡i mizi. Je brezplaÄen in prostokodni program. MiÅ¡kin kazalec lahko preprosto premaknemo preko roba ekrana enega raÄunalnika na ekran drugega. OmogoÄa tudi souporabo odložiÅ¡Äa. Vse kar potrebujete je mrežna povezava. Barrier podpira mnogo operacijskih sistemov (npr. Windows, Mac OS X in Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Neznano</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_sq-AL.qm b/src/gui/res/lang/gui_sq-AL.qm
new file mode 100644
index 0000000..2de4bb7
--- /dev/null
+++ b/src/gui/res/lang/gui_sq-AL.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_sq-AL.ts b/src/gui/res/lang/gui_sq-AL.ts
new file mode 100644
index 0000000..980b795
--- /dev/null
+++ b/src/gui/res/lang/gui_sq-AL.ts
@@ -0,0 +1,1408 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="sq-AL" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Rreth Sunergy</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">E Panjohur</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Versioni:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Veprim Konfigurimi</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Zgjidh veprimin qe do te kryesh</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Shtypni nje tast shpejtesie</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Leshojeni tastin e shpejtesise</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Shtypni dhe leshojeni tastin e shpejtesise</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">Vetem ne keto ekrane</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Kalo ne ekran</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Kalo ne adrese</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">majtas</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">djathtas</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">lart</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">poshte</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Blloko kursorin ne ekran</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">ndrysho gjendje</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">aktiv</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">jo aktiv</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Ky veprim merret kur</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">tasti i shpejtesise eshte i shtypur</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">tasti i shpejtesise eshte leshuar</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Tast shpejtesie</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Vendos specifikimin per tastin e shpejtesise:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Fillo</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Skedar</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Ndrysho</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Dritare</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Ndihme</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Programi nuk mund te filloje</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Skedari i ekzekutueshem &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;nuk startoi ne menyre te suksesshme, meqe ai nuk egziston. Kontrolloni nese keni te drejta te mjaftueshme per te ekzekutuar kete program.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Klienti nuk u gjet</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Skedari i ekzekutueshem per serverin e barrier nuk egziston.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Emri i hostit eshte bosh</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Ju lutem vendosni nje host te klientit qe deshironi te lidheni.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Nuk mund te shkruaje skedarin e konfiguracionit</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Skedari i perkohshem qe eshte i nevojshem per te startuar Barrier nuk mund te shkruhet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Emri i skedarit te konfiguracionit i pa sakte</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Nuk keni krijuar nje skedar konfiguracioni per serverin synergu. Deshironi te kerkoni per nje skedar konfiguracioni tani?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Serveri Barrier nuk u gjet</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Skedari i ekzekutueshem per serverin e barrier nuk egziston.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier ndaloi nga nje gabim</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier ndaloi papritur me nje kod gabimi %1.&lt;br&gt;&lt;br&gt; Ju lutem shikoni detajet e te dhenave.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Ndalo</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier po fillon.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier nuk po ekzekutohet.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">E Panjohur</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Kerko per nje skedarin e konfigurimit te Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Ruaj konfiguracionin si...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Ruajtja deshtoi</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Nuk mund te ruaje skedarin e konfiguracionit.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Emri i ekranit:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">&amp;IP e Serverit:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;Fillo</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Perdorni konfiguracionin aktual:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Skedari i konfiguracionit:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Shfleto...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Konfiguracion Interaktiv:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Konfiguro Serverin...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Gati</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Te dhena</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">&amp;Apliko</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP adresa:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Rreth Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Dil</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Dil</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Ekzekuto</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Ndalo</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Ndalo</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Shfaq Statusin</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Fshih</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Fshih</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Shfaq</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Shfaq</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Rruaj konfiguracionin si...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Ruaj konfiguracionit interaktiv te serverit ne nje skedar.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Konfigurime</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Ndrysho konfigurimet</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Ekzekuto Magjistarin</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Paemer</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Vendos Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Konfiguracioni i Barrier (*.sgc);;Te gjithe (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Konfiguracioni i Barrier (*.conf);;Te gjithe (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Ikona e sistemin nuk eshte aktive, duke e mbyllur.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Emri i ekranit eshte bosh</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Konfigurimet e Ekranit</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Emri i ekranit:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Emertimet</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Shto</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Hiq</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Celesat modifikues</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Mbi</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Superior</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Asnje</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Mbi:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Superior:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Kende te vdekura</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Lart-Majtas</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Lart-Djathtas</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Majtas-poshte</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Djtathtas-poshte</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Madhesia e kendit:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Rregullime</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Rregullo tastin CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Rregullo tastin NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Rregullo tastin SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Rregullo XTest per Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Ekran: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dopjo klik per te ndryshuar konfigurimet&lt;br&gt;Zhvendos ekranit ne kosh per ta fshire</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Konfiguracioni i Serverit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Ekranet dhe lidhjet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Kalo ekranit nga rrjeta ne kosh per ta fshire</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Konfiguroni paraqitjen e konfiguraciont te serverit.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Kaloni kete buton ne rrjet per te shtuar nje ekran te ri.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Kaloni ekranet e reja ne rrjet ose levizni ato egzistuesit rreth tij.
+Zhvendos ekranit ne kosh per ta fshire
+Dopjo klik mbi nje ekran per te ndryshuar konfigurimet e tij.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Tastet e shpejtesise</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Tastet e shpejtesise</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">I Ri</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Ndrysho</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Hiq</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Veprim</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">I ri</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Modifiko</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">&amp;Hiq</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Konfigurime te avancuara te serverit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;Ndrysho</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Ndrysho pasi te presesh</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Kaloni ne lidhje te dyfishte</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Mundesi</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">&amp;Kontrollo klientet cdo</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Beni levizjet perkatese te mausit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Sinkronizo mbrojtesit e ekranit</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Mos i jepni prioritet dritareve ne serverat me SO Windows</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Kende te vdekura</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Lart-majtas</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Lart-djathtas</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Majtas-poshte</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Djathtas-poshte</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Madhesia e Kendit:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Rruaj dokumentin e te dhenave ne...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Permireso Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished"> Jeni te sigurte qe doni te permiresoni Barrier?
+Kjo i jep mundesi Barrier te bashkeveproje me procese te larta dhe UAC, por ju mund te shkaktoni probleme me proceset e uleta. Permiresoni Barrier vetem nese ju nevojitet.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Konfigurime</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Emri i ekranit:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Porta:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">&amp;Nderfaqja</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Duke hyre</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">&amp;Niveli i hyrjes</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Hyr ne dokument:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Shfleto...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Gabim</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Lajmerim</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Shenim</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Informacion</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Rregullo</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Rregullo1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Rregullo2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Vendos Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Ju lutem zgjidhni nje opsion.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Vendos Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Sunergy ju mundeson lehtesisht te ndani mausin dhe tastieren me disa komopjutera te tjere ne tavolinen tuaj, eshte FALAS dhe me KOD TE HAPUR. Vetem levizni mausin nga kompjuteri juaj ne nje kompjuter tjeter. Madje mund te beni ndani te gjitha ekranet. Ju duhet vem nje lidhje interneti. Sunergy eshte nje platformi e gjere (punon ne Windows, MAC OS X dhe Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server apo Klient?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">E Panjohur</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_sr.qm b/src/gui/res/lang/gui_sr.qm
new file mode 100644
index 0000000..ab1fce3
--- /dev/null
+++ b/src/gui/res/lang/gui_sr.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_sr.ts b/src/gui/res/lang/gui_sr.ts
new file mode 100644
index 0000000..f245475
--- /dev/null
+++ b/src/gui/res/lang/gui_sr.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="sr" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Информације</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_sv.qm b/src/gui/res/lang/gui_sv.qm
new file mode 100644
index 0000000..c5fb93b
--- /dev/null
+++ b/src/gui/res/lang/gui_sv.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_sv.ts b/src/gui/res/lang/gui_sv.ts
new file mode 100644
index 0000000..8494970
--- /dev/null
+++ b/src/gui/res/lang/gui_sv.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="sv" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Om Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Okänd</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Version:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Konfigurera</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Välj funktion som skall utföras</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Tryck ned en snabbtangent</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Släpp en snabbtangent</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Tryck ned och släpp en snabbtangent</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">endast på dessa skärmar</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Växla till skärm</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Växla i riktning</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">vänster</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">höger</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">upp</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">ner</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Lås muspekaren till skärm</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">skifta</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">på</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">Av</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Detta utförs när </translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">snabbtangenten trycks in</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">snabbtangenten släpps</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Snabbtangent</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Beskriv snabbtangenten:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Start</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Arkiv</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Fönster</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Hjälp</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Du kör inte den senaste versionen av Barrier. Version &lt;b&gt;%1&lt;/b&gt; finns tillgänglig för &lt;a href=&quot;%2&quot;&gt;nedladdning&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Programmet kan inte startas</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Programmet&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;kunde inte startas, men det finns. Var vänlig och kontrollera att du har tillräckliga rättigheter för att köra detta program.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrierklienten hittades inte</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Den exekverbara filen för Barrierklienten existerar inte.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Värddatornamnet är inte satt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Fyll i det värddatornamn som Barrierklienten skall ansluta till.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Kan inte spara konfigurationsfilen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Den tillfälliga konfigurationsfilen som krävs för att kunna starta Barrier kan inte skapas.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Namnet på konfigurationsfilen är inte giltigt</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Du har inte fyllt i en giltig konfigurationsfil för Barrierservern. Vill du bläddra efter konfigurationsfilen nu?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrierservern hittades inte</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Den körbara filen för Barrierservern existerar inte.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier avslutades med ett fel</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrierterminalen avslutades oväntat med avbrottskoden %1.&lt;br&gt;&lt;br&gt;Kontrollera loggdatan för detaljer.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Stopp</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier startas.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier körs.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier körs inte.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Okänd</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Bläddra efter Barriers konfigurationsfil.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Spara konfiguration som...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Sparades inte</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Kunde inte spara konfiguration till fil.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Skärmnamn:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">Serverns IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Start</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Använd befintlig konfiguration:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Konfigurationsfil:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">Bläddra...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Konfigurera interaktivt:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Konfigurera server...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Klar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Logg</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Verkställ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP-adresser:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Om Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Avsluta</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Avsluta</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Kör</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">S&amp;topp</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Stopp</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Visa Status</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Dölj</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Dölj</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Visa</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Visa</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Spara konfiguration som...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Spara den interaktivt genererade serverkonfigurationen till en fil.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Inställningar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Ändra inställningar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Kör guiden</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Namnlös</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Ställ in Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier-konfigurationer (*.sgc);;Alla filer (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier-konfigurationer (*.conf);;Alla filer (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Systemfältet otillgängligt, avslutar.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Skärmnamnet är tomt</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Skärmnamnet kan inte vara tomt. Fyll i ett namn eller avbryt dialogrutan.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Skärmnamn matchar alias</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Skärmnamnet kan inte vara samma som en alias. Var vänlig att antingen ta bort alias eller ändra skärmnamnet.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Skärminställningar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Skärmnamn:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Alias</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Lägg till</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Modifieringstangenter</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Ingen</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Döda hörn</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Över vänster</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Över höger</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Nedre vänstra hörnet</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Nedre höger</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Hörnets storlek:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Korrigeringar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">Korrigera CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">Korrigera NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">Korrigera SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">Korrigera XTest för Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Skärm:&lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Dubbelklicka för att ändra inställningar&lt;br&gt;Dra skärmen till papperskorgen för att ta bort den</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Serverkonfiguration</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Skärmar och länkar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Dra en skärm från rutnätet till papperskorgen för att ta bort den.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Konfigurera layouten på din Barrier-konfiguration.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Dra den här knappen till rutnätet för att lägga till en ny skärm.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Dra nya skärmar till rutnätet eller flytta runt existerande.
+Dra en skärm till papperskorgen för att ta bort den.
+Dubbelklicka på en skärm för att ändra dess inställningar.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Snabbtangenter</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Snabbtangenter</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Ny</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Redigera</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Åtgärder</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Ny</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Ändra</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Ta bort</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Avancerade serverinställningar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Växla</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Växla efter väntan</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Växla eller dubbelklicka inuti</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Alternativ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Kontrollera klienter varje</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">Använd relativa musrörelser</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Synkronisera skärmsläckare</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Använd inte förgrundsfönster på Windowsservrar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Döda hörn</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Övre vänstra hörnet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Övre högra hörnet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Nedre vänstra hörnet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Nedre högra hörnet</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Hörnstorlek:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Spara loggfil till...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Förhöj Barriers behörighet</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">Är du säker på att du vill förhöja Barriers behörighet?
+Detta låter Barrier interagera med förhöjda processer och UAC-dialogen, men kan skapa program med processer som inte är förhöjda. Förhöj Barriers behörighet enbart om du verkligen måste.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Inställningar</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Skärmnamn:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Port:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Gränssnitt:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Loggning</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Loggningsnivå:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Logga till fil:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Bläddra:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Fel</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Språk:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">&amp;Övrigt</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Varning</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Notering</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Info</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Felsök</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Felsök1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Felsök2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Ställ in Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Välj ett alternativ.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Var vänlig skriv din e-postaddress och lösenord.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Ställ in Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Välkommen</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Tack för att du installerar Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Med Barrier kan du enkelt dela din mus och ditt tangentbord med flera datorer på ditt skrivbord, och det är Fri och Öppen mjukvara. För bara muspekaren över kanten på en datorskärm för att den skall dyka upp på nästa. Du kan till och med dela utklipp. Allt du behöver är en nätverksanslutning. Barrier är multiplattform (fungerar på både Windows, Mac OS X och Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Server eller klient?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Okänd</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Inloggning misslyckades, ogiltig e-postaddress eller lösenord.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Inloggning misslyckades, ett problem inträffade.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Inloggning misslyckades, ett problem inträffade.
+Server svar:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_th-TH.qm b/src/gui/res/lang/gui_th-TH.qm
new file mode 100644
index 0000000..3762d16
--- /dev/null
+++ b/src/gui/res/lang/gui_th-TH.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_th-TH.ts b/src/gui/res/lang/gui_th-TH.ts
new file mode 100644
index 0000000..878a4e3
--- /dev/null
+++ b/src/gui/res/lang/gui_th-TH.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="th-TH" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹€à¸£à¸² Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">รุ่น:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;ตà¸à¸¥à¸‡</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">à¸à¸³à¸«à¸™à¸”ค่าà¸à¸²à¸£à¸à¸£à¸°à¸—ำ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">ซ้าย</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">ขวา</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">ขึ้น</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">ลง</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">เปิด</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">ปิด</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;เริ่มต้น</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;ไฟล์</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;à¹à¸à¹‰à¹„ข</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;หน้าต่าง</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;ช่วยเหลือ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;หยุด</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;เริ่มต้น</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">พร้อมà¹à¸¥à¹‰à¸§</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">บันทึà¸à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;ออà¸</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">ออà¸</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">เปิดทำงาน</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">หยุด</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;ซ่อน</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">ซ๋อน</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;à¹à¸ªà¸”ง</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">à¹à¸ªà¸”ง</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">ตั้งค่า</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸•ั้งค่า</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">ยังไม่มีชื่อ</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">ตั้งค่าหน้าจอ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">&amp;เพิ่ม</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;ลบออà¸</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;à¹à¸à¹‰à¹„ข</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">&amp;ลบออà¸</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">ตั้งค่า</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">ข้อมูล</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier ช่วยให้คุณสามารถà¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¹€à¸¡à¸²à¸ªà¹Œà¹à¸¥à¸°à¹à¸›à¹‰à¸™à¸žà¸´à¸¡à¸žà¹Œà¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡à¸„อมพิวเตอร์หลายเครื่องบนโต๊ะทำงานของคุณà¹à¸¥à¸°à¸à¹‡à¸Ÿà¸£à¸µà¹à¸¥à¸° Open Source เพียงà¹à¸„่เลื่อนเมาส์ของคุณปิดขอบของหน้าจอคอมพิวเตอร์เครื่องหนึ่งของเมื่อไปยังอีภคุณยังสามารถà¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¸—ั้งหมดของ clipboards ของคุณ ทั้งหมดที่คุณต้องมีà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸­à¸¡à¸•่อเครือข่าย Barrier เป็นข้ามà¹à¸žà¸¥à¸•ฟอร์ม (เมื่อใช้งานบน Windows, Mac OS X à¹à¸¥à¸° Linux)</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_tr-TR.qm b/src/gui/res/lang/gui_tr-TR.qm
new file mode 100644
index 0000000..55ef0f8
--- /dev/null
+++ b/src/gui/res/lang/gui_tr-TR.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_tr-TR.ts b/src/gui/res/lang/gui_tr-TR.ts
new file mode 100644
index 0000000..d35de14
--- /dev/null
+++ b/src/gui/res/lang/gui_tr-TR.ts
@@ -0,0 +1,1410 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="tr-TR" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Barrier hakkında</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Bilinmeyen</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Sürüm:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">&amp;Tamam</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">Eylemi yapılandır</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Gerçekleştirilecek eylemi seçin</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">Kısayol tuşuna basın</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">Kısayol tuşunu bırakın</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">Kısayol tuşuna basıp bırakın</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">Sadece bu ekranlarda</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Ekranı değiştir</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Yönü değiştir</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">sol</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">saÄŸ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">yukarı</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">aşağı</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">İmleci ekrana sabitle</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">DeÄŸiÅŸtir</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">açık</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">kapalı</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">İşlem gerçekleştiğinde</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">Kısayol tuşu aktif</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">Kısayol tuşu serbest</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">Kısayol</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Kısayol tuşu için tanımlama gir</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;BaÅŸlat</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">&amp;Dosya</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Düzenle</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">&amp;Pencere</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">&amp;Yardım</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Barrier versiyonunuz eski. Versiyon &lt;b&gt;%1&lt;/b&gt; hazır. İndirmek için &lt;a href=&quot;%2&quot;&gt;tıklayın&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Program başlatılamadı</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Çalıştırılabilir&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;mevcut olmasına rağmen başarılı olarak başlatılamadı. Lütfen bu programı çalıştırabilmek için yeterli yetkiye sahip olup olmadığınızı kontrol edin.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Barrier alıcıyı bulamadı</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Barrier için çalışan kullanıcı makine yok.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Anabilgisayar boÅŸ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Lütfen Barrier'nin bağlanması için bir bilgisayar adı girin</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Ayar dosyası yazılamadı</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">Geçici ayar dosyası Barrier'nin başlaması için gerekli, üzerine kaydedilemez</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Geçersiz ayar dosyası adı</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Barrier sunucusu için geçerli bir ayar dosyası oluşturmadınız. Bu ayar dosyasına şimdi göz atmak ister misiniz?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Barrier sunucusu bulunamadı</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Barrier için çalışan sunucu makine yok.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier bir hata yüzünden sonlandırıldı.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier %1 hata kod ile sonlandırıldı.&lt;br&gt;&lt;br&gt;Detaylar için hata günlüğüne bakınız.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">&amp;Dur</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier başlıyor</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier çalışıyor</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier çalışmıyor</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Bilinmeyen</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Barrier ayar dosyasına göz at</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Ayarları kaydet</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">Kaydetme hatası</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Ayarlar kaydedilemedi</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Ekran adı:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">&amp;Sunucu IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">&amp;BaÅŸlat</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">Varolan ayarları kullan</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">&amp;Ayar dosyası:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">&amp;Araştır...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">İnteraktif olarak yapılandır:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">&amp;Sunucu ayarla</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Hazır</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Kayıt kütüğü</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">Uygula</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP adresleri:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Barrier hakkında</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">&amp;Çıkış</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Çıkış</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Çalıştır</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Dur</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Dur</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Durumu Göster</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">&amp;Gizle</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Gizle</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">&amp;Göster</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Göster</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Ayarları farklı kaydet</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">İnteraktif olarak oluşturulmuş olan sununu yapılandırmasını dosyaya kaydet.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Ayarlar</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Ayarları düzenle</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">Sihirbazı Çalıştır</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">İsimsiz</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier Kurulum</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">Bildirim alanı kullanılamıyor, kapatılıyor.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Ekran ismi boÅŸ</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Ekran ismi boş bırakılamaz. Lütfen bir ad girin yada iptal edin.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Ekran ismiyle takma ad aynı olamaz. Lütfen takma adı silin yada ekran adını değiştirin.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">Ekran Ayarları</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Görünen isim:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">Takma adlar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Ekle</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Kaldır</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">&amp;DeÄŸiÅŸtirici tuÅŸlar</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Süper</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Yok</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Al&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">M&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Süper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Kör nokta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Sol-üst</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Sağ-üst</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Sol-alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">SaÄŸ-alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Köşe boyutu:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">Düzeltmeler</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">BÜYÜK YAZMAYI kapat</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">NUM LOCK kapat</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">SCROLL LOCK kapat</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">XTest için Xinerama yı onar.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Ekran: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Çift tıklayarak ayarları düzenleyin &lt;br&gt;Çöp kutusundan silmek için ekranda sürükleyin</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">Sunucu Yapılandırması</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Ekranlar ve Bağlantıları</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">Izgaradan çıkartmak için çöp kutusuna sürükleyin ve silin.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Lütfen sinerji sunucu yapılandırma düzeninizi yapılandırın.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">Yeni bir ekran eklemek için bu butonu ızgaraya sürükleyin.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">Izgaraya yeni ekranları sürükleyin veya çevresinde mevcut olanları taşıyın.
+Silmek için çöp tenekesine ekranı sürükleyin.
+Kendi ayarlarınızı düzenlemek için bir ekran üzerine çift tıklayın.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">Kısayollar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">Kısayollar</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">&amp;Yeni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">&amp;Düzenle</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Kaldır</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Eylemler</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Yeni</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Düzen</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Kaldır</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Gelişmiş sunucu ayarları</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">&amp;DeÄŸiÅŸtir</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">ms</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">&amp;Seçenekler</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">Her zaman kullanıcıları denetle</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">&amp;İlişkili mouse harekelerini kullanın</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Ekran koruyucuları eşitle</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Lütfen önplan penceresini Windows sunucularına almayın.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">&amp;Kör nokta</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Üst-sol</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Üst-Sağ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Alt-sol</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Alt-SaÄŸ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Köşe Boyutu:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Log dosyası kaydet...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Barrieri Yükselt</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Ayarlar</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Ekran adı:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Port:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">Arayüz:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">Log kayıtları</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Kayıt Seviyesi : </translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">Dosyaya kaydet : </translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">Araştır...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Hata</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">&amp;Dil</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">Uyarı</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Not</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Bilgi</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">Hata Ayıkla</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">Hata Ayıkla1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">Hata Ayıkla2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier Kurulum</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Lütfen seçiminizi yapınız.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Lütfen e-posta adresinizi ve şifrenizi girin.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Barrier Kurulum</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">HoÅŸ Geldiniz</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">Sinerji yüklediğiniz için teşekkür ederiz !</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier, aynı mouse ve klavye ile birden çok bilgisayarı kontrol etmenizi sağlayan Özgür ve Açık Kaynak Kodlu bir uygulamadır. Yapmanız gereken mouse imlecinizi bilgisayar ekranından diğerine sürüklemek. Barrier aynı zamanda ortak bir panoya da izin vermektedir yani bilgisayarlar arası kopyala/yapıştır yapmanıza da olanak tanır. Tek gereken bilgisayarlarınız arasında kuruluş olan network bağlantısı. Barrier, çoklu platform desteği de vemektedir (Windows, Linux ve Mac OS X işletimde sistemlerinde çalışır). </translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Sunucu veya Kullanıcı?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Bilinmeyen</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Giriş başarısız, e-posta yada şifre yanlış.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Giriş başarısız, bir hata meydana geldi.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Giriş başarısız, bir hata meydana geldi.
+Sunucu yanıtı:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_uk.qm b/src/gui/res/lang/gui_uk.qm
new file mode 100644
index 0000000..275a454
--- /dev/null
+++ b/src/gui/res/lang/gui_uk.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_uk.ts b/src/gui/res/lang/gui_uk.ts
new file mode 100644
index 0000000..68cac01
--- /dev/null
+++ b/src/gui/res/lang/gui_uk.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="uk" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Про Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Ðевідомо</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">ВерÑÑ–Ñ:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">OK</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ð¹</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">Виберіть дію, що виконуєтьÑÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">ÐатиÑніть гарÑчу клавішу</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">ВідпуÑтіть гарÑчу клавішу</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">ÐатиÑніть та відпуÑтіть гарÑчу клавішу</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">тільки на цих екранах</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">Перехід на екран</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">Перехід в напрÑмку</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">вліво</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">вправо</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">вверх</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">вниз</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">Закріпити курÑор за екраном</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">переключити</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">ввімк.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">вимк.</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Ð¦Ñ Ð´Ñ–Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ ÐºÐ¾Ð»Ð¸</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">гарÑча клавіша натиÑнута</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">гарÑча клавіша відпущена</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">ГарÑча клавіша</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">Вкажіть Ñпецифікацію гарÑчої клавіші:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Старт</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">Файл</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">РедагуваннÑ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">Вікно</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">Допомога</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Ваша верÑÑ–Ñ Barrier заÑтаріла. Зараз доÑтупна верÑÑ–Ñ &lt;b&gt;%1&lt;/b&gt; Ð´Ð»Ñ &lt;a href=&quot;%2&quot;&gt;завантаженнÑ&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Програма не може бути запущена</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">Виконуваний фал &lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;не може запуÑтитиÑÑŒ, хоча він Ñ–Ñнує. Будь лаÑка, перевірте чи у Ð’Ð°Ñ Ð´Ð¾Ñтатньо прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку цієї програми.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">Ðе знайдено жодного клієнта Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Виконуваної програми Ð´Ð»Ñ ÐºÐ»Ñ–Ñ”Ð½Ñ‚Ð° Barrier не Ñ–Ñнує.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">Ім'Ñ Ñ…Ð¾Ñту не вказане</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">Будь лаÑка вкажіть ім'Ñ Ñ…Ð¾Ñту до Ñкого повинен приєднатиÑÑ ÐºÐ»Ñ–Ñ”Ð½Ñ‚ Barrier.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">Ðеможливо здійÑнити Ð·Ð°Ð¿Ð¸Ñ Ñƒ файл конфігурації</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">ТимчаÑовий файл конфігурації, Ñкий необхідний Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку Barrier заблокований Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">Ðеправильне ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ конфігурації</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">Ви не заповнили правильний файл конфігурації Ð´Ð»Ñ Ñервера Barrier . Бажаєте зробити це зараз?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Ðеможливо знайти Ñервер Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Виконуваної програми Ð´Ð»Ñ Ñерверу Barrier не Ñ–Ñнує.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier завершена з помилками</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrier завершилаÑÑŒ неочікувано з кодом of %1.&lt;br&gt;&lt;br&gt;Будь лаÑка переглÑньте log-запиÑи Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Стоп</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier запущено.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier працює.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier зупинено.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Ðевідомо</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">Вкажіть файл конфігурації Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">Зберегти конфігурацію Ñк...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">ПоÑилка збереженнÑ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">Ðеможливо зберегти файл конфігурації.</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">Ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">IP Ñерверу:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Старт</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">ВикориÑтати Ñ–Ñнуючу конфігурацію:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">Файл конфігурації:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">ПереглÑд...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">Ðалаштувати інтерактивно:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">Ðалаштувати Ñервер...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Готово</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">Лог</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">ЗаÑтоÑувати</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP адреÑи:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">Про Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">Закрити</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Закрити</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">ЗапуÑтити</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Зупинити</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">Зупинити</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Показати ÑтатуÑ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">Приховати</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">Приховати</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">Показати</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">Показати</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">Зберегти конфігурацію Ñк...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">Зберегти інтерактивно згенеровану конфігурацію Ñервера у файл.</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">ÐалаштуваннÑ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Редагувати налаштуваннÑ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">ЗапуÑтити Помічника</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">Без назви</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Barrier (*.sgc);;Ð’ÑÑ– файли (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Barrier (*.conf);;Ð’ÑÑ– файли (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">СиÑтемний трей недоÑтупний, здійÑнюєтьÑÑ Ð²Ð¸Ñ…Ñ–Ð´.</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">Ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ порожнє</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ не може бути порожнім. Будь лаÑка вкажіть ім'Ñ Ð°Ð±Ð¾ ÑкаÑуйте діалог.</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">Ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ Ñпівпадає з пÑевдонімом</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ не може бути таким Ñамим Ñк пÑевдонім. Будь лаÑка видаліть пÑевдонім або змініть ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ñƒ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">Ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">ПÑевдоніми</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Додати</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Видалити</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">Клавіші-модифікатори</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Жодна</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Мертві кути</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">Верхній лівий</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">Верхній правий</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">Ðижній лівий</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">Ðижній правий</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">Розмір кута:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">ФікÑаціÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">ФікÑувати CAPS LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">ФікÑувати NUM LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">ФікÑувати SCROLL LOCK</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">ФікÑувати XTest Ð´Ð»Ñ Xinerama</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;Екран: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Подвійний клік Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½ÑŒ&lt;br&gt;ПеретÑгніть екран у кошик Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ñервера</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">Екрани Ñ– зв'Ñзки</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">ПеретÑгніть екран у кошик Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">Ðалаштувати Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ— Ñервера Barrier .</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">ПеретÑгніть цю кнопку на Ñітку, щоб додати новий екран.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">ПеретÑгуйте нові екрани на Ñітку або переÑувайте Ñ–Ñнуючі міÑцÑми.
+ПеретÑгніть екран в кошик, щоб видалити його.
+Подвійний клік на екрані Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ налаштуваннÑ.</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">ГарÑчі клавіші</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">ГарÑчі клавіші</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">Ðовий</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">РедагуваннÑ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Видалити</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">Дії</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">Ðовий</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">Редагувати</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">Видалити</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">Додаткові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñервера</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">Перехід</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">Перехід піÑÐ»Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">мÑек</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">Перехід піÑÐ»Ñ Ð¿Ð¾Ð´Ð²Ñ–Ð¹Ð½Ð¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ‚Ñгом</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">Опції</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">ПеревірÑти клієнтів кожні</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">ВикориÑтовувати рідні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑƒÑ€Ñору</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">Синхронізувати заÑтавки</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">Ðе залишати вікно Ñервера зверху (у Windows)</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">Мертві кути</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">Верхній лівий</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">Верхній правий</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">Ðижній лівий</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">Ðижній правий</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">Розмір кута:</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">Зберегти log-файл в...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">Підвищіть рівень доÑтупу Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">ДійÑно бажаєте підвищить рівень доÑтупу Barrier?
+Ð¦Ñ Ð´Ñ–Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ÑŒ Barrier бути у взаємодії з процеÑами, Ñкі мають підвищеній рівень доÑтупу, та діалогу UAC (контроль облікових запиÑів кориÑтувачів). Ðле це може викликати проблеми з процеÑами, Ñкі мають звичайний рівень доÑтупу. Підвищуйте рівень доÑтупу Barrier тільки в тому випадку, коли це дійÑно потрібно.</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">ÐалаштуваннÑ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">Ім'Ñ ÐµÐºÑ€Ð°Ð½Ñƒ:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">Порт:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">ІнтерфейÑ:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">ЗапиÑ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">Рівень запиÑу:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">ЗапиÑувати у фал:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">ПереглÑд...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">Помилка</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Мова:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">&amp;Додатково</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">ПопередженнÑ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">Примітка</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">ІнформаціÑ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">ÐалагодженнÑ</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">ÐалагодженнÑ1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">ÐалагодженнÑ2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">Будь лаÑка, оберіть опцію.</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Будь лаÑка вкажіть адреÑу вашої електронної пошти та пароль.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">Вітаемо</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">ДÑкуємо за вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier дозволить Вам легко викориÑтовувати мишку та клавіатуру між декількома комп'ютерами за вашим Ñтолом, Ñ– це зовÑім безкоштовний та відкритий продукт. Тільки підведіть курÑор мишки до краю одного з комп'ютерів Ñ– він автоматично переміÑтитьÑÑ Ð½Ð° інший. Також можна викориÑтовувати один буфер обміну між декількома комп'ютерами. Ð’Ñе що необхідно, це мережеве з'єднаннÑ. Barrier ÑвлÑєтьÑÑ Ð¼Ñ–Ð¶Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð¾Ð²Ð¸Ð¼ продуктом (працює з Windows, Mac OS X та Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">Сервер чи клієнт?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Ðевідомо</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Вхід ÑкаÑовано, неправильна адреÑа або пароль.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">Вхід ÑкаÑовано, виникла помилка.
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">Вхід ÑкаÑовано, виникла помилка.
+Відповідь Ñервера:
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_ur.qm b/src/gui/res/lang/gui_ur.qm
new file mode 100644
index 0000000..c546613
--- /dev/null
+++ b/src/gui/res/lang/gui_ur.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_ur.ts b/src/gui/res/lang/gui_ur.ts
new file mode 100644
index 0000000..2dbd1ea
--- /dev/null
+++ b/src/gui/res/lang/gui_ur.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="ur" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">معلومات</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier آپ Ú©Ùˆ آسانی سے اپنا ما٘وس اور کیبورڈ متعدد کمپیوٹرز Ú©Û’ ساتھ استعمال کرنے Ú©ÛŒ سÛولت میسر کرتا ÛÛ’Û”Barrier Ù…ÙØª اور اوپن سورس ÛÛ’Û” صر٠ایک کمپیوٹر اسکرین Ú©Û’ کنارے سے دوسرے پر اپنے ماؤس Ù„Û’ جائیں اور بس۔ آپ تمام کمپیوٹرز Ú©Û’ کلپ بورڈ ایک دوسرے Ú©Û’ ساتھ تبدیل بھی کر سکتے Ûیں۔ ÛŒÛ Ø³Ø¨ کرنے Ú©Û’ لیے صر٠ایک نیٹ ورک کنکشن Ú©ÛŒ ضرورت ÛÛ’Û” Barrier متعدد آپریٹنگ سسٹمز (ونڈوز، میک OS X اور لینکس) Ú©Û’ ساتھ استعمال کیا جا سکتا ÛÛ’ </translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_vi.qm b/src/gui/res/lang/gui_vi.qm
new file mode 100644
index 0000000..12ce570
--- /dev/null
+++ b/src/gui/res/lang/gui_vi.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_vi.ts b/src/gui/res/lang/gui_vi.ts
new file mode 100644
index 0000000..e4031c5
--- /dev/null
+++ b/src/gui/res/lang/gui_vi.ts
@@ -0,0 +1,1405 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="vi" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">Thông tin vỠBarrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">Không biết</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">Phiên bản:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">Ok</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">trái</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">phải</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">lên</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">xuống</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">bật</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">tắt</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">Lệnh này được thực hiện khi </translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Bắt đầu</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;Phiên bản Barrier cá»§a bạn đã cÅ©. Phiên bản má»›i &lt;b&gt;%1&lt;/b&gt; đã có để &lt;a href=&quot;%2&quot;&gt;tải vá»&lt;/a&gt;.&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">Chương trình không thể khởi động.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">Không tìm thấy máy chủ Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier đã ngừng vì lỗi </translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">Dừng</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier đang khởi động.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier đang chạy.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier không chạy.</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">Không biết</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">Bắt đầu</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">Sẵn sàng</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">Thoát</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">Chạy</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">Dừng</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">Hiển thị tình trạng</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">Cài đặt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">Chỉnh sửa cài đặt</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">Thêm</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Xóa</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift: </translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl </translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">Không</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">Xóa</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">Cài đặt</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">Ngôn ngữ:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">Thông tin</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">Hãy nhập tài khoản email và mật khẩu.</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Sức mạnh tổng hợp cho phép bạn dá»… dàng chia sẻ chuá»™t và bàn phím giữa nhiá»u máy tính trên bàn cá»§a bạn, và nó là miá»…n phí và mã nguồn mở. Chỉ cần di chuyển chuá»™t cá»§a bạn khá»i các cạnh cá»§a màn hình má»™t máy tính khác. Bạn thậm chí có thể chia sẻ tất cả các clipboards cá»§a bạn. Tất cả bạn cần là má»™t kết nối mạng. Barrier là ná»n tảng chéo (hoạt động trên Windows, Mac OS X và Linux).</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">Không biết</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">Äăng nhập thất bại, tài khoản email hoặc mật khẩu không hợp lệ.</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_zh-CN.qm b/src/gui/res/lang/gui_zh-CN.qm
new file mode 100644
index 0000000..ab5415e
--- /dev/null
+++ b/src/gui/res/lang/gui_zh-CN.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_zh-CN.ts b/src/gui/res/lang/gui_zh-CN.ts
new file mode 100644
index 0000000..b5cdf6c
--- /dev/null
+++ b/src/gui/res/lang/gui_zh-CN.ts
@@ -0,0 +1,1411 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="zh-CN" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">关于Barrier</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">未知</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">版本:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">确定</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">行为é…ç½®</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">é€‰æ‹©è¦æ‰§è¡Œçš„行为</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">按下热键</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">æ¾å¼€çƒ­é”®</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">æŒ‰ä¸‹ä¸€ä¸ªé”®ç„¶åŽæ¾å¼€</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">仅仅在这些å±å¹•上</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">切æ¢åˆ°å±å¹•</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">æ–¹å‘切æ¢</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">å·¦</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">å³ä¾§</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">上方</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">下方</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">é”定指针于å±å¹•</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">切æ¢</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">å¯ç”¨</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">ç¦ç”¨</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">当……时å¯ç”¨æ­¤è¡Œä¸º</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">热键被按下</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">热键被æ¾å¼€</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">热键</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">输入热键的说明:</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">开始</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">文件</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">编辑</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">窗å£</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">帮助</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;您正在使用的Barrier版本有些过时了,有新版 &lt;b&gt;%1&lt;/b&gt; å¯ä»¥ &lt;a href=&quot;%2&quot;&gt;下载&lt;/a&gt;。&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">ç¨‹åºæ— æ³•å¯åЍ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">坿‰§è¡Œç¨‹åº&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;没有æˆåŠŸè¿è¡Œï¼Œè™½ç„¶ç¨‹åºæœ¬èº«å­˜åœ¨ã€‚è¯·æ£€æŸ¥ä½ æ˜¯å¦æœ‰è¿è¡Œæ­¤ç¨‹åºçš„æƒé™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">未找到Barrier客户端</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Barrierå®¢æˆ·ç«¯çš„å¯æ‰§è¡Œç¨‹åºä¸å­˜åœ¨ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">主机å为空</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">请为Barrier客户端设置一个用于连接的主机å</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">ä¸èƒ½å†™å…¥é…置文件</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">å¯åЍBarrier所需的临时é…置文件ä¸å¯å†™ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">é…置文件åéžæ³•</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">你没有为BarrieræœåŠ¡ç«¯è®¾ç½®ä¸€ä¸ªå¯ç”¨çš„é…置文件。需è¦çŽ°åœ¨æµè§ˆé…置文件å—?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">未找到BarrieræœåŠ¡ç«¯</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">BarrieræœåŠ¡ç«¯å¯æ‰§è¡Œç¨‹åºä¸å­˜åœ¨ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrier因错终止è¿è¡Œ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrieræ„外终止è¿è¡Œï¼Œé€€å‡ºä»£ç  %1。&lt;br&gt;&lt;br&gt;请查看输出日志了解详情。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier正在å¯åЍ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier正在è¿è¡Œ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrier没有è¿è¡Œ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">未知</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">æµè§ˆBarrieré…置文件</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">ä¿å­˜é…置到文件</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">ä¿å­˜å¤±è´¥</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">ä¸èƒ½ä¿å­˜é…置到文件</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">å±å¹•å:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">æœåŠ¡ç«¯IP</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">开始</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">使用已有的é…置:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">é…置文件:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">æµè§ˆâ€¦</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">交互é…置:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">设置æœåŠ¡ç«¯â€¦</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">准备完毕</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">日志</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">应用</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP地å€</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">关于Barrier…</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">退出</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">退出</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">è¿è¡Œ</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">显示状æ€</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">éšè—</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">éšè—</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">显示</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">显示</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">ä¿å­˜é…置到…</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">ä¿å­˜é€šè¿‡äº¤äº’é…置生æˆçš„é…置到文件。</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">设置</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">编辑设置</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">è¿è¡Œå‘导</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">未命å</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">设置Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrieré…置文件(*.sgc);;所有文件 (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrieré…置文件(*.conf);;所有文件 (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">系统托盘ä¸å¯ç”¨ï¼Œç¨‹åºé€€å‡ºã€‚</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">å±å¹•å为空</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">å±å¹•åä¸èƒ½ä¸ºç©ºã€‚请填入一个åå­—æˆ–è€…å…³é—­å¯¹è¯æ¡†ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">å±å¹•å对应别å</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">å±å¹•åä¸èƒ½ä¸Žåˆ«å相åŒï¼Œè¯·å–消或者更改别å。</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">å±å¹•设置</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">å±å¹•å:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">别å</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">添加</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">删除</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">修改按键</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">Shift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">超级</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">æ— </translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">Ctrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">Alt:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">Meta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">Super:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">死角</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">左上角</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">å³ä¸Šè§’</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">左下角</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">å³ä¸‹è§’</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">死角大å°</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">修改</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">ä¿®å¤caps locké”®</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">ä¿®å¤num locké”®</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">ä¿®å¤scroll locké”®</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">ä¿®å¤Xineramaçš„XTest</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;å±å¹•设置: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;åŒå‡»ä»¥ä¿®æ”¹è®¾ç½®&lt;br&gt;å°†å±å¹•拖到废纸篓æ¥ç§»é™¤</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">æœåŠ¡ç«¯é…ç½®</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">å±å¹•å’Œè”æŽ¥</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">从格å­ä¸­æ‹–动å±å¹•到垃圾桶进行删除。</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">设置BarrieræœåŠ¡ç«¯é…置的å±å¹•布局。</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">拖动此按钮到格å­ä¸­è¿›è¡Œæ·»åŠ å±å¹•。</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">拖动å±å¹•(图标)到网格中或者移动已ç»åœ¨ç½‘格中的å±å¹•çš„ä½ç½®ã€‚
+拖动å±å¹•到垃圾桶进行删除。
+åŒå‡»å±å¹•编辑其设置。</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">热键</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">热键</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">新建</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">编辑</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">删除</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">行为</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">新建</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">编辑</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">删除</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">æœåŠ¡ç«¯é«˜çº§è®¾ç½®</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">切æ¢</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">等待åŽåˆ‡æ¢</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">毫秒</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">åŒå‡»tap切æ¢</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">选项</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">客户端检查周期</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">使用相关的鼠标动作</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">åŒæ­¥å±å¹•ä¿æŠ¤</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">ä¸è¦ç§»åЍå‰å°çª—å£åœ¨WindowsæœåŠ¡å™¨ä¸Š</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">死角</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">左上角</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">å³ä¸Šè§’</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">左下角</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">å³ä¸‹è§’</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">死角大å°</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">ä¿å­˜æ—¥å¿—文件…</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">评价Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">您确定è¦elevate Barrierå—?
+这会å…许Barrierå’Œelevated进程交互和UACå¯¹è¯æ¡†ï¼Œä½†æ˜¯å¯èƒ½å¼•起一切和éželevatedè¿›ç¨‹äº¤äº’çš„é—®é¢˜ã€‚åªæœ‰åœ¨ä½ éœ€è¦çš„æ—¶å€™æ‰Elevate Barrier。</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">设置</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">å±å¹•åç§°:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">端å£ï¼š</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">界é¢</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">日志记录</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">日志等级</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">记录到文件</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">æµè§ˆâ€¦</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">错误</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">语言:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">å…¶ä»–</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">警告</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">注æ„</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">ä¿¡æ¯</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">调试</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">调试1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">调试2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">设置Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">请选择一个选项</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">请输入您的邮箱地å€å’Œå¯†ç ã€‚</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">设置Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">欢迎</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">感谢您安装Barrierï¼</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrierå…许你轻æ¾åœ°åœ¨ä½ åŠžå…¬æ¡Œä¸Šå¤šå°è®¡ç®—机之间共享你的鼠标和键盘,它å…费并且开放æºä»£ç ã€‚ä½ åªè¦å°†é¼ æ ‡ï¼ˆæŒ‡é’ˆï¼‰ä»Žä¸€å°è®¡ç®—机的å±å¹•边缘移出到å¦ä¸€ä¸ªå±å¹•就行了。甚至å¯ä»¥å…±äº«ä½ çš„剪贴æ¿ã€‚你所需è¦çš„仅仅是一个网络连接。Barrier是跨平å°çš„(å¯ä»¥è¿è¡ŒäºŽWindows,Mac OS Xå’ŒLinux)。</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">(此计算机作为)æœåŠ¡ç«¯è¿˜æ˜¯å®¢æˆ·ç«¯ï¼Ÿ</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">未知</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">ç™»å½•å¤±è´¥ï¼Œé‚®ç®±åœ°å€æˆ–密ç é”™è¯¯ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">登录失败,出错了。
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">登录失败,出错了。
+æœåŠ¡å™¨å›žåº”ï¼š
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/lang/gui_zh-TW.qm b/src/gui/res/lang/gui_zh-TW.qm
new file mode 100644
index 0000000..92e5e3a
--- /dev/null
+++ b/src/gui/res/lang/gui_zh-TW.qm
Binary files differ
diff --git a/src/gui/res/lang/gui_zh-TW.ts b/src/gui/res/lang/gui_zh-TW.ts
new file mode 100644
index 0000000..fc55f56
--- /dev/null
+++ b/src/gui/res/lang/gui_zh-TW.ts
@@ -0,0 +1,1414 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS language="zh-TW" sourcelanguage="en" version="2.0">
+<context>
+ <name>AboutDialogBase</name>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="38"/>
+ <source>About Barrier</source>
+ <translation type="finished">關於Barrier...</translation>
+ </message>
+ <message utf8="true">
+ <location filename="res/AboutDialogBase.ui" line="53"/>
+ <source>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Visit our website for help and info (symless.com).
+&lt;/p&gt;</oldsource>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="140"/>
+ <source>Unknown</source>
+ <translation type="finished">未知</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="124"/>
+ <source>Version:</source>
+ <translation type="finished">版本:</translation>
+ </message>
+ <message>
+ <location filename="res/AboutDialogBase.ui" line="163"/>
+ <source>&amp;Ok</source>
+ <translation type="finished">確定</translation>
+ </message>
+</context>
+<context>
+ <name>ActionDialogBase</name>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="14"/>
+ <source>Configure Action</source>
+ <translation type="finished">設定動作</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="20"/>
+ <source>Choose the action to perform</source>
+ <translation type="finished">鏿“‡è¦åŸ·è¡Œçš„動作</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="26"/>
+ <source>Press a hotkey</source>
+ <translation type="finished">按下快æ·éµ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="36"/>
+ <source>Release a hotkey</source>
+ <translation type="finished">放開快æ·éµ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="43"/>
+ <source>Press and release a hotkey</source>
+ <translation type="finished">按下後放開快æ·éµ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="69"/>
+ <source>only on these screens</source>
+ <translation type="finished">åªåœ¨ä¸‹åˆ—螢幕顯示</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="119"/>
+ <source>Switch to screen</source>
+ <translation type="finished">切æ›è‡³</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="150"/>
+ <source>Switch in direction</source>
+ <translation type="finished">åˆ‡æ›æ–¹å‘</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="174"/>
+ <source>left</source>
+ <translation type="finished">å·¦</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="179"/>
+ <source>right</source>
+ <translation type="finished">å³</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="184"/>
+ <source>up</source>
+ <translation type="finished">上</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="189"/>
+ <source>down</source>
+ <translation type="finished">下</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="201"/>
+ <source>Lock cursor to screen</source>
+ <translation type="finished">鎖定至</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="225"/>
+ <source>toggle</source>
+ <translation type="finished">轉æ›</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="230"/>
+ <source>on</source>
+ <translation type="finished">開啟</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="235"/>
+ <source>off</source>
+ <translation type="finished">關閉</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="248"/>
+ <source>This action is performed when</source>
+ <translation type="finished">執行此動作,當</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="254"/>
+ <source>the hotkey is pressed</source>
+ <translation type="finished">已按下快æ·éµ</translation>
+ </message>
+ <message>
+ <location filename="res/ActionDialogBase.ui" line="264"/>
+ <source>the hotkey is released</source>
+ <translation type="finished">已放開快æ·éµ</translation>
+ </message>
+</context>
+<context>
+ <name>AddClientDialog</name>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="20"/>
+ <source>Dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="35"/>
+ <source>TextLabel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/AddClientDialogBase.ui" line="83"/>
+ <source>Ignore auto connect clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>HotkeyDialogBase</name>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="14"/>
+ <source>Hotkey</source>
+ <translation type="finished">å¿«æ·éµ</translation>
+ </message>
+ <message>
+ <location filename="res/HotkeyDialogBase.ui" line="20"/>
+ <source>Enter the specification for the hotkey:</source>
+ <translation type="finished">輸入快æ·éµè¨­å®šï¼š</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="790"/>
+ <source>&amp;Start</source>
+ <translation type="finished">啟動</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="237"/>
+ <source>&amp;File</source>
+ <translation type="finished">檔案</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="238"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">編輯</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="239"/>
+ <source>&amp;Window</source>
+ <translation type="finished">視窗</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="240"/>
+ <source>&amp;Help</source>
+ <translation type="finished">幫助</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="364"/>
+ <source>&lt;p&gt;Your version of Barrier is out of date. Version &lt;b&gt;%1&lt;/b&gt; is now available to &lt;a href=&quot;%2&quot;&gt;download&lt;/a&gt;.&lt;/p&gt;</source>
+ <oldsource>&lt;p&gt;Version %1 is now available, &lt;a href=&quot;%2&quot;&gt;visit website&lt;/a&gt;.&lt;/p&gt;</oldsource>
+ <translation type="finished">&lt;p&gt;ä½ çš„Barrier版本已經太舊, 版本 &lt;b&gt;%1&lt;/b&gt;已經å¯ä»¥è‡³ &lt;a href=&quot;%2&quot;&gt;下載&lt;/a&gt;。&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>Program can not be started</source>
+ <translation type="finished">未能啟動程åº</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="577"/>
+ <source>The executable&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.</source>
+ <translation type="finished">未能æˆåŠŸå•Ÿå‹•åŸ·è¡Œæª”&lt;br&gt;&lt;br&gt;%1&lt;br&gt;&lt;br&gt;ï¼Œå„˜ç®¡è©²æª”æ¡ˆå­˜åœ¨ï¼Œè«‹æª¢æŸ¥åŸ·è¡Œç¨‹åºæ¬Šé™è¨­å®šã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="596"/>
+ <source>Barrier client not found</source>
+ <translation type="finished">找ä¸åˆ°Barrier客戶端</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="597"/>
+ <source>The executable for the barrier client does not exist.</source>
+ <translation type="finished">Barrier客戶端執行檔ä¸å­˜åœ¨ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="625"/>
+ <source>Hostname is empty</source>
+ <translation type="finished">電腦å稱ä¸èƒ½ç©ºç™½</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="626"/>
+ <source>Please fill in a hostname for the barrier client to connect to.</source>
+ <translation type="finished">請輸入barrier客戶端è¦é€£æŽ¥çš„電腦å稱。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>Cannot write configuration file</source>
+ <translation type="finished">無法寫入設定檔</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="646"/>
+ <source>The temporary configuration file required to start barrier can not be written.</source>
+ <translation type="finished">無法寫入用以啟動barrier的暫存設定檔</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="659"/>
+ <source>Configuration filename invalid</source>
+ <translation type="finished">設定檔檔案å稱無效</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="660"/>
+ <source>You have not filled in a valid configuration file for the barrier server. Do you want to browse for the configuration file now?</source>
+ <translation type="finished">你沒有輸入有效的barrier伺æœå™¨è¨­å®šæª”,你需è¦ç¾åœ¨ç€è¦½è¨­å®šæª”嗎?</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="688"/>
+ <source>Barrier server not found</source>
+ <translation type="finished">找ä¸åˆ°Barrier伺æœå™¨</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="689"/>
+ <source>The executable for the barrier server does not exist.</source>
+ <translation type="finished">Barrier伺æœå™¨åŸ·è¡Œæª”ä¸å­˜åœ¨ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated with an error</source>
+ <translation type="finished">Barrieré‡åˆ°éŒ¯èª¤ï¼Œåœæ­¢é‹ä½œ</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="764"/>
+ <source>Barrier terminated unexpectedly with an exit code of %1.&lt;br&gt;&lt;br&gt;Please see the log output for details.</source>
+ <translation type="finished">Barrieré‡åˆ°éŒ¯èª¤ï¼Œåœæ­¢é‹ä½œï¼ŒéŒ¯èª¤ç¢¼ %1&lt;br&gt;&lt;br&gt;詳細情æ³å¯åƒè€ƒè¨˜éŒ„日誌。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="783"/>
+ <source>&amp;Stop</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1038"/>
+ <source>Please add the server (%1) to the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1044"/>
+ <source>Please drag the new client screen (%1) to the desired position on the grid.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1147"/>
+ <source>Failed to detect system architecture.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1165"/>
+ <source>Cancel</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1189"/>
+ <source>Failed to download Bonjour installer to location: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1226"/>
+ <source>Do you want to enable auto config and install Bonjour?
+
+This feature helps you establish the connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1270"/>
+ <source>Auto config feature requires Bonjour.
+
+Do you want to install Bonjour?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="815"/>
+ <source>Barrier is starting.</source>
+ <translation type="finished">Barrier正在啟動中。</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="809"/>
+ <source>Barrier is running.</source>
+ <translation type="finished">Barrier正在é‹ä½œä¸­ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="819"/>
+ <source>Barrier is not running.</source>
+ <translation type="finished">Barrierä¸åœ¨é‹ä½œä¸­ã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="870"/>
+ <source>Unknown</source>
+ <translation type="finished">未知</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1146"/>
+ <location filename="src/MainWindow.cpp" line="1225"/>
+ <location filename="src/MainWindow.cpp" line="1269"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="987"/>
+ <source>Browse for a barriers config file</source>
+ <translation type="finished">ç€è¦½ä»¥é¸æ“‡è¨­å®šæª”</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="408"/>
+ <source>Barrier is now connected, You can close the config window. Barrier will remain connected in the background.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="434"/>
+ <source>Security question</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="435"/>
+ <source>Do you trust this fingerprint?
+
+%1
+
+This is a server fingerprint. You should compare this fingerprint to the one on your server's screen. If the two don't match exactly, then it's probably not the server you're expecting (it could be a malicious user).
+
+To automatically trust this fingerprint for future connections, click Yes. To reject this fingerprint and disconnect from the server, click No.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1000"/>
+ <source>Save configuration as...</source>
+ <translation type="finished">儲存設定至...</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Save failed</source>
+ <translation type="finished">儲存失敗</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="1004"/>
+ <source>Could not save configuration to file.</source>
+ <translation type="finished">無法儲存設定至檔案。</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindowBase</name>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="26"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="90"/>
+ <source>Ser&amp;ver (share this computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="243"/>
+ <source>Screen name:</source>
+ <translation type="finished">顯示å稱:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="257"/>
+ <source>&amp;Server IP:</source>
+ <translation type="finished">伺æœå™¨(&amp;S) IP:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="380"/>
+ <location filename="res/MainWindowBase.ui" line="409"/>
+ <source>&amp;Start</source>
+ <translation type="finished">啟動</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="181"/>
+ <source>Use existing configuration:</source>
+ <translation type="finished">使用舊有設定檔:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="190"/>
+ <source>&amp;Configuration file:</source>
+ <translation type="finished">設定檔:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="210"/>
+ <source>&amp;Browse...</source>
+ <translation type="finished">ç€è¦½...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="147"/>
+ <source>Configure interactively:</source>
+ <translation type="finished">互動地設定:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="159"/>
+ <source>&amp;Configure Server...</source>
+ <translation type="finished">設定伺æœå™¨...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="350"/>
+ <source>Ready</source>
+ <translation type="finished">準備</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="296"/>
+ <source>Log</source>
+ <translation type="finished">記錄</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="373"/>
+ <source>&amp;Apply</source>
+ <translation type="finished">應用</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="107"/>
+ <source>IP addresses:</source>
+ <translation type="finished">IP地å€:</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="131"/>
+ <source>Fingerprint:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="228"/>
+ <source>&amp;Client (use another computer's mouse and keyboard):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="270"/>
+ <source>Auto config</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="390"/>
+ <source>&amp;About Barrier...</source>
+ <translation type="finished">關於Barrier...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="398"/>
+ <source>&amp;Quit</source>
+ <translation type="finished">離開</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="401"/>
+ <source>Quit</source>
+ <translation type="finished">離開</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="412"/>
+ <source>Run</source>
+ <translation type="finished">執行</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="423"/>
+ <source>S&amp;top</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="426"/>
+ <source>Stop</source>
+ <translation type="finished">åœæ­¢</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="434"/>
+ <source>S&amp;how Status</source>
+ <translation type="finished">顯示狀態</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="442"/>
+ <source>&amp;Hide</source>
+ <translation type="finished">éš±è—</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="445"/>
+ <source>Hide</source>
+ <translation type="finished">éš±è—</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="453"/>
+ <source>&amp;Show</source>
+ <translation type="finished">顯示(&amp;S)</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="456"/>
+ <source>Show</source>
+ <translation type="finished">顯示</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="464"/>
+ <source>Save configuration &amp;as...</source>
+ <translation type="finished">儲存設定至...</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="467"/>
+ <source>Save the interactively generated server configuration to a file.</source>
+ <translation type="finished">儲存動態生æˆçš„設定至檔案。</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="475"/>
+ <source>Settings</source>
+ <translation type="finished">設定</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="478"/>
+ <source>Edit settings</source>
+ <translation type="finished">編輯</translation>
+ </message>
+ <message>
+ <location filename="res/MainWindowBase.ui" line="486"/>
+ <source>Run Wizard</source>
+ <translation type="finished">執行設定精éˆ</translation>
+ </message>
+</context>
+<context>
+ <name>NewScreenWidget</name>
+ <message>
+ <location filename="src/NewScreenWidget.cpp" line="32"/>
+ <source>Unnamed</source>
+ <translation type="finished">未命å</translation>
+ </message>
+</context>
+<context>
+ <name>PluginManager</name>
+ <message>
+ <location filename="src/PluginManager.cpp" line="58"/>
+ <source>Failed to get plugin directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="63"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="136"/>
+ <source>Failed to download plugin '%1' to: %2
+%3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="167"/>
+ <source>Could not get Windows architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginManager.cpp" line="191"/>
+ <source>Could not get Linux architecture type.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>PluginWizardPage</name>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="14"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">設定Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/PluginWizardPageBase.ui" line="101"/>
+ <source>Please wait...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="72"/>
+ <source>Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="80"/>
+ <location filename="src/PluginWizardPage.cpp" line="201"/>
+ <source>Setup complete.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="93"/>
+ <source>Downloading '%1' plugin (%2/%3)...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="104"/>
+ <source>Plugins installed successfully.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="120"/>
+ <source>Generating SSL certificate...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="170"/>
+ <source>Downloading plugin: %1 (1/%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/PluginWizardPage.cpp" line="239"/>
+ <source>Getting plugin list...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="src/MainWindow.cpp" line="60"/>
+ <source>Barrier Configurations (*.sgc);;All files (*.*)</source>
+ <translation type="finished">Barrier 設定檔 (*.sgc);;所有檔案 (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/MainWindow.cpp" line="67"/>
+ <source>Barrier Configurations (*.conf);;All files (*.*)</source>
+ <translation type="finished">Barrier 設定檔 (*.conf);;所有檔案 (*.*)</translation>
+ </message>
+ <message>
+ <location filename="src/main.cpp" line="119"/>
+ <source>System tray is unavailable, quitting.</source>
+ <translation type="finished">未能å–得系統工具欄,正在離開。</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialog</name>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="67"/>
+ <source>Screen name is empty</source>
+ <translation type="finished">顯示å稱ä¸èƒ½ç©ºç™½</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="68"/>
+ <source>The screen name cannot be empty. Please either fill in a name or cancel the dialog.</source>
+ <translation type="finished">Screen name必填,請填入screen nameæˆ–å–æ¶ˆã€‚</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="83"/>
+ <source>Screen name matches alias</source>
+ <translation type="finished">顯示åç¨±ç›¸åŒæ–¼åˆ¥å</translation>
+ </message>
+ <message>
+ <location filename="src/ScreenSettingsDialog.cpp" line="84"/>
+ <source>The screen name cannot be the same as an alias. Please either remove the alias or change the screen name.</source>
+ <translation type="finished">Screen nameä¸èƒ½èˆ‡åˆ¥å相åŒï¼Œè«‹åˆªé™¤åˆ¥å或修改screen name。</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSettingsDialogBase</name>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="14"/>
+ <source>Screen Settings</source>
+ <translation type="finished">顯示設定</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="22"/>
+ <source>Screen &amp;name:</source>
+ <translation type="finished">顯示å稱:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="42"/>
+ <source>A&amp;liases</source>
+ <translation type="finished">別å</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="57"/>
+ <source>&amp;Add</source>
+ <translation type="finished">添加</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="74"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">移除</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="97"/>
+ <source>&amp;Modifier keys</source>
+ <translation type="finished">功能éµ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="106"/>
+ <source>&amp;Shift:</source>
+ <translation type="finished">&amp;undefinedShift:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="117"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="164"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="211"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="258"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="305"/>
+ <source>Shift</source>
+ <translation type="finished">Shift</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="122"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="169"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="216"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="263"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="310"/>
+ <source>Ctrl</source>
+ <translation type="finished">Ctrl</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="127"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="174"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="221"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="268"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="315"/>
+ <source>Alt</source>
+ <translation type="finished">Alt</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="132"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="179"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="226"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="273"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="320"/>
+ <source>Meta</source>
+ <translation type="finished">Meta</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="137"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="184"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="231"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="278"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="325"/>
+ <source>Super</source>
+ <translation type="finished">Super</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="142"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="189"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="236"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="283"/>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="330"/>
+ <source>None</source>
+ <translation type="finished">None</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="150"/>
+ <source>&amp;Ctrl:</source>
+ <translation type="finished">&amp;undefinedCtrl:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="197"/>
+ <source>Al&amp;t:</source>
+ <translation type="finished">&amp;undefinedl&amp;t:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="244"/>
+ <source>M&amp;eta:</source>
+ <translation type="finished">&amp;undefined&amp;eta:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="291"/>
+ <source>S&amp;uper:</source>
+ <translation type="finished">&amp;undefined&amp;uper:</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="358"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">死角</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="367"/>
+ <source>Top-left</source>
+ <translation type="finished">左上</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="374"/>
+ <source>Top-right</source>
+ <translation type="finished">å³ä¸Š</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="381"/>
+ <source>Bottom-left</source>
+ <translation type="finished">左下</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="388"/>
+ <source>Bottom-right</source>
+ <translation type="finished">å³ä¸‹</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="397"/>
+ <source>Corner Si&amp;ze:</source>
+ <translation type="finished">è§’è½å¤§å°ï¼š</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="428"/>
+ <source>&amp;Fixes</source>
+ <translation type="finished">修正</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="437"/>
+ <source>Fix CAPS LOCK key</source>
+ <translation type="finished">修正CAPS LOCKéµ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="444"/>
+ <source>Fix NUM LOCK key</source>
+ <translation type="finished">修正NUM LOCKéµ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="451"/>
+ <source>Fix SCROLL LOCK key</source>
+ <translation type="finished">修正SCROLL LOCKéµ</translation>
+ </message>
+ <message>
+ <location filename="res/ScreenSettingsDialogBase.ui" line="458"/>
+ <source>Fix XTest for Xinerama</source>
+ <translation type="finished">修正Xinerama的XTest</translation>
+ </message>
+</context>
+<context>
+ <name>ScreenSetupModel</name>
+ <message>
+ <location filename="src/ScreenSetupModel.cpp" line="51"/>
+ <source>&lt;center&gt;Screen: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Double click to edit settings&lt;br&gt;Drag screen to the trashcan to remove it</source>
+ <translation type="finished">&lt;center&gt;螢幕: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;雙擊以編輯設定&lt;br&gt;拖動螢幕至垃圾筒以移除</translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialog</name>
+ <message>
+ <location filename="src/ServerConfigDialog.cpp" line="75"/>
+ <source>Configure server</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ServerConfigDialogBase</name>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="14"/>
+ <source>Server Configuration</source>
+ <translation type="finished">伺æœå™¨è¨­å®š</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="24"/>
+ <source>Screens and links</source>
+ <translation type="finished">螢幕和連çµ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="35"/>
+ <source>Drag a screen from the grid to the trashcan to remove it.</source>
+ <translation type="finished">從網格上拖動螢幕至垃圾筒以移除</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="60"/>
+ <source>Configure the layout of your barrier server configuration.</source>
+ <translation type="finished">設定barrier伺æœå™¨è¨­å®šä½ˆå±€</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="73"/>
+ <source>Drag this button to the grid to add a new screen.</source>
+ <translation type="finished">拖動此按鈕至網格以添加新螢幕</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="128"/>
+ <source>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</source>
+ <translation type="finished">拖動新螢幕至網格或在網格上拖動螢幕以改變佈局ä½ç½®ã€‚
+拖動螢幕至垃圾筒以移除。
+雙擊螢幕以編輯設定。</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="157"/>
+ <source>Hotkeys</source>
+ <translation type="finished">å¿«æ·éµ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="163"/>
+ <source>&amp;Hotkeys</source>
+ <translation type="finished">å¿«æ·éµ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="175"/>
+ <source>&amp;New</source>
+ <translation type="finished">新建</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="185"/>
+ <source>&amp;Edit</source>
+ <translation type="finished">編輯</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="195"/>
+ <source>&amp;Remove</source>
+ <translation type="finished">移除</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="218"/>
+ <source>A&amp;ctions</source>
+ <translation type="finished">動作</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="230"/>
+ <source>Ne&amp;w</source>
+ <translation type="finished">新建</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="240"/>
+ <source>E&amp;dit</source>
+ <translation type="finished">編輯</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="250"/>
+ <source>Re&amp;move</source>
+ <translation type="finished">移除</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="274"/>
+ <source>Advanced server settings</source>
+ <translation type="finished">伺æœå™¨é€²éšŽè¨­å®š</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="280"/>
+ <source>&amp;Switch</source>
+ <translation type="finished">切æ›</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="291"/>
+ <source>Switch &amp;after waiting</source>
+ <translation type="finished">切æ›å‰ç¨å¾Œ</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="330"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="383"/>
+ <location filename="res/ServerConfigDialogBase.ui" line="458"/>
+ <source>ms</source>
+ <translation type="finished">微秒</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="344"/>
+ <source>Switch on double &amp;tap within</source>
+ <translation type="finished">於多少時間內雙擊滑鼠進行切æ›</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="408"/>
+ <source>&amp;Options</source>
+ <translation type="finished">é¸é …</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="419"/>
+ <source>&amp;Check clients every</source>
+ <translation type="finished">æ¯éš”多少時間檢查å„客戶端</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="470"/>
+ <source>Use &amp;relative mouse moves</source>
+ <translation type="finished">使用滑鼠相å°ç§»å‹•æ–¹å¼</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="480"/>
+ <source>S&amp;ynchronize screen savers</source>
+ <translation type="finished">åŒæ­¥èž¢å¹•ä¿è­·ç¨‹å¼</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="490"/>
+ <source>Don't take &amp;foreground window on Windows servers</source>
+ <translation type="finished">在Windows伺æœå™¨ä¸Šä¸­ä¸ç²å–剿™¯è¦–窗</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="510"/>
+ <source>Ignore auto config clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="520"/>
+ <source>&amp;Dead corners</source>
+ <translation type="finished">死角</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="529"/>
+ <source>To&amp;p-left</source>
+ <translation type="finished">左上方</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="536"/>
+ <source>Top-rig&amp;ht</source>
+ <translation type="finished">å³ä¸Šæ–¹</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="543"/>
+ <source>&amp;Bottom-left</source>
+ <translation type="finished">左下方</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="550"/>
+ <source>Bottom-ri&amp;ght</source>
+ <translation type="finished">å³ä¸‹æ–¹</translation>
+ </message>
+ <message>
+ <location filename="res/ServerConfigDialogBase.ui" line="572"/>
+ <source>Cor&amp;ner Size:</source>
+ <translation type="finished">è§’è½å¤§å°ï¼š</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="131"/>
+ <source>Save log file to...</source>
+ <translation type="finished">儲存記錄至檔案...</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="151"/>
+ <source>Elevate Barrier</source>
+ <translation type="finished">以管ç†å“¡èº«ä»½ä½¿ç”¨ Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SettingsDialog.cpp" line="152"/>
+ <source>Are you sure you want to elevate Barrier?
+
+This allows Barrier to interact with elevated processes and the UAC dialog, but can cause problems with non-elevated processes. Elevate Barrier only if you really need to.</source>
+ <translation type="finished">你是å¦è‚¯å®šä»¥ç®¡ç†å“¡èº«ä»½ä½¿ç”¨ Barrier ?
+這將會容許 Barrier 接觸系統程åºåŠ UAC 使用者帳戶控制,但å¯èƒ½æœƒèˆ‡éžç®¡ç†å“¡èº«ä»½åŸ·è¡Œçš„程å¼ç™¼ç”Ÿå•題。請èªçœŸè€ƒæ…®ã€‚</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialogBase</name>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="14"/>
+ <source>Settings</source>
+ <translation type="finished">設定</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="32"/>
+ <source>Sc&amp;reen name:</source>
+ <translation type="finished">顯示å稱:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="49"/>
+ <source>P&amp;ort:</source>
+ <translation type="finished">端å£</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="78"/>
+ <source>&amp;Interface:</source>
+ <translation type="finished">網絡界é¢ï¼š</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="120"/>
+ <source>Elevate mode</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="127"/>
+ <source>&amp;Hide on startup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="146"/>
+ <source>&amp;Network Security</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="155"/>
+ <source>Use &amp;SSL encryption (unique certificate)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="184"/>
+ <source>Logging</source>
+ <translation type="finished">記錄日誌</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="202"/>
+ <source>&amp;Logging level:</source>
+ <translation type="finished">記錄等級:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="251"/>
+ <source>Log to file:</source>
+ <translation type="finished">記錄至檔案:</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="268"/>
+ <source>Browse...</source>
+ <translation type="finished">ç€è¦½...</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="213"/>
+ <source>Error</source>
+ <translation type="finished">錯誤</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="107"/>
+ <source>&amp;Language:</source>
+ <translation type="finished">語言</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="20"/>
+ <source>&amp;Miscellaneous</source>
+ <translation type="finished">&amp;雜項</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="218"/>
+ <source>Warning</source>
+ <translation type="finished">警告</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="223"/>
+ <source>Note</source>
+ <translation type="finished">通知</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="228"/>
+ <source>Info</source>
+ <translation type="finished">訊æ¯</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="233"/>
+ <source>Debug</source>
+ <translation type="finished">åµéŒ¯</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="238"/>
+ <source>Debug1</source>
+ <translation type="finished">åµéŒ¯1</translation>
+ </message>
+ <message>
+ <location filename="res/SettingsDialogBase.ui" line="243"/>
+ <source>Debug2</source>
+ <translation type="finished">åµéŒ¯2</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizard</name>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="72"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">設定Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="113"/>
+ <source>Please select an option.</source>
+ <translation type="finished">請挑é¸ä¸€é¸é …。</translation>
+ </message>
+ <message>
+ <location filename="src/SetupWizard.cpp" line="80"/>
+ <source>Please enter your email address and password.</source>
+ <translation type="finished">請輸入你的email和密碼</translation>
+ </message>
+</context>
+<context>
+ <name>SetupWizardBase</name>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="26"/>
+ <source>Setup Barrier</source>
+ <translation type="finished">設定Barrier</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="30"/>
+ <source>Welcome</source>
+ <translation type="finished">歡迎</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="39"/>
+ <source>Thanks for installing Barrier!</source>
+ <translation type="finished">æ„Ÿè¬æ‚¨å®‰è£Barrier!</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="114"/>
+ <source>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</source>
+ <translation type="finished">Barrier是能讓您於多å°é›»è…¦ä¹‹é–“共享一組éµç›¤èˆ‡æ»‘鼠的自由ã€é–‹æºè»Ÿé«”。您åªé ˆå°‡æ»‘鼠移出電腦螢幕邊緣就能éŠèµ°æ–¼ä¸åŒé›»è…¦ä¹‹é–“,甚至能共用æ¯å°é›»è…¦çš„系統剪貼簿。這些功能僅需ä¾é ä¸€æ¢ç¶²è·¯ç·šé€£çµï¼Œè€Œä¸”Barrier是跨平å°çš„ï¼ˆå¯æ–¼Windowsã€Mac OS XåŠLinux上執行)。</translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="125"/>
+ <source>Activate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="131"/>
+ <source>&amp;Activate now...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="152"/>
+ <source>Email:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="178"/>
+ <source>Password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="204"/>
+ <source>&lt;a href=&quot;https://symless.com/account/reset/&quot;&gt;Forgot password&lt;/a&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="232"/>
+ <source>&amp;Skip activation</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="277"/>
+ <source>&amp;Server (share this computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="290"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="326"/>
+ <source>&amp;Client (use another computer's mouse and keyboard)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="339"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="res/SetupWizardBase.ui" line="262"/>
+ <source>Server or Client?</source>
+ <translation type="finished">伺æœå™¨ç«¯æˆ–客戶端?</translation>
+ </message>
+</context>
+<context>
+ <name>SslCertificate</name>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="42"/>
+ <source>Failed to get profile directory.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="141"/>
+ <source>SSL certificate generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="170"/>
+ <source>SSL fingerprint generated.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/SslCertificate.cpp" line="173"/>
+ <source>Failed to find SSL fingerprint.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VersionChecker</name>
+ <message>
+ <location filename="src/VersionChecker.cpp" line="102"/>
+ <source>Unknown</source>
+ <translation type="finished">未知</translation>
+ </message>
+</context>
+<context>
+ <name>WebClient</name>
+ <message>
+ <location filename="src/WebClient.cpp" line="44"/>
+ <source>An error occurred while trying to sign in. Please contact the helpdesk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="65"/>
+ <source>Login failed, invalid email or password.</source>
+ <translation type="finished">登入失敗,無效的email或密碼</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="78"/>
+ <source>Login failed, an error occurred.
+
+%1</source>
+ <translation type="finished">登入失敗,錯誤。
+
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="86"/>
+ <source>Login failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="finished">登入失敗,錯誤。
+
+伺æœå™¨ï¼š
+
+%1</translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="101"/>
+ <source>An error occurred while trying to query the plugin list. Please contact the help desk, and provide the following details.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="120"/>
+ <source>Get plugin list failed, invalid user email or password.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="131"/>
+ <source>Get plugin list failed, an error occurred.
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/WebClient.cpp" line="137"/>
+ <source>Get plugin list failed, an error occurred.
+
+Server response:
+
+%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ZeroconfService</name>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="82"/>
+ <source>zeroconf server detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="91"/>
+ <source>zeroconf client detected: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="99"/>
+ <location filename="src/ZeroconfService.cpp" line="130"/>
+ <source>Zero configuration service</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="100"/>
+ <source>Error code: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="131"/>
+ <source>Unable to start the zeroconf: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="140"/>
+ <source>Barrier</source>
+ <translation type="finished">Barrier</translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="141"/>
+ <source>Failed to get local IP address. Please manually type in server address on your clients</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="src/ZeroconfService.cpp" line="147"/>
+ <location filename="src/ZeroconfService.cpp" line="154"/>
+ <source>%1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/src/gui/res/mac/Info.plist b/src/gui/res/mac/Info.plist
new file mode 100644
index 0000000..d48d7c6
--- /dev/null
+++ b/src/gui/res/mac/Info.plist
@@ -0,0 +1,28 @@
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDisplayName</key>
+ <string>Barrier</string>
+ <key>CFBundleExecutable</key>
+ <string>Barrier</string>
+ <key>CFBundleIconFile</key>
+ <string>Barrier.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>barrier</string>
+ <!-- TODO: Fix this in v2.0 //-->
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Barrier</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.8.8</string>
+ <key>CFBundleVersion</key>
+ <string>1.8.8</string>
+ <key>NSHumanReadableCopyright</key>
+ <string>© 2012-2016, Symless Ltd</string>
+ </dict>
+</plist>
diff --git a/src/gui/res/mac/QBarrier.icns b/src/gui/res/mac/QBarrier.icns
new file mode 100644
index 0000000..0d87c5a
--- /dev/null
+++ b/src/gui/res/mac/QBarrier.icns
Binary files differ
diff --git a/src/gui/res/win/Barrier.rc b/src/gui/res/win/Barrier.rc
new file mode 100644
index 0000000..9db2b3e
--- /dev/null
+++ b/src/gui/res/win/Barrier.rc
@@ -0,0 +1 @@
+IDI_ICON1 ICON DISCARDABLE "../icons/256x256/barrier.ico"
diff --git a/src/gui/src/AboutDialog.cpp b/src/gui/src/AboutDialog.cpp
new file mode 100644
index 0000000..76ba26b
--- /dev/null
+++ b/src/gui/src/AboutDialog.cpp
@@ -0,0 +1,55 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "AboutDialog.h"
+
+#include <QtCore>
+#include <QtGui>
+
+AboutDialog::AboutDialog(QWidget* parent, const QString& barrierApp) :
+ QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
+ Ui::AboutDialogBase()
+{
+ setupUi(this);
+
+ m_versionChecker.setApp(barrierApp);
+ QString version = m_versionChecker.getVersion();
+ version = version + '-' + BARRIER_VERSION_STAGE;
+#ifdef BARRIER_REVISION
+ version += '-';
+ version += BARRIER_REVISION;
+#endif
+ m_pLabelBarrierVersion->setText(version);
+
+ QString buildDateString = QString::fromLocal8Bit(__DATE__).simplified();
+ QDate buildDate = QLocale("en_US").toDate(buildDateString, "MMM d yyyy");
+ m_pLabelBuildDate->setText(buildDate.toString(Qt::SystemLocaleLongDate));
+
+ // change default size based on os
+#if defined(Q_OS_MAC)
+ QSize size(600, 380);
+ setMaximumSize(size);
+ setMinimumSize(size);
+ resize(size);
+#elif defined(Q_OS_LINUX)
+ QSize size(600, 330);
+ setMaximumSize(size);
+ setMinimumSize(size);
+ resize(size);
+#endif
+}
diff --git a/src/gui/src/AboutDialog.h b/src/gui/src/AboutDialog.h
new file mode 100644
index 0000000..3c498b4
--- /dev/null
+++ b/src/gui/src/AboutDialog.h
@@ -0,0 +1,43 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(ABOUTDIALOG__H)
+
+#define ABOUTDIALOG__H
+
+#include <QDialog>
+#include "VersionChecker.h"
+
+#include "ui_AboutDialogBase.h"
+
+class QWidget;
+class QString;
+
+class AboutDialog : public QDialog, public Ui::AboutDialogBase
+{
+ Q_OBJECT
+
+ public:
+ AboutDialog(QWidget* parent, const QString& barrierApp = QString());
+
+ private:
+ VersionChecker m_versionChecker;
+};
+
+#endif
+
diff --git a/src/gui/src/AboutDialogBase.ui b/src/gui/src/AboutDialogBase.ui
new file mode 100644
index 0000000..96fee15
--- /dev/null
+++ b/src/gui/src/AboutDialogBase.ui
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AboutDialogBase</class>
+ <widget class="QDialog" name="AboutDialogBase">
+ <property name="windowModality">
+ <enum>Qt::ApplicationModal</enum>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>450</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>450</width>
+ <height>300</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>450</width>
+ <height>300</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>About Barrier</string>
+ </property>
+ <property name="modal">
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout">
+ <item row="2" column="1" colspan="2">
+ <widget class="QLabel" name="label_3">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>&lt;p&gt;
+Keyboard and mouse sharing application. Cross platform and open source.&lt;br /&gt;&lt;br /&gt;
+Copyright © 2018 Debauchee Open Source Group&lt;br /&gt;
+Copyright © 2012-2016 Symless Ltd.&lt;br /&gt;
+Copyright © 2002-2012 Chris Schoeneman, Nick Bolton, Volker Lanz.&lt;br /&gt;&lt;br /&gt;
+Barrier is released under the GNU General Public License (GPLv2).&lt;br /&gt;&lt;br /&gt;
+Barrier is based on CosmoSynergy by Richard Lee and Adam Feder.&lt;br /&gt;
+The Barrier GUI is based on QSynergy by Volker Lanz.
+&lt;/p&gt;</string>
+ </property>
+ <property name="margin">
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" colspan="2">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Preferred</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>100</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="Barrier.qrc">:/res/image/about.png</pixmap>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2">
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>5</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="5" column="1" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Version:</string>
+ </property>
+ <property name="margin">
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pLabelBarrierVersion">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Unknown</string>
+ </property>
+ <property name="margin">
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="6" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Build Date: </string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pLabelBuildDate">
+ <property name="text">
+ <string>Unknown</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonOk">
+ <property name="text">
+ <string>&amp;Ok</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources>
+ <include location="Barrier.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>buttonOk</sender>
+ <signal>clicked()</signal>
+ <receiver>AboutDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>315</x>
+ <y>374</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>301</x>
+ <y>3</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/Action.cpp b/src/gui/src/Action.cpp
new file mode 100644
index 0000000..2e0f339
--- /dev/null
+++ b/src/gui/src/Action.cpp
@@ -0,0 +1,150 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "Action.h"
+
+#include <QSettings>
+#include <QTextStream>
+
+const char* Action::m_ActionTypeNames[] =
+{
+ "keyDown", "keyUp", "keystroke",
+ "switchToScreen", "switchInDirection", "lockCursorToScreen",
+ "mouseDown", "mouseUp", "mousebutton"
+};
+
+const char* Action::m_SwitchDirectionNames[] = { "left", "right", "up", "down" };
+const char* Action::m_LockCursorModeNames[] = { "toggle", "on", "off" };
+
+Action::Action() :
+ m_KeySequence(),
+ m_Type(keystroke),
+ m_TypeScreenNames(),
+ m_SwitchScreenName(),
+ m_SwitchDirection(switchLeft),
+ m_LockCursorMode(lockCursorToggle),
+ m_ActiveOnRelease(false),
+ m_HasScreens(false)
+{
+}
+
+QString Action::text() const
+{
+ QString text = QString(m_ActionTypeNames[keySequence().isMouseButton() ? type() + 6 : type() ]) + "(";
+
+ switch (type())
+ {
+ case keyDown:
+ case keyUp:
+ case keystroke:
+ {
+ text += keySequence().toString();
+
+ if (!keySequence().isMouseButton())
+ {
+ const QStringList& screens = typeScreenNames();
+ if (haveScreens() && !screens.isEmpty())
+ {
+ text += ",";
+
+ for (int i = 0; i < screens.size(); i++)
+ {
+ text += screens[i];
+ if (i != screens.size() - 1)
+ text += ":";
+ }
+ }
+ else
+ text += ",*";
+ }
+ }
+ break;
+
+ case switchToScreen:
+ text += switchScreenName();
+ break;
+
+ case switchInDirection:
+ text += m_SwitchDirectionNames[m_SwitchDirection];
+ break;
+
+ case lockCursorToScreen:
+ text += m_LockCursorModeNames[m_LockCursorMode];
+ break;
+
+ default:
+ Q_ASSERT(0);
+ break;
+ }
+
+ text += ")";
+
+ return text;
+}
+
+void Action::loadSettings(QSettings& settings)
+{
+ keySequence().loadSettings(settings);
+ setType(settings.value("type", keyDown).toInt());
+
+ typeScreenNames().clear();
+ int numTypeScreens = settings.beginReadArray("typeScreenNames");
+ for (int i = 0; i < numTypeScreens; i++)
+ {
+ settings.setArrayIndex(i);
+ typeScreenNames().append(settings.value("typeScreenName").toString());
+ }
+ settings.endArray();
+
+ setSwitchScreenName(settings.value("switchScreenName").toString());
+ setSwitchDirection(settings.value("switchInDirection", switchLeft).toInt());
+ setLockCursorMode(settings.value("lockCursorToScreen", lockCursorToggle).toInt());
+ setActiveOnRelease(settings.value("activeOnRelease", false).toBool());
+ setHaveScreens(settings.value("hasScreens", false).toBool());
+}
+
+void Action::saveSettings(QSettings& settings) const
+{
+ keySequence().saveSettings(settings);
+ settings.setValue("type", type());
+
+ settings.beginWriteArray("typeScreenNames");
+ for (int i = 0; i < typeScreenNames().size(); i++)
+ {
+ settings.setArrayIndex(i);
+ settings.setValue("typeScreenName", typeScreenNames()[i]);
+ }
+ settings.endArray();
+
+ settings.setValue("switchScreenName", switchScreenName());
+ settings.setValue("switchInDirection", switchDirection());
+ settings.setValue("lockCursorToScreen", lockCursorMode());
+ settings.setValue("activeOnRelease", activeOnRelease());
+ settings.setValue("hasScreens", haveScreens());
+}
+
+QTextStream& operator<<(QTextStream& outStream, const Action& action)
+{
+ if (action.activeOnRelease())
+ outStream << ";";
+
+ outStream << action.text();
+
+ return outStream;
+}
+
diff --git a/src/gui/src/Action.h b/src/gui/src/Action.h
new file mode 100644
index 0000000..2786842
--- /dev/null
+++ b/src/gui/src/Action.h
@@ -0,0 +1,89 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(ACTION_H)
+
+#define ACTION_H
+
+#include "KeySequence.h"
+
+#include <QString>
+#include <QStringList>
+#include <QList>
+
+class ActionDialog;
+class QSettings;
+class QTextStream;
+
+class Action
+{
+ friend class ActionDialog;
+ friend QTextStream& operator<<(QTextStream& outStream, const Action& action);
+
+ public:
+ enum ActionType { keyDown, keyUp, keystroke, switchToScreen, switchInDirection, lockCursorToScreen, mouseDown, mouseUp, mousebutton };
+ enum SwitchDirection { switchLeft, switchRight, switchUp, switchDown };
+ enum LockCursorMode { lockCursorToggle, lockCursonOn, lockCursorOff };
+
+ public:
+ Action();
+
+ public:
+ QString text() const;
+ const KeySequence& keySequence() const { return m_KeySequence; }
+ void loadSettings(QSettings& settings);
+ void saveSettings(QSettings& settings) const;
+ int type() const { return m_Type; }
+ const QStringList& typeScreenNames() const { return m_TypeScreenNames; }
+ const QString& switchScreenName() const { return m_SwitchScreenName; }
+ int switchDirection() const { return m_SwitchDirection; }
+ int lockCursorMode() const { return m_LockCursorMode; }
+ bool activeOnRelease() const { return m_ActiveOnRelease; }
+ bool haveScreens() const { return m_HasScreens; }
+
+ protected:
+ KeySequence& keySequence() { return m_KeySequence; }
+ void setKeySequence(const KeySequence& seq) { m_KeySequence = seq; }
+ void setType(int t) { m_Type = t; }
+ QStringList& typeScreenNames() { return m_TypeScreenNames; }
+ void setSwitchScreenName(const QString& n) { m_SwitchScreenName = n; }
+ void setSwitchDirection(int d) { m_SwitchDirection = d; }
+ void setLockCursorMode(int m) { m_LockCursorMode = m; }
+ void setActiveOnRelease(bool b) { m_ActiveOnRelease = b; }
+ void setHaveScreens(bool b) { m_HasScreens = b; }
+
+ private:
+ KeySequence m_KeySequence;
+ int m_Type;
+ QStringList m_TypeScreenNames;
+ QString m_SwitchScreenName;
+ int m_SwitchDirection;
+ int m_LockCursorMode;
+ bool m_ActiveOnRelease;
+ bool m_HasScreens;
+
+ static const char* m_ActionTypeNames[];
+ static const char* m_SwitchDirectionNames[];
+ static const char* m_LockCursorModeNames[];
+};
+
+typedef QList<Action> ActionList;
+
+QTextStream& operator<<(QTextStream& outStream, const Action& action);
+
+#endif
diff --git a/src/gui/src/ActionDialog.cpp b/src/gui/src/ActionDialog.cpp
new file mode 100644
index 0000000..e824ea3
--- /dev/null
+++ b/src/gui/src/ActionDialog.cpp
@@ -0,0 +1,109 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ActionDialog.h"
+
+#include "Hotkey.h"
+#include "Action.h"
+#include "ServerConfig.h"
+#include "KeySequence.h"
+
+#include <QtCore>
+#include <QtGui>
+
+ActionDialog::ActionDialog(QWidget* parent, ServerConfig& config, Hotkey& hotkey, Action& action) :
+ QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
+ Ui::ActionDialogBase(),
+ m_ServerConfig(config),
+ m_Hotkey(hotkey),
+ m_Action(action),
+ m_pButtonGroupType(new QButtonGroup(this))
+{
+ setupUi(this);
+
+ // work around Qt Designer's lack of a QButtonGroup; we need it to get
+ // at the button id of the checked radio button
+ QRadioButton* const typeButtons[] = { m_pRadioPress, m_pRadioRelease, m_pRadioPressAndRelease, m_pRadioSwitchToScreen, m_pRadioSwitchInDirection, m_pRadioLockCursorToScreen };
+
+ for (unsigned int i = 0; i < sizeof(typeButtons) / sizeof(typeButtons[0]); i++)
+ m_pButtonGroupType->addButton(typeButtons[i], i);
+
+ m_pKeySequenceWidgetHotkey->setText(m_Action.keySequence().toString());
+ m_pKeySequenceWidgetHotkey->setKeySequence(m_Action.keySequence());
+ m_pButtonGroupType->button(m_Action.type())->setChecked(true);
+ m_pComboSwitchInDirection->setCurrentIndex(m_Action.switchDirection());
+ m_pComboLockCursorToScreen->setCurrentIndex(m_Action.lockCursorMode());
+
+ if (m_Action.activeOnRelease())
+ m_pRadioHotkeyReleased->setChecked(true);
+ else
+ m_pRadioHotkeyPressed->setChecked(true);
+
+ m_pGroupBoxScreens->setChecked(m_Action.haveScreens());
+
+ int idx = 0;
+ foreach(const Screen& screen, serverConfig().screens())
+ if (!screen.isNull())
+ {
+ QListWidgetItem *pListItem = new QListWidgetItem(screen.name());
+ m_pListScreens->addItem(pListItem);
+ if (m_Action.typeScreenNames().indexOf(screen.name()) != -1)
+ m_pListScreens->setCurrentItem(pListItem);
+
+ m_pComboSwitchToScreen->addItem(screen.name());
+ if (screen.name() == m_Action.switchScreenName())
+ m_pComboSwitchToScreen->setCurrentIndex(idx);
+
+ idx++;
+ }
+}
+
+void ActionDialog::accept()
+{
+ if (!sequenceWidget()->valid() && m_pButtonGroupType->checkedId() >= 0 && m_pButtonGroupType->checkedId() < 3)
+ return;
+
+ m_Action.setKeySequence(sequenceWidget()->keySequence());
+ m_Action.setType(m_pButtonGroupType->checkedId());
+ m_Action.setHaveScreens(m_pGroupBoxScreens->isChecked());
+
+ m_Action.typeScreenNames().clear();
+ foreach(const QListWidgetItem* pItem, m_pListScreens->selectedItems())
+ m_Action.typeScreenNames().append(pItem->text());
+
+ m_Action.setSwitchScreenName(m_pComboSwitchToScreen->currentText());
+ m_Action.setSwitchDirection(m_pComboSwitchInDirection->currentIndex());
+ m_Action.setLockCursorMode(m_pComboLockCursorToScreen->currentIndex());
+ m_Action.setActiveOnRelease(m_pRadioHotkeyReleased->isChecked());
+
+ QDialog::accept();
+}
+
+void ActionDialog::on_m_pKeySequenceWidgetHotkey_keySequenceChanged()
+{
+ if (sequenceWidget()->keySequence().isMouseButton())
+ {
+ m_pGroupBoxScreens->setEnabled(false);
+ m_pListScreens->setEnabled(false);
+ }
+ else
+ {
+ m_pGroupBoxScreens->setEnabled(true);
+ m_pListScreens->setEnabled(true);
+ }
+}
diff --git a/src/gui/src/ActionDialog.h b/src/gui/src/ActionDialog.h
new file mode 100644
index 0000000..388be1f
--- /dev/null
+++ b/src/gui/src/ActionDialog.h
@@ -0,0 +1,56 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(ACTIONDIALOG_H)
+
+#define ACTIONDIALOG_H
+
+#include <QDialog>
+
+#include "ui_ActionDialogBase.h"
+
+class Hotkey;
+class Action;
+class QRadioButton;
+class QButtonGroup;
+class ServerConfig;
+
+class ActionDialog : public QDialog, public Ui::ActionDialogBase
+{
+ Q_OBJECT
+
+ public:
+ ActionDialog(QWidget* parent, ServerConfig& config, Hotkey& hotkey, Action& action);
+
+ protected slots:
+ void accept();
+ void on_m_pKeySequenceWidgetHotkey_keySequenceChanged();
+
+ protected:
+ const KeySequenceWidget* sequenceWidget() const { return m_pKeySequenceWidgetHotkey; }
+ const ServerConfig& serverConfig() const { return m_ServerConfig; }
+
+ private:
+ const ServerConfig& m_ServerConfig;
+ Hotkey& m_Hotkey;
+ Action& m_Action;
+
+ QButtonGroup* m_pButtonGroupType;
+};
+
+#endif
diff --git a/src/gui/src/ActionDialogBase.ui b/src/gui/src/ActionDialogBase.ui
new file mode 100644
index 0000000..f6dff78
--- /dev/null
+++ b/src/gui/src/ActionDialogBase.ui
@@ -0,0 +1,581 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ActionDialogBase</class>
+ <widget class="QDialog" name="ActionDialogBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>372</width>
+ <height>484</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Configure Action</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QGroupBox" name="m_pGroupType">
+ <property name="title">
+ <string>Choose the action to perform</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="m_pRadioPress">
+ <property name="text">
+ <string>Press a hotkey</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_pRadioRelease">
+ <property name="text">
+ <string>Release a hotkey</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_pRadioPressAndRelease">
+ <property name="text">
+ <string>Press and release a hotkey</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KeySequenceWidget" name="m_pKeySequenceWidgetHotkey">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="m_pGroupBoxScreens">
+ <property name="title">
+ <string>only on these screens</string>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <layout class="QHBoxLayout">
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QListWidget" name="m_pListScreens">
+ <property name="minimumSize">
+ <size>
+ <width>128</width>
+ <height>64</height>
+ </size>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="Line" name="line">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="m_pRadioSwitchToScreen">
+ <property name="text">
+ <string>Switch to screen</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QComboBox" name="m_pComboSwitchToScreen">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="m_pRadioSwitchInDirection">
+ <property name="text">
+ <string>Switch in direction</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QComboBox" name="m_pComboSwitchInDirection">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <item>
+ <property name="text">
+ <string>left</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>right</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>up</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>down</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="m_pRadioLockCursorToScreen">
+ <property name="text">
+ <string>Lock cursor to screen</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QComboBox" name="m_pComboLockCursorToScreen">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <item>
+ <property name="text">
+ <string>toggle</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>on</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>off</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>This action is performed when</string>
+ </property>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QRadioButton" name="m_pRadioHotkeyPressed">
+ <property name="text">
+ <string>the hotkey is pressed</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_pRadioHotkeyReleased">
+ <property name="text">
+ <string>the hotkey is released</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KeySequenceWidget</class>
+ <extends>QLineEdit</extends>
+ <header>KeySequenceWidget.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ActionDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>245</x>
+ <y>474</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ActionDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>313</x>
+ <y>474</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pGroupType</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pKeySequenceWidgetHotkey</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>104</x>
+ <y>194</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>110</x>
+ <y>132</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioSwitchInDirection</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pKeySequenceWidgetHotkey</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>118</x>
+ <y>322</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>81</x>
+ <y>129</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioLockCursorToScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pKeySequenceWidgetHotkey</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>101</x>
+ <y>353</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>68</x>
+ <y>126</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioPress</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pKeySequenceWidgetHotkey</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>48</x>
+ <y>48</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>45</x>
+ <y>129</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioRelease</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pKeySequenceWidgetHotkey</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>135</x>
+ <y>70</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>148</x>
+ <y>125</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioPressAndRelease</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pKeySequenceWidgetHotkey</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>194</x>
+ <y>100</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>201</x>
+ <y>125</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioSwitchToScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pComboSwitchToScreen</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>148</x>
+ <y>291</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>350</x>
+ <y>290</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioSwitchInDirection</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pComboSwitchInDirection</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>158</x>
+ <y>322</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>350</x>
+ <y>321</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioLockCursorToScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pComboLockCursorToScreen</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>180</x>
+ <y>353</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>350</x>
+ <y>352</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioPress</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pGroupBoxScreens</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>25</x>
+ <y>47</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>33</x>
+ <y>155</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioSwitchToScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pGroupBoxScreens</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>48</x>
+ <y>278</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>98</x>
+ <y>153</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioRelease</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pGroupBoxScreens</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>264</x>
+ <y>67</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>241</x>
+ <y>158</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioPressAndRelease</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pGroupBoxScreens</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>286</x>
+ <y>98</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>290</x>
+ <y>156</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioSwitchInDirection</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pGroupBoxScreens</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>38</x>
+ <y>313</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>64</x>
+ <y>195</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioLockCursorToScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pGroupBoxScreens</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>48</x>
+ <y>339</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>79</x>
+ <y>234</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioSwitchToScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pKeySequenceWidgetHotkey</receiver>
+ <slot>setDisabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>84</x>
+ <y>280</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>185</x>
+ <y>123</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/AddClientDialog.cpp b/src/gui/src/AddClientDialog.cpp
new file mode 100644
index 0000000..afa945d
--- /dev/null
+++ b/src/gui/src/AddClientDialog.cpp
@@ -0,0 +1,129 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "AddClientDialog.h"
+#include "ui_AddClientDialogBase.h"
+
+#include <QPushButton>
+#include <QLabel>
+
+AddClientDialog::AddClientDialog(const QString& clientName, QWidget* parent) :
+ QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
+ Ui::AddClientDialog(),
+ m_AddResult(kAddClientIgnore),
+ m_IgnoreAutoConfigClient(false)
+{
+ setupUi(this);
+
+ m_pLabelHead->setText("A client wants to connect. "
+ "Please choose a location for " + clientName + ".");
+
+ QIcon icon(":res/icons/64x64/video-display.png");
+ QSize IconSize(32,32);
+
+ m_pButtonLeft = new QPushButton(this);
+ m_pButtonLeft->setIcon(icon);
+ m_pButtonLeft->setIconSize(IconSize);
+ gridLayout->addWidget(m_pButtonLeft, 2, 0, 1, 1, Qt::AlignCenter);
+ connect(m_pButtonLeft, SIGNAL(clicked()), this, SLOT(handleButtonLeft()));
+
+ m_pButtonUp = new QPushButton(this);
+ m_pButtonUp->setIcon(icon);
+ m_pButtonUp->setIconSize(IconSize);
+ gridLayout->addWidget(m_pButtonUp, 1, 1, 1, 1, Qt::AlignCenter);
+ connect(m_pButtonUp, SIGNAL(clicked()), this, SLOT(handleButtonUp()));
+
+ m_pButtonRight = new QPushButton(this);
+ m_pButtonRight->setIcon(icon);
+ m_pButtonRight->setIconSize(IconSize);
+ gridLayout->addWidget(m_pButtonRight, 2, 2, 1, 1, Qt::AlignCenter);
+ connect(m_pButtonRight, SIGNAL(clicked()), this, SLOT(handleButtonRight()));
+
+ m_pButtonDown = new QPushButton(this);
+ m_pButtonDown->setIcon(icon);
+ m_pButtonDown->setIconSize(IconSize);
+ gridLayout->addWidget(m_pButtonDown, 3, 1, 1, 1, Qt::AlignCenter);
+ connect(m_pButtonDown, SIGNAL(clicked()), this, SLOT(handleButtonDown()));
+
+ m_pLabelCenter = new QLabel(this);
+ m_pLabelCenter->setPixmap(QPixmap(":res/icons/64x64/video-display.png"));
+ gridLayout->addWidget(m_pLabelCenter, 2, 1, 1, 1, Qt::AlignCenter);
+
+#if defined(Q_OS_MAC)
+ m_pDialogButtonBox->setLayoutDirection(Qt::RightToLeft);
+#endif
+
+ QPushButton* advanced = m_pDialogButtonBox->addButton("Advanced",
+ QDialogButtonBox::HelpRole);
+ connect(advanced, SIGNAL(clicked()), this, SLOT(handleButtonAdvanced()));
+}
+
+AddClientDialog::~AddClientDialog()
+{
+ delete m_pButtonUp;
+ delete m_pButtonDown;
+ delete m_pButtonLeft;
+ delete m_pButtonRight;
+ delete m_pLabelCenter;
+}
+
+void AddClientDialog::changeEvent(QEvent *e)
+{
+ QDialog::changeEvent(e);
+ switch (e->type()) {
+ case QEvent::LanguageChange:
+ retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
+
+void AddClientDialog::handleButtonLeft()
+{
+ m_AddResult = kAddClientLeft;
+ close();
+}
+
+void AddClientDialog::handleButtonUp()
+{
+ m_AddResult = kAddClientUp;
+ close();
+}
+
+void AddClientDialog::handleButtonRight()
+{
+ m_AddResult = kAddClientRight;
+ close();
+}
+
+void AddClientDialog::handleButtonDown()
+{
+ m_AddResult = kAddClientDown;
+ close();
+}
+
+void AddClientDialog::handleButtonAdvanced()
+{
+ m_AddResult = kAddClientOther;
+ close();
+}
+
+void AddClientDialog::on_m_pCheckBoxIgnoreClient_toggled(bool checked)
+{
+ m_IgnoreAutoConfigClient = checked;
+}
diff --git a/src/gui/src/AddClientDialog.h b/src/gui/src/AddClientDialog.h
new file mode 100644
index 0000000..6d49cee
--- /dev/null
+++ b/src/gui/src/AddClientDialog.h
@@ -0,0 +1,68 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef ADDCLIENTDIALOG_H
+#define ADDCLIENTDIALOG_H
+
+#include "ui_AddClientDialogBase.h"
+
+#include <QDialog>
+
+class QPushButton;
+class QLabel;
+
+enum {
+ kAddClientRight,
+ kAddClientLeft,
+ kAddClientUp,
+ kAddClientDown,
+ kAddClientOther,
+ kAddClientIgnore
+};
+
+class AddClientDialog : public QDialog, public Ui::AddClientDialog
+{
+ Q_OBJECT
+public:
+ AddClientDialog(const QString& clientName, QWidget* parent = 0);
+ ~AddClientDialog();
+
+ int addResult() { return m_AddResult; }
+ bool ignoreAutoConfigClient() { return m_IgnoreAutoConfigClient; }
+
+protected:
+ void changeEvent(QEvent *e);
+
+private slots:
+ void on_m_pCheckBoxIgnoreClient_toggled(bool checked);
+ void handleButtonLeft();
+ void handleButtonUp();
+ void handleButtonRight();
+ void handleButtonDown();
+ void handleButtonAdvanced();
+
+private:
+ QPushButton* m_pButtonLeft;
+ QPushButton* m_pButtonUp;
+ QPushButton* m_pButtonRight;
+ QPushButton* m_pButtonDown;
+ QLabel* m_pLabelCenter;
+ int m_AddResult;
+ bool m_IgnoreAutoConfigClient;
+};
+
+#endif // ADDCLIENTDIALOG_H
diff --git a/src/gui/src/AddClientDialogBase.ui b/src/gui/src/AddClientDialogBase.ui
new file mode 100644
index 0000000..24397b4
--- /dev/null
+++ b/src/gui/src/AddClientDialogBase.ui
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AddClientDialog</class>
+ <widget class="QDialog" name="AddClientDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>350</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <widget class="QWidget" name="gridLayoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>381</width>
+ <height>301</height>
+ </rect>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="1">
+ <widget class="QLabel" name="m_pLabelHead">
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0">
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="horizontalLayoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>320</y>
+ <width>381</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QCheckBox" name="m_pCheckBoxIgnoreClient">
+ <property name="text">
+ <string>Ignore auto connect clients</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="m_pDialogButtonBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Ignore</set>
+ </property>
+ <property name="centerButtons">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>m_pDialogButtonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>AddClientDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pDialogButtonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>AddClientDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/AppConfig.cpp b/src/gui/src/AppConfig.cpp
new file mode 100644
index 0000000..2f8779d
--- /dev/null
+++ b/src/gui/src/AppConfig.cpp
@@ -0,0 +1,231 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "AppConfig.h"
+#include "QUtility.h"
+
+#include <QtCore>
+#include <QtNetwork>
+
+#if defined(Q_OS_WIN)
+const char AppConfig::m_BarriersName[] = "barriers.exe";
+const char AppConfig::m_BarriercName[] = "barrierc.exe";
+const char AppConfig::m_BarrierLogDir[] = "log/";
+#define DEFAULT_PROCESS_MODE Service
+#else
+const char AppConfig::m_BarriersName[] = "barriers";
+const char AppConfig::m_BarriercName[] = "barrierc";
+const char AppConfig::m_BarrierLogDir[] = "/var/log/";
+#define DEFAULT_PROCESS_MODE Desktop
+#endif
+
+const ElevateMode defaultElevateMode = ElevateAsNeeded;
+
+static const char* logLevelNames[] =
+{
+ "ERROR",
+ "WARNING",
+ "NOTE",
+ "INFO",
+ "DEBUG",
+ "DEBUG1",
+ "DEBUG2"
+};
+
+AppConfig::AppConfig(QSettings* settings) :
+ m_pSettings(settings),
+ m_ScreenName(),
+ m_Port(24800),
+ m_Interface(),
+ m_LogLevel(0),
+ m_WizardLastRun(0),
+ m_ProcessMode(DEFAULT_PROCESS_MODE),
+ m_AutoConfig(true),
+ m_ElevateMode(defaultElevateMode),
+ m_AutoConfigPrompted(false),
+ m_CryptoEnabled(false),
+ m_AutoHide(false),
+ m_MinimizeToTray(false)
+{
+ Q_ASSERT(m_pSettings);
+
+ loadSettings();
+}
+
+AppConfig::~AppConfig()
+{
+ saveSettings();
+}
+
+const QString &AppConfig::screenName() const { return m_ScreenName; }
+
+int AppConfig::port() const { return m_Port; }
+
+const QString &AppConfig::networkInterface() const { return m_Interface; }
+
+int AppConfig::logLevel() const { return m_LogLevel; }
+
+bool AppConfig::logToFile() const { return m_LogToFile; }
+
+const QString &AppConfig::logFilename() const { return m_LogFilename; }
+
+QString AppConfig::barrierLogDir() const
+{
+#if defined(Q_OS_WIN)
+ // on windows, we want to log to program files
+ return barrierProgramDir() + "log/";
+#else
+ // on unix, we'll log to the standard log dir
+ return "/var/log/";
+#endif
+}
+
+QString AppConfig::barrierProgramDir() const
+{
+ // barrier binaries should be in the same dir.
+ return QCoreApplication::applicationDirPath() + "/";
+}
+
+void AppConfig::persistLogDir()
+{
+ QDir dir = barrierLogDir();
+
+ // persist the log directory
+ if (!dir.exists())
+ {
+ dir.mkpath(dir.path());
+ }
+}
+
+const QString AppConfig::logFilenameCmd() const
+{
+ QString filename = m_LogFilename;
+#if defined(Q_OS_WIN)
+ // wrap in quotes in case username contains spaces.
+ filename = QString("\"%1\"").arg(filename);
+#endif
+ return filename;
+}
+
+QString AppConfig::logLevelText() const
+{
+ return logLevelNames[logLevel()];
+}
+
+ProcessMode AppConfig::processMode() const { return m_ProcessMode; }
+
+bool AppConfig::wizardShouldRun() const { return m_WizardLastRun < kWizardVersion; }
+
+const QString &AppConfig::language() const { return m_Language; }
+
+bool AppConfig::startedBefore() const { return m_StartedBefore; }
+
+bool AppConfig::autoConfig() const { return m_AutoConfig; }
+
+void AppConfig::loadSettings()
+{
+ m_ScreenName = settings().value("screenName", QHostInfo::localHostName()).toString();
+ m_Port = settings().value("port", 24800).toInt();
+ m_Interface = settings().value("interface").toString();
+ m_LogLevel = settings().value("logLevel", 3).toInt(); // level 3: INFO
+ m_LogToFile = settings().value("logToFile", false).toBool();
+ m_LogFilename = settings().value("logFilename", barrierLogDir() + "barrier.log").toString();
+ m_WizardLastRun = settings().value("wizardLastRun", 0).toInt();
+ m_Language = settings().value("language", QLocale::system().name()).toString();
+ m_StartedBefore = settings().value("startedBefore", false).toBool();
+ m_AutoConfig = settings().value("autoConfig", true).toBool();
+ QVariant elevateMode = settings().value("elevateModeEnum");
+ if (!elevateMode.isValid()) {
+ elevateMode = settings().value ("elevateMode",
+ QVariant(static_cast<int>(defaultElevateMode)));
+ }
+ m_ElevateMode = static_cast<ElevateMode>(elevateMode.toInt());
+ m_AutoConfigPrompted = settings().value("autoConfigPrompted", false).toBool();
+ m_CryptoEnabled = settings().value("cryptoEnabled", true).toBool();
+ m_AutoHide = settings().value("autoHide", false).toBool();
+ m_MinimizeToTray = settings().value("minimizeToTray", false).toBool();
+}
+
+void AppConfig::saveSettings()
+{
+ settings().setValue("screenName", m_ScreenName);
+ settings().setValue("port", m_Port);
+ settings().setValue("interface", m_Interface);
+ settings().setValue("logLevel", m_LogLevel);
+ settings().setValue("logToFile", m_LogToFile);
+ settings().setValue("logFilename", m_LogFilename);
+ settings().setValue("wizardLastRun", kWizardVersion);
+ settings().setValue("language", m_Language);
+ settings().setValue("startedBefore", m_StartedBefore);
+ settings().setValue("autoConfig", m_AutoConfig);
+ // Refer to enum ElevateMode declaration for insight in to why this
+ // flag is mapped this way
+ settings().setValue("elevateMode", m_ElevateMode == ElevateAlways);
+ settings().setValue("elevateModeEnum", static_cast<int>(m_ElevateMode));
+ settings().setValue("autoConfigPrompted", m_AutoConfigPrompted);
+ settings().setValue("cryptoEnabled", m_CryptoEnabled);
+ settings().setValue("autoHide", m_AutoHide);
+ settings().setValue("minimizeToTray", m_MinimizeToTray);
+ settings().sync();
+}
+
+QSettings &AppConfig::settings() { return *m_pSettings; }
+
+void AppConfig::setScreenName(const QString &s) { m_ScreenName = s; }
+
+void AppConfig::setPort(int i) { m_Port = i; }
+
+void AppConfig::setNetworkInterface(const QString &s) { m_Interface = s; }
+
+void AppConfig::setLogLevel(int i) { m_LogLevel = i; }
+
+void AppConfig::setLogToFile(bool b) { m_LogToFile = b; }
+
+void AppConfig::setLogFilename(const QString &s) { m_LogFilename = s; }
+
+void AppConfig::setWizardHasRun() { m_WizardLastRun = kWizardVersion; }
+
+void AppConfig::setLanguage(const QString language) { m_Language = language; }
+
+void AppConfig::setStartedBefore(bool b) { m_StartedBefore = b; }
+
+void AppConfig::setElevateMode(ElevateMode em) { m_ElevateMode = em; }
+
+void AppConfig::setAutoConfig(bool autoConfig) { m_AutoConfig = autoConfig; }
+
+bool AppConfig::autoConfigPrompted() { return m_AutoConfigPrompted; }
+
+void AppConfig::setAutoConfigPrompted(bool prompted) { m_AutoConfigPrompted = prompted; }
+
+QString AppConfig::barriersName() const { return m_BarriersName; }
+
+QString AppConfig::barriercName() const { return m_BarriercName; }
+
+ElevateMode AppConfig::elevateMode() { return m_ElevateMode; }
+
+void AppConfig::setCryptoEnabled(bool e) { m_CryptoEnabled = e; }
+
+bool AppConfig::getCryptoEnabled() const { return m_CryptoEnabled; }
+
+void AppConfig::setAutoHide(bool b) { m_AutoHide = b; }
+
+bool AppConfig::getAutoHide() { return m_AutoHide; }
+
+void AppConfig::setMinimizeToTray(bool b) { m_MinimizeToTray = b; }
+
+bool AppConfig::getMinimizeToTray() { return m_MinimizeToTray; }
diff --git a/src/gui/src/AppConfig.h b/src/gui/src/AppConfig.h
new file mode 100644
index 0000000..c9ed38d
--- /dev/null
+++ b/src/gui/src/AppConfig.h
@@ -0,0 +1,140 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(APPCONFIG_H)
+
+#define APPCONFIG_H
+
+#include <QObject>
+#include <QString>
+#include "ElevateMode.h"
+
+// this should be incremented each time a new page is added. this is
+// saved to settings when the user finishes running the wizard. if
+// the saved wizard version is lower than this number, the wizard
+// will be displayed. each version incrememnt should be described
+// here...
+//
+// 1: first version
+// 2: added language page
+// 3: added premium page and removed
+// 4: ssl plugin 'ns' v1.0
+// 5: ssl plugin 'ns' v1.1
+// 6: ssl plugin 'ns' v1.2
+// 7: serial key activation
+// 8: Visual Studio 2015 support
+// 9: synergy->barrier and de-commercialized
+//
+const int kWizardVersion = 9;
+
+class QSettings;
+class SettingsDialog;
+
+enum ProcessMode {
+ Service,
+ Desktop
+};
+
+class AppConfig: public QObject
+{
+ Q_OBJECT
+
+ friend class SettingsDialog;
+ friend class MainWindow;
+ friend class SetupWizard;
+
+ public:
+ AppConfig(QSettings* settings);
+ ~AppConfig();
+
+ public:
+ const QString& screenName() const;
+ int port() const;
+ const QString& networkInterface() const;
+ int logLevel() const;
+ bool logToFile() const;
+ const QString& logFilename() const;
+ const QString logFilenameCmd() const;
+ QString logLevelText() const;
+ ProcessMode processMode() const;
+ bool wizardShouldRun() const;
+ const QString& language() const;
+ bool startedBefore() const;
+ bool autoConfig() const;
+ void setAutoConfig(bool autoConfig);
+ bool autoConfigPrompted();
+ void setAutoConfigPrompted(bool prompted);
+
+ QString barriersName() const;
+ QString barriercName() const;
+ QString barrierProgramDir() const;
+ QString barrierLogDir() const;
+
+ void persistLogDir();
+ ElevateMode elevateMode();
+
+ void setCryptoEnabled(bool e);
+ bool getCryptoEnabled() const;
+
+ void setAutoHide(bool b);
+ bool getAutoHide();
+
+ void setMinimizeToTray(bool b);
+ bool getMinimizeToTray();
+
+ void saveSettings();
+
+protected:
+ QSettings& settings();
+ void setScreenName(const QString& s);
+ void setPort(int i);
+ void setNetworkInterface(const QString& s);
+ void setLogLevel(int i);
+ void setLogToFile(bool b);
+ void setLogFilename(const QString& s);
+ void setWizardHasRun();
+ void setLanguage(const QString language);
+ void setStartedBefore(bool b);
+ void setElevateMode(ElevateMode em);
+ void loadSettings();
+
+ private:
+ QSettings* m_pSettings;
+ QString m_ScreenName;
+ int m_Port;
+ QString m_Interface;
+ int m_LogLevel;
+ bool m_LogToFile;
+ QString m_LogFilename;
+ int m_WizardLastRun;
+ ProcessMode m_ProcessMode;
+ QString m_Language;
+ bool m_StartedBefore;
+ bool m_AutoConfig;
+ ElevateMode m_ElevateMode;
+ bool m_AutoConfigPrompted;
+ bool m_CryptoEnabled;
+ bool m_AutoHide;
+ bool m_MinimizeToTray;
+
+ static const char m_BarriersName[];
+ static const char m_BarriercName[];
+ static const char m_BarrierLogDir[];
+};
+
+#endif
diff --git a/src/gui/src/BarrierLocale.cpp b/src/gui/src/BarrierLocale.cpp
new file mode 100644
index 0000000..c9785c5
--- /dev/null
+++ b/src/gui/src/BarrierLocale.cpp
@@ -0,0 +1,68 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2013-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#include "BarrierLocale.h"
+
+#include <QResource>
+#include <QXmlStreamReader>
+#include <QDebug>
+
+BarrierLocale::BarrierLocale()
+{
+ loadLanguages();
+}
+
+void BarrierLocale::loadLanguages()
+{
+ QResource resource(":/res/lang/Languages.xml");
+ QByteArray bytes(reinterpret_cast<const char*>(resource.data()), resource.size());
+ QXmlStreamReader xml(bytes);
+
+ while (!xml.atEnd())
+ {
+ QXmlStreamReader::TokenType token = xml.readNext();
+ if (xml.hasError())
+ {
+ qCritical() << xml.errorString();
+ throw std::exception();
+ }
+
+ if (xml.name() == "language" && token == QXmlStreamReader::StartElement)
+ {
+ QXmlStreamAttributes attributes = xml.attributes();
+ addLanguage(
+ attributes.value("ietfCode").toString(),
+ attributes.value("name").toString());
+ }
+ }
+}
+
+void BarrierLocale::addLanguage(const QString& ietfCode, const QString& name)
+{
+ m_Languages.push_back(BarrierLocale::Language(ietfCode, name));
+}
+
+void BarrierLocale::fillLanguageComboBox(QComboBox* comboBox)
+{
+ comboBox->blockSignals(true);
+ QVector<BarrierLocale::Language>::iterator it;
+ for (it = m_Languages.begin(); it != m_Languages.end(); ++it)
+ {
+ comboBox->addItem((*it).m_Name, (*it).m_IetfCode);
+ }
+ comboBox->blockSignals(false);
+}
diff --git a/src/gui/src/BarrierLocale.h b/src/gui/src/BarrierLocale.h
new file mode 100644
index 0000000..a6454ea
--- /dev/null
+++ b/src/gui/src/BarrierLocale.h
@@ -0,0 +1,48 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2013-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QString>
+#include <QVector>
+#include <QComboBox>
+
+class BarrierLocale
+{
+ class Language
+ {
+ public:
+ Language() { }
+ Language(const QString& IetfCode, const QString& name)
+ : m_IetfCode(IetfCode), m_Name(name) { }
+
+ public:
+ QString m_IetfCode;
+ QString m_Name;
+ };
+
+public:
+ BarrierLocale();
+ void fillLanguageComboBox(QComboBox* comboBox);
+
+private:
+ void loadLanguages();
+ void addLanguage(const QString& IetfCode, const QString& name);
+
+private:
+ QVector<Language> m_Languages;
+};
diff --git a/src/gui/src/BaseConfig.cpp b/src/gui/src/BaseConfig.cpp
new file mode 100644
index 0000000..36fe430
--- /dev/null
+++ b/src/gui/src/BaseConfig.cpp
@@ -0,0 +1,46 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "BaseConfig.h"
+
+const char* BaseConfig::m_ModifierNames[] =
+{
+ "shift",
+ "ctrl",
+ "alt",
+ "meta",
+ "super",
+ "none"
+};
+
+const char* BaseConfig::m_FixNames[] =
+{
+ "halfDuplexCapsLock",
+ "halfDuplexNumLock",
+ "halfDuplexScrollLock",
+ "xtestIsXineramaUnaware"
+};
+
+const char* BaseConfig::m_SwitchCornerNames[] =
+{
+ "top-left",
+ "top-right",
+ "bottom-left",
+ "bottom-right"
+};
+
diff --git a/src/gui/src/BaseConfig.h b/src/gui/src/BaseConfig.h
new file mode 100644
index 0000000..f1769bb
--- /dev/null
+++ b/src/gui/src/BaseConfig.h
@@ -0,0 +1,91 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(BASECONFIG_H)
+
+#define BASECONFIG_H
+
+#include <QSettings>
+#include <QString>
+#include <QVariant>
+
+class BaseConfig
+{
+ public:
+ enum Modifier { DefaultMod = -1, Shift, Ctrl, Alt, Meta, Super, None, NumModifiers };
+ enum SwitchCorner { TopLeft, TopRight, BottomLeft, BottomRight, NumSwitchCorners };
+ enum Fix { CapsLock, NumLock, ScrollLock, XTest, NumFixes };
+
+ protected:
+ BaseConfig() {}
+ virtual ~BaseConfig() {}
+
+ protected:
+ template<typename T1, typename T2>
+ void readSettings(QSettings& settings, T1& array, const QString& arrayName, const T2& deflt)
+ {
+ int entries = settings.beginReadArray(arrayName + "Array");
+ array.clear();
+ for (int i = 0; i < entries; i++)
+ {
+ settings.setArrayIndex(i);
+ QVariant v = settings.value(arrayName, deflt);
+ array.append(v.value<T2>());
+ }
+ settings.endArray();
+ }
+
+ template<typename T1, typename T2>
+ void readSettings(QSettings& settings, T1& array, const QString& arrayName, const T2& deflt, int entries)
+ {
+ Q_ASSERT(array.size() >= entries);
+ settings.beginReadArray(arrayName + "Array");
+ for (int i = 0; i < entries; i++)
+ {
+ settings.setArrayIndex(i);
+ QVariant v = settings.value(arrayName, deflt);
+ array[i] = v.value<T2>();
+ }
+ settings.endArray();
+ }
+
+ template<typename T>
+ void writeSettings(QSettings& settings, const T& array, const QString& arrayName) const
+ {
+ settings.beginWriteArray(arrayName + "Array");
+ for (int i = 0; i < array.size(); i++)
+ {
+ settings.setArrayIndex(i);
+ settings.setValue(arrayName, array[i]);
+ }
+ settings.endArray();
+ }
+
+
+ public:
+ static const char* modifierName(int idx) { return m_ModifierNames[idx]; }
+ static const char* fixName(int idx) { return m_FixNames[idx]; }
+ static const char* switchCornerName(int idx) { return m_SwitchCornerNames[idx]; }
+
+ private:
+ static const char* m_ModifierNames[];
+ static const char* m_FixNames[];
+ static const char* m_SwitchCornerNames[];
+};
+
+#endif
diff --git a/src/gui/src/CommandProcess.cpp b/src/gui/src/CommandProcess.cpp
new file mode 100644
index 0000000..c85e847
--- /dev/null
+++ b/src/gui/src/CommandProcess.cpp
@@ -0,0 +1,63 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "CommandProcess.h"
+
+#include <QProcess>
+#include <stdexcept>
+
+CommandProcess::CommandProcess(QString cmd, QStringList arguments, QString input) :
+ m_Command(cmd),
+ m_Arguments(arguments),
+ m_Input(input)
+{
+}
+
+QString CommandProcess::run()
+{
+ QProcess process;
+ process.setReadChannel(QProcess::StandardOutput);
+ process.start(m_Command, m_Arguments);
+ bool success = process.waitForStarted();
+
+ QString output, error;
+ if (success)
+ {
+ if (!m_Input.isEmpty()) {
+ process.write(m_Input.toStdString().c_str());
+ }
+
+ if (process.waitForFinished()) {
+ output = process.readAllStandardOutput().trimmed();
+ error = process.readAllStandardError().trimmed();
+ }
+ }
+
+ int code = process.exitCode();
+ if (!error.isEmpty() || !success || code != 0)
+ {
+ throw std::runtime_error(
+ QString("Code: %1\nError: %2")
+ .arg(process.exitCode())
+ .arg(error.isEmpty() ? "Unknown" : error)
+ .toStdString());
+ }
+
+ emit finished();
+
+ return output;
+}
diff --git a/src/gui/src/CommandProcess.h b/src/gui/src/CommandProcess.h
new file mode 100644
index 0000000..3e9763b
--- /dev/null
+++ b/src/gui/src/CommandProcess.h
@@ -0,0 +1,43 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef COMMANDTHREAD_H
+#define COMMANDTHREAD_H
+
+#include <QObject>
+#include <QStringList>
+
+class CommandProcess : public QObject
+{
+ Q_OBJECT
+
+public:
+ CommandProcess(QString cmd, QStringList arguments, QString input = "");
+
+signals:
+ void finished();
+
+public slots:
+ QString run();
+
+private:
+ QString m_Command;
+ QStringList m_Arguments;
+ QString m_Input;
+};
+
+#endif // COMMANDTHREAD_H
diff --git a/src/gui/src/CoreInterface.cpp b/src/gui/src/CoreInterface.cpp
new file mode 100644
index 0000000..d5ed40d
--- /dev/null
+++ b/src/gui/src/CoreInterface.cpp
@@ -0,0 +1,96 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "CoreInterface.h"
+
+#include "CommandProcess.h"
+#include "QUtility.h"
+
+#include <QCoreApplication>
+#include <QProcess>
+#include <QtGlobal>
+#include <QDir>
+#include <stdexcept>
+
+static const char kCoreBinary[] = "syntool";
+
+#ifdef Q_WS_WIN
+static const char kSerialKeyFilename[] = "Barrier.subkey";
+#else
+static const char kSerialKeyFilename[] = ".barrier.subkey";
+#endif
+
+CoreInterface::CoreInterface()
+{
+}
+
+QString CoreInterface::getProfileDir()
+{
+ QStringList args("--get-profile-dir");
+ return run(args);
+}
+
+QString CoreInterface::getInstalledDir()
+{
+ QStringList args("--get-installed-dir");
+ return run(args);
+}
+
+QString CoreInterface::getArch()
+{
+ QStringList args("--get-arch");
+ return run(args);
+}
+
+QString CoreInterface::getSerialKeyFilePath()
+{
+ QString filename = getProfileDir() + QDir::separator() + kSerialKeyFilename;
+ return filename;
+}
+
+QString CoreInterface::notifyUpdate (QString const& fromVersion,
+ QString const& toVersion,
+ QString const& serialKey) {
+ QStringList args("--notify-update");
+ QString input(fromVersion + ":" + toVersion + ":" + serialKey);
+ input.append("\n");
+ return run(args, input);
+}
+
+QString CoreInterface::notifyActivation(const QString& identity)
+{
+ QStringList args("--notify-activation");
+
+ QString input(identity + ":" + hash(getFirstMacAddress()));
+ QString os= getOSInformation();
+ if (!os.isEmpty()) {
+ input.append(":").append(os);
+ }
+ input.append("\n");
+
+ return run(args, input);
+}
+
+QString CoreInterface::run(const QStringList& args, const QString& input)
+{
+ QString program(
+ QCoreApplication::applicationDirPath()
+ + "/" + kCoreBinary);
+
+ CommandProcess commandProcess(program, args, input);
+ return commandProcess.run();
+}
diff --git a/src/gui/src/CoreInterface.h b/src/gui/src/CoreInterface.h
new file mode 100644
index 0000000..26b9c0a
--- /dev/null
+++ b/src/gui/src/CoreInterface.h
@@ -0,0 +1,36 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QString>
+
+class CoreInterface
+{
+public:
+ CoreInterface();
+
+ QString getProfileDir();
+ QString getInstalledDir();
+ QString getArch();
+ QString getSerialKeyFilePath();
+ QString notifyActivation(const QString& identity);
+ QString notifyUpdate (QString const& fromVersion,
+ QString const& toVersion,
+ QString const& serialKey);
+ QString run(const QStringList& args, const QString& input = "");
+};
diff --git a/src/gui/src/DataDownloader.cpp b/src/gui/src/DataDownloader.cpp
new file mode 100644
index 0000000..c71c73f
--- /dev/null
+++ b/src/gui/src/DataDownloader.cpp
@@ -0,0 +1,58 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "DataDownloader.h"
+
+DataDownloader::DataDownloader(QObject* parent) :
+ QObject(parent),
+ m_pReply(nullptr),
+ m_IsFinished(false)
+{
+ connect(&m_NetworkManager, SIGNAL(finished(QNetworkReply*)),
+ SLOT(complete(QNetworkReply*)));
+}
+
+DataDownloader::~DataDownloader()
+{
+}
+
+void DataDownloader::complete(QNetworkReply* reply)
+{
+ m_Data = reply->readAll();
+ reply->deleteLater();
+
+ if (!m_Data.isEmpty()) {
+ m_IsFinished = true;
+ emit isComplete();
+ }
+}
+
+QByteArray DataDownloader::data() const
+{
+ return m_Data;
+}
+
+void DataDownloader::cancel()
+{
+ m_pReply->abort();
+}
+
+void DataDownloader::download(QUrl url)
+{
+ QNetworkRequest request(url);
+ m_pReply = m_NetworkManager.get(request);
+}
diff --git a/src/gui/src/DataDownloader.h b/src/gui/src/DataDownloader.h
new file mode 100644
index 0000000..46f7a0d
--- /dev/null
+++ b/src/gui/src/DataDownloader.h
@@ -0,0 +1,53 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef DATADOWNLOADER_H
+#define DATADOWNLOADER_H
+
+#include <QObject>
+#include <QByteArray>
+#include <QNetworkAccessManager>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+
+class DataDownloader : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit DataDownloader(QObject* parent = 0);
+ virtual ~DataDownloader();
+
+ QByteArray data() const;
+ void cancel();
+ void download(QUrl url);
+ bool isFinished() const { return m_IsFinished; }
+
+signals:
+ void isComplete();
+
+private slots:
+ void complete(QNetworkReply* reply);
+
+private:
+ QNetworkAccessManager m_NetworkManager;
+ QByteArray m_Data;
+ QNetworkReply* m_pReply;
+ bool m_IsFinished;
+};
+
+#endif // DATADOWNLOADER_H
diff --git a/src/gui/src/DisplayIsValid.cpp b/src/gui/src/DisplayIsValid.cpp
new file mode 100644
index 0000000..5685c42
--- /dev/null
+++ b/src/gui/src/DisplayIsValid.cpp
@@ -0,0 +1,14 @@
+#ifdef WINAPI_XWINDOWS
+
+#include "DisplayIsValid.h"
+#include <X11/Xlib.h>
+
+bool display_is_valid()
+{
+ auto dsp = XOpenDisplay(NULL);
+ if (dsp != NULL)
+ XCloseDisplay(dsp);
+ return dsp != NULL;
+}
+
+#endif
diff --git a/src/gui/src/DisplayIsValid.h b/src/gui/src/DisplayIsValid.h
new file mode 100644
index 0000000..d5fcac8
--- /dev/null
+++ b/src/gui/src/DisplayIsValid.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#ifdef WINAPI_XWINDOWS
+bool display_is_valid();
+#endif
diff --git a/src/gui/src/ElevateMode.h b/src/gui/src/ElevateMode.h
new file mode 100644
index 0000000..b1dce7c
--- /dev/null
+++ b/src/gui/src/ElevateMode.h
@@ -0,0 +1,41 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2016 Symless
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// The elevate mode tristate determines two behaviours on Windows.
+// The first, switch-on-desk-switch (SodS), passed through barrierd as a
+// command line argument to barrier core, determines if the server restarts
+// when switching Windows desktops (e.g. when Windows UAC dialog pops up).
+// The second, passed as a boolean flag to Barrierd over the IPC inside
+// kIpcCommandMessage, determines whether Barrier should be started with
+// elevated privileges.
+//
+// The matrix for these two behaviours is as follows:
+// SodS Elevate
+// ___________________________
+// ElevateAsNeeded | true | false
+// ElevateAlways | false | true
+// ElevateNever | false | false
+//
+enum ElevateMode {
+ ElevateAsNeeded = 0,
+ ElevateAlways = 1,
+ ElevateNever = 2
+};
+
+extern const ElevateMode defaultElevateMode;
diff --git a/src/gui/src/Fingerprint.cpp b/src/gui/src/Fingerprint.cpp
new file mode 100644
index 0000000..be8b401
--- /dev/null
+++ b/src/gui/src/Fingerprint.cpp
@@ -0,0 +1,149 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "Fingerprint.h"
+
+#include "CoreInterface.h"
+
+#include <QDir>
+#include <QTextStream>
+
+static const char kDirName[] = "SSL/Fingerprints";
+static const char kLocalFilename[] = "Local.txt";
+static const char kTrustedServersFilename[] = "TrustedServers.txt";
+static const char kTrustedClientsFilename[] = "TrustedClients.txt";
+
+Fingerprint::Fingerprint(const QString& filename)
+{
+ m_Filename = filename;
+}
+
+void Fingerprint::trust(const QString& fingerprintText, bool append)
+{
+ Fingerprint::persistDirectory();
+
+ QIODevice::OpenMode openMode;
+ if (append) {
+ openMode = QIODevice::Append;
+ }
+ else {
+ openMode = QIODevice::WriteOnly;
+ }
+
+ QFile file(filePath());
+ if (file.open(openMode))
+ {
+ QTextStream out(&file);
+ out << fingerprintText << "\n";
+ file.close();
+ }
+}
+
+bool Fingerprint::fileExists() const
+{
+ QString dirName = Fingerprint::directoryPath();
+ if (!QDir(dirName).exists()) {
+ return false;
+ }
+
+ QFile file(filePath());
+ return file.exists();
+}
+
+bool Fingerprint::isTrusted(const QString& fingerprintText)
+{
+ QStringList list = readList();
+ foreach (QString trusted, list)
+ {
+ if (trusted == fingerprintText) {
+ return true;
+ }
+ }
+ return false;
+}
+
+QStringList Fingerprint::readList(const int readTo)
+{
+ QStringList list;
+
+ QString dirName = Fingerprint::directoryPath();
+ if (!QDir(dirName).exists()) {
+ return list;
+ }
+
+ QFile file(filePath());
+
+ if (file.open(QIODevice::ReadOnly))
+ {
+ QTextStream in(&file);
+ while (!in.atEnd())
+ {
+ list.append(in.readLine());
+ if (list.size() == readTo) {
+ break;
+ }
+ }
+ file.close();
+ }
+
+ return list;
+}
+
+QString Fingerprint::readFirst()
+{
+ QStringList list = readList(1);
+ return list.at(0);
+}
+
+QString Fingerprint::filePath() const
+{
+ QString dir = Fingerprint::directoryPath();
+ return QString("%1/%2").arg(dir).arg(m_Filename);
+}
+
+void Fingerprint::persistDirectory()
+{
+ QDir dir(Fingerprint::directoryPath());
+ if (!dir.exists()) {
+ dir.mkpath(".");
+ }
+}
+
+QString Fingerprint::directoryPath()
+{
+ CoreInterface coreInterface;
+ QString profileDir = coreInterface.getProfileDir();
+
+ return QString("%1/%2")
+ .arg(profileDir)
+ .arg(kDirName);
+}
+
+Fingerprint Fingerprint::local()
+{
+ return Fingerprint(kLocalFilename);
+}
+
+Fingerprint Fingerprint::trustedServers()
+{
+ return Fingerprint(kTrustedServersFilename);
+}
+
+Fingerprint Fingerprint::trustedClients()
+{
+ return Fingerprint(kTrustedClientsFilename);
+}
diff --git a/src/gui/src/Fingerprint.h b/src/gui/src/Fingerprint.h
new file mode 100644
index 0000000..ad5ce59
--- /dev/null
+++ b/src/gui/src/Fingerprint.h
@@ -0,0 +1,46 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QString>
+
+class Fingerprint
+{
+private:
+ Fingerprint(const QString& filename);
+
+public:
+ void trust(const QString& fingerprintText, bool append = true);
+ bool isTrusted(const QString& fingerprintText);
+ QStringList readList(const int readTo = -1);
+ QString readFirst();
+ QString filePath() const;
+ bool fileExists() const;
+
+public:
+ static Fingerprint local();
+ static Fingerprint trustedServers();
+ static Fingerprint trustedClients();
+ static QString directoryPath();
+ static QString localFingerprint();
+ static bool localFingerprintExists();
+ static void persistDirectory();
+
+private:
+ QString m_Filename;
+};
diff --git a/src/gui/src/Hotkey.cpp b/src/gui/src/Hotkey.cpp
new file mode 100644
index 0000000..c7138e7
--- /dev/null
+++ b/src/gui/src/Hotkey.cpp
@@ -0,0 +1,75 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "Hotkey.h"
+
+#include <QSettings>
+
+Hotkey::Hotkey() :
+ m_KeySequence(),
+ m_Actions()
+{
+}
+
+QString Hotkey::text() const
+{
+ QString text = keySequence().toString();
+
+ if (keySequence().isMouseButton())
+ return "mousebutton(" + text + ")";
+
+ return "keystroke(" + text + ")";
+}
+
+void Hotkey::loadSettings(QSettings& settings)
+{
+ keySequence().loadSettings(settings);
+
+ actions().clear();
+ int num = settings.beginReadArray("actions");
+ for (int i = 0; i < num; i++)
+ {
+ settings.setArrayIndex(i);
+ Action a;
+ a.loadSettings(settings);
+ actions().append(a);
+ }
+
+ settings.endArray();
+}
+
+void Hotkey::saveSettings(QSettings& settings) const
+{
+ keySequence().saveSettings(settings);
+
+ settings.beginWriteArray("actions");
+ for (int i = 0; i < actions().size(); i++)
+ {
+ settings.setArrayIndex(i);
+ actions()[i].saveSettings(settings);
+ }
+ settings.endArray();
+}
+
+QTextStream& operator<<(QTextStream& outStream, const Hotkey& hotkey)
+{
+ for (int i = 0; i < hotkey.actions().size(); i++)
+ outStream << "\t" << hotkey.text() << " = " << hotkey.actions()[i] << endl;
+
+ return outStream;
+}
diff --git a/src/gui/src/Hotkey.h b/src/gui/src/Hotkey.h
new file mode 100644
index 0000000..475da02
--- /dev/null
+++ b/src/gui/src/Hotkey.h
@@ -0,0 +1,66 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(HOTKEY_H)
+
+#define HOTKEY_H
+
+#include <QString>
+#include <QList>
+#include <QTextStream>
+
+#include "Action.h"
+#include "KeySequence.h"
+
+class HotkeyDialog;
+class ServerConfigDialog;
+class QSettings;
+
+class Hotkey
+{
+ friend class HotkeyDialog;
+ friend class ServerConfigDialog;
+ friend QTextStream& operator<<(QTextStream& outStream, const Hotkey& hotkey);
+
+ public:
+ Hotkey();
+
+ public:
+ QString text() const;
+ const KeySequence& keySequence() const { return m_KeySequence; }
+ const ActionList& actions() const { return m_Actions; }
+
+ void loadSettings(QSettings& settings);
+ void saveSettings(QSettings& settings) const;
+
+ protected:
+ KeySequence& keySequence() { return m_KeySequence; }
+ void setKeySequence(const KeySequence& seq) { m_KeySequence = seq; }
+ ActionList& actions() { return m_Actions; }
+
+
+ private:
+ KeySequence m_KeySequence;
+ ActionList m_Actions;
+};
+
+typedef QList<Hotkey> HotkeyList;
+
+QTextStream& operator<<(QTextStream& outStream, const Hotkey& hotkey);
+
+#endif
diff --git a/src/gui/src/HotkeyDialog.cpp b/src/gui/src/HotkeyDialog.cpp
new file mode 100644
index 0000000..ef25c3f
--- /dev/null
+++ b/src/gui/src/HotkeyDialog.cpp
@@ -0,0 +1,41 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "HotkeyDialog.h"
+
+#include <QtCore>
+#include <QtGui>
+
+HotkeyDialog::HotkeyDialog (QWidget* parent, Hotkey& hotkey) :
+ QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
+ Ui::HotkeyDialogBase(),
+ m_Hotkey(hotkey)
+{
+ setupUi(this);
+
+ m_pKeySequenceWidgetHotkey->setText(m_Hotkey.text());
+}
+
+void HotkeyDialog::accept()
+{
+ if (!sequenceWidget()->valid())
+ return;
+
+ hotkey().setKeySequence(sequenceWidget()->keySequence());
+ QDialog::accept();
+}
diff --git a/src/gui/src/HotkeyDialog.h b/src/gui/src/HotkeyDialog.h
new file mode 100644
index 0000000..a13fc24
--- /dev/null
+++ b/src/gui/src/HotkeyDialog.h
@@ -0,0 +1,49 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(HOTKEYDIALOG_H)
+
+#define HOTKEYDIALOG_H
+
+#include "ui_HotkeyDialogBase.h"
+#include "Hotkey.h"
+
+#include <QDialog>
+
+class HotkeyDialog : public QDialog, public Ui::HotkeyDialogBase
+{
+ Q_OBJECT
+
+ public:
+ HotkeyDialog(QWidget* parent, Hotkey& hotkey);
+
+ public:
+ const Hotkey& hotkey() const { return m_Hotkey; }
+
+ protected slots:
+ void accept();
+
+ protected:
+ const KeySequenceWidget* sequenceWidget() const { return m_pKeySequenceWidgetHotkey; }
+ Hotkey& hotkey() { return m_Hotkey; }
+
+ private:
+ Hotkey& m_Hotkey;
+};
+
+#endif
diff --git a/src/gui/src/HotkeyDialogBase.ui b/src/gui/src/HotkeyDialogBase.ui
new file mode 100644
index 0000000..0ebcb43
--- /dev/null
+++ b/src/gui/src/HotkeyDialogBase.ui
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>HotkeyDialogBase</class>
+ <widget class="QDialog" name="HotkeyDialogBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>344</width>
+ <height>86</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Hotkey</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Enter the specification for the hotkey:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KeySequenceWidget" name="m_pKeySequenceWidgetHotkey"/>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KeySequenceWidget</class>
+ <extends>QLineEdit</extends>
+ <header>KeySequenceWidget.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>HotkeyDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>HotkeyDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/Ipc.cpp b/src/gui/src/Ipc.cpp
new file mode 100644
index 0000000..ed429ac
--- /dev/null
+++ b/src/gui/src/Ipc.cpp
@@ -0,0 +1,26 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// this class is a duplicate of /src/lib/ipc/Ipc.cpp
+
+#include "Ipc.h"
+
+const char* kIpcMsgHello = "IHEL%1i";
+const char* kIpcMsgLogLine = "ILOG%s";
+const char* kIpcMsgCommand = "ICMD%s%1i";
+const char* kIpcMsgShutdown = "ISDN";
diff --git a/src/gui/src/Ipc.h b/src/gui/src/Ipc.h
new file mode 100644
index 0000000..fe1ad08
--- /dev/null
+++ b/src/gui/src/Ipc.h
@@ -0,0 +1,42 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// this class is a duplicate of /src/lib/ipc/Ipc.h
+
+#pragma once
+
+#define IPC_HOST "127.0.0.1"
+#define IPC_PORT 24801
+
+enum qIpcMessageType {
+ kIpcHello,
+ kIpcLogLine,
+ kIpcCommand,
+ kIpcShutdown,
+};
+
+enum qIpcClientType {
+ kIpcClientUnknown,
+ kIpcClientGui,
+ kIpcClientNode,
+};
+
+extern const char* kIpcMsgHello;
+extern const char* kIpcMsgLogLine;
+extern const char* kIpcMsgCommand;
+extern const char* kIpcMsgShutdown;
diff --git a/src/gui/src/IpcClient.cpp b/src/gui/src/IpcClient.cpp
new file mode 100644
index 0000000..1b0e147
--- /dev/null
+++ b/src/gui/src/IpcClient.cpp
@@ -0,0 +1,146 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "IpcClient.h"
+#include <QTcpSocket>
+#include <QHostAddress>
+#include <iostream>
+#include <QTimer>
+#include "IpcReader.h"
+#include "Ipc.h"
+#include <QDataStream>
+
+IpcClient::IpcClient() :
+m_ReaderStarted(false),
+m_Enabled(false)
+{
+ m_Socket = new QTcpSocket(this);
+ connect(m_Socket, SIGNAL(connected()), this, SLOT(connected()));
+ connect(m_Socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(error(QAbstractSocket::SocketError)));
+
+ m_Reader = new IpcReader(m_Socket);
+ connect(m_Reader, SIGNAL(readLogLine(const QString&)), this, SLOT(handleReadLogLine(const QString&)));
+}
+
+IpcClient::~IpcClient()
+{
+}
+
+void IpcClient::connected()
+{
+ sendHello();
+ infoMessage("connection established");
+}
+
+void IpcClient::connectToHost()
+{
+ m_Enabled = true;
+
+ infoMessage("connecting to service...");
+ m_Socket->connectToHost(QHostAddress(QHostAddress::LocalHost), IPC_PORT);
+
+ if (!m_ReaderStarted) {
+ m_Reader->start();
+ m_ReaderStarted = true;
+ }
+}
+
+void IpcClient::disconnectFromHost()
+{
+ infoMessage("service disconnect");
+ m_Reader->stop();
+ m_Socket->close();
+}
+
+void IpcClient::error(QAbstractSocket::SocketError error)
+{
+ QString text;
+ switch (error) {
+ case 0: text = "connection refused"; break;
+ case 1: text = "remote host closed"; break;
+ default: text = QString("code=%1").arg(error); break;
+ }
+
+ errorMessage(QString("ipc connection error, %1").arg(text));
+
+ QTimer::singleShot(1000, this, SLOT(retryConnect()));
+}
+
+void IpcClient::retryConnect()
+{
+ if (m_Enabled) {
+ connectToHost();
+ }
+}
+
+void IpcClient::sendHello()
+{
+ QDataStream stream(m_Socket);
+ stream.writeRawData(kIpcMsgHello, 4);
+
+ char typeBuf[1];
+ typeBuf[0] = kIpcClientGui;
+ stream.writeRawData(typeBuf, 1);
+}
+
+void IpcClient::sendCommand(const QString& command, ElevateMode const elevate)
+{
+ QDataStream stream(m_Socket);
+
+ stream.writeRawData(kIpcMsgCommand, 4);
+
+ std::string stdStringCommand = command.toStdString();
+ const char* charCommand = stdStringCommand.c_str();
+ int length = (int)strlen(charCommand);
+
+ char lenBuf[4];
+ intToBytes(length, lenBuf, 4);
+ stream.writeRawData(lenBuf, 4);
+ stream.writeRawData(charCommand, length);
+
+ char elevateBuf[1];
+ // Refer to enum ElevateMode documentation for why this flag is mapped this way
+ elevateBuf[0] = (elevate == ElevateAlways) ? 1 : 0;
+ stream.writeRawData(elevateBuf, 1);
+}
+
+void IpcClient::handleReadLogLine(const QString& text)
+{
+ readLogLine(text);
+}
+
+// TODO: qt must have a built in way of converting int to bytes.
+void IpcClient::intToBytes(int value, char *buffer, int size)
+{
+ if (size == 1) {
+ buffer[0] = value & 0xff;
+ }
+ else if (size == 2) {
+ buffer[0] = (value >> 8) & 0xff;
+ buffer[1] = value & 0xff;
+ }
+ else if (size == 4) {
+ buffer[0] = (value >> 24) & 0xff;
+ buffer[1] = (value >> 16) & 0xff;
+ buffer[2] = (value >> 8) & 0xff;
+ buffer[3] = value & 0xff;
+ }
+ else {
+ // TODO: other sizes, if needed.
+ }
+}
diff --git a/src/gui/src/IpcClient.h b/src/gui/src/IpcClient.h
new file mode 100644
index 0000000..cd398b3
--- /dev/null
+++ b/src/gui/src/IpcClient.h
@@ -0,0 +1,63 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QObject>
+#include <QAbstractSocket>
+
+#include "ElevateMode.h"
+
+class QTcpSocket;
+class IpcReader;
+
+class IpcClient : public QObject
+{
+ Q_OBJECT
+
+public:
+ IpcClient();
+ virtual ~IpcClient();
+
+ void sendHello();
+ void sendCommand(const QString& command, ElevateMode elevate);
+ void connectToHost();
+ void disconnectFromHost();
+
+public slots:
+ void retryConnect();
+
+private:
+ void intToBytes(int value, char* buffer, int size);
+
+private slots:
+ void connected();
+ void error(QAbstractSocket::SocketError error);
+ void handleReadLogLine(const QString& text);
+
+signals:
+ void readLogLine(const QString& text);
+ void infoMessage(const QString& text);
+ void errorMessage(const QString& text);
+
+private:
+ QTcpSocket* m_Socket;
+ IpcReader* m_Reader;
+ bool m_ReaderStarted;
+ bool m_Enabled;
+};
diff --git a/src/gui/src/IpcReader.cpp b/src/gui/src/IpcReader.cpp
new file mode 100644
index 0000000..234f8aa
--- /dev/null
+++ b/src/gui/src/IpcReader.cpp
@@ -0,0 +1,140 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+// uncomment to debug this end of IPC chatter
+//#define BARRIER_IPC_VERBOSE
+
+#include "IpcReader.h"
+#include <QTcpSocket>
+#include "Ipc.h"
+#include <QMutex>
+#include <QByteArray>
+
+#ifdef BARRIER_IPC_VERBOSE
+#include <iostream>
+#define IPC_LOG(x) (x)
+#else // not defined BARRIER_IPC_VERBOSE
+#define IPC_LOG(x)
+#endif
+
+IpcReader::IpcReader(QTcpSocket* socket) :
+m_Socket(socket)
+{
+}
+
+IpcReader::~IpcReader()
+{
+}
+
+void IpcReader::start()
+{
+ connect(m_Socket, SIGNAL(readyRead()), this, SLOT(read()));
+}
+
+void IpcReader::stop()
+{
+ disconnect(m_Socket, SIGNAL(readyRead()), this, SLOT(read()));
+}
+
+void IpcReader::read()
+{
+ QMutexLocker locker(&m_Mutex);
+ IPC_LOG(std::cout << "ready read" << std::endl);
+
+ while (m_Socket->bytesAvailable()) {
+ IPC_LOG(std::cout << "bytes available" << std::endl);
+
+ char codeBuf[5];
+ readStream(codeBuf, 4);
+ codeBuf[4] = 0;
+ IPC_LOG(std::cout << "ipc read: " << codeBuf << std::endl);
+
+ if (memcmp(codeBuf, kIpcMsgLogLine, 4) == 0) {
+ IPC_LOG(std::cout << "reading log line" << std::endl);
+
+ char lenBuf[4];
+ readStream(lenBuf, 4);
+ int len = bytesToInt(lenBuf, 4);
+
+ char* data = new char[len];
+ readStream(data, len);
+ QString line = QString::fromUtf8(data, len);
+ delete[] data;
+
+ readLogLine(line);
+ }
+ else {
+ IPC_LOG(std::cerr << "aborting, message invalid" << std::endl);
+ return;
+ }
+ }
+
+ IPC_LOG(std::cout << "read done" << std::endl);
+}
+
+bool IpcReader::readStream(char* buffer, int length)
+{
+ IPC_LOG(std::cout << "reading stream" << std::endl);
+
+ int read = 0;
+ while (read < length) {
+ int ask = length - read;
+ if (m_Socket->bytesAvailable() < ask) {
+ IPC_LOG(std::cout << "buffer too short, waiting" << std::endl);
+ m_Socket->waitForReadyRead(-1);
+ }
+
+ int got = m_Socket->read(buffer, ask);
+ read += got;
+
+ IPC_LOG(std::cout << "> ask=" << ask << " got=" << got
+ << " read=" << read << std::endl);
+
+ if (got == -1) {
+ IPC_LOG(std::cout << "socket ended, aborting" << std::endl);
+ return false;
+ }
+ else if (length - read > 0) {
+ IPC_LOG(std::cout << "more remains, seek to " << got << std::endl);
+ buffer += got;
+ }
+ }
+ return true;
+}
+
+int IpcReader::bytesToInt(const char *buffer, int size)
+{
+ if (size == 1) {
+ return (unsigned char)buffer[0];
+ }
+ else if (size == 2) {
+ return
+ (((unsigned char)buffer[0]) << 8) +
+ (unsigned char)buffer[1];
+ }
+ else if (size == 4) {
+ return
+ (((unsigned char)buffer[0]) << 24) +
+ (((unsigned char)buffer[1]) << 16) +
+ (((unsigned char)buffer[2]) << 8) +
+ (unsigned char)buffer[3];
+ }
+ else {
+ return 0;
+ }
+}
diff --git a/src/gui/src/IpcReader.h b/src/gui/src/IpcReader.h
new file mode 100644
index 0000000..388d913
--- /dev/null
+++ b/src/gui/src/IpcReader.h
@@ -0,0 +1,49 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QObject>
+#include <QMutex>
+
+class QTcpSocket;
+
+class IpcReader : public QObject
+{
+ Q_OBJECT;
+
+public:
+ IpcReader(QTcpSocket* socket);
+ virtual ~IpcReader();
+ void start();
+ void stop();
+
+signals:
+ void readLogLine(const QString& text);
+
+private:
+ bool readStream(char* buffer, int length);
+ int bytesToInt(const char* buffer, int size);
+
+private slots:
+ void read();
+
+private:
+ QTcpSocket* m_Socket;
+ QMutex m_Mutex;
+};
diff --git a/src/gui/src/KeySequence.cpp b/src/gui/src/KeySequence.cpp
new file mode 100644
index 0000000..cc74cb2
--- /dev/null
+++ b/src/gui/src/KeySequence.cpp
@@ -0,0 +1,237 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "KeySequence.h"
+
+#include <QtCore>
+#include <QtGui>
+
+// this table originally comes from Qt sources (gui/kernel/qkeysequence.cpp)
+// and is heavily modified
+static const struct
+{
+ int key;
+ const char* name;
+} keyname[] =
+{
+ { Qt::Key_Space, "Space" },
+ { Qt::Key_Escape, "Escape" },
+ { Qt::Key_Tab, "Tab" },
+ { Qt::Key_Backtab, "LeftTab" },
+ { Qt::Key_Backspace, "BackSpace" },
+ { Qt::Key_Return, "Return" },
+ { Qt::Key_Insert, "Insert" },
+ { Qt::Key_Delete, "Delete" },
+ { Qt::Key_Pause, "Pause" },
+ { Qt::Key_Print, "Print" },
+ { Qt::Key_SysReq, "SysReq" },
+ { Qt::Key_Home, "Home" },
+ { Qt::Key_End, "End" },
+ { Qt::Key_Left, "Left" },
+ { Qt::Key_Up, "Up" },
+ { Qt::Key_Right, "Right" },
+ { Qt::Key_Down, "Down" },
+ { Qt::Key_PageUp, "PageUp" },
+ { Qt::Key_PageDown, "PageDown" },
+ { Qt::Key_CapsLock, "CapsLock" },
+ { Qt::Key_NumLock, "NumLock" },
+ { Qt::Key_ScrollLock, "ScrollLock" },
+ { Qt::Key_Menu, "Menu" },
+ { Qt::Key_Help, "Help" },
+ { Qt::Key_Enter, "KP_Enter" },
+ { Qt::Key_Clear, "Clear" },
+
+ { Qt::Key_Back, "WWWBack" },
+ { Qt::Key_Forward, "WWWForward" },
+ { Qt::Key_Stop, "WWWStop" },
+ { Qt::Key_Refresh, "WWWRefresh" },
+ { Qt::Key_VolumeDown, "AudioDown" },
+ { Qt::Key_VolumeMute, "AudioMute" },
+ { Qt::Key_VolumeUp, "AudioUp" },
+ { Qt::Key_MediaPlay, "AudioPlay" },
+ { Qt::Key_MediaStop, "AudioStop" },
+ { Qt::Key_MediaPrevious,"AudioPrev" },
+ { Qt::Key_MediaNext, "AudioNext" },
+ { Qt::Key_HomePage, "WWWHome" },
+ { Qt::Key_Favorites, "WWWFavorites" },
+ { Qt::Key_Search, "WWWSearch" },
+ { Qt::Key_Standby, "Sleep" },
+ { Qt::Key_LaunchMail, "AppMail" },
+ { Qt::Key_LaunchMedia, "AppMedia" },
+ { Qt::Key_Launch0, "AppUser1" },
+ { Qt::Key_Launch1, "AppUser2" },
+ { Qt::Key_Select, "Select" },
+
+ { 0, 0 }
+};
+
+KeySequence::KeySequence() :
+ m_Sequence(),
+ m_Modifiers(0),
+ m_IsValid(false)
+{
+}
+
+bool KeySequence::isMouseButton() const
+{
+ return !m_Sequence.isEmpty() && m_Sequence.last() < Qt::Key_Space;
+}
+
+QString KeySequence::toString() const
+{
+ QString result;
+
+ for (int i = 0; i < m_Sequence.size(); i++)
+ {
+ result += keyToString(m_Sequence[i]);
+
+ if (i != m_Sequence.size() - 1)
+ result += "+";
+ }
+
+ return result;
+}
+
+bool KeySequence::appendMouseButton(int button)
+{
+ return appendKey(button, 0);
+}
+
+bool KeySequence::appendKey(int key, int modifiers)
+{
+ if (m_Sequence.size() == 4)
+ return true;
+
+ switch(key)
+ {
+ case Qt::Key_AltGr:
+ return false;
+
+ case Qt::Key_Control:
+ case Qt::Key_Alt:
+ case Qt::Key_Shift:
+ case Qt::Key_Meta:
+ case Qt::Key_Menu:
+ {
+ int mod = modifiers & (~m_Modifiers);
+ if (mod)
+ {
+ m_Sequence.append(mod);
+ m_Modifiers |= mod;
+ }
+ }
+ break;
+
+ default:
+ // see if we can handle this key, if not, don't accept it
+ if (keyToString(key).isEmpty())
+ break;
+
+ m_Sequence.append(key);
+ setValid(true);
+ return true;
+ }
+
+ return false;
+}
+
+void KeySequence::loadSettings(QSettings& settings)
+{
+ sequence().clear();
+ int num = settings.beginReadArray("keys");
+ for (int i = 0; i < num; i++)
+ {
+ settings.setArrayIndex(i);
+ sequence().append(settings.value("key", 0).toInt());
+ }
+ settings.endArray();
+
+ setModifiers(0);
+ setValid(true);
+}
+
+void KeySequence::saveSettings(QSettings& settings) const
+{
+ settings.beginWriteArray("keys");
+ for (int i = 0; i < sequence().size(); i++)
+ {
+ settings.setArrayIndex(i);
+ settings.setValue("key", sequence()[i]);
+ }
+ settings.endArray();
+}
+
+QString KeySequence::keyToString(int key)
+{
+ // nothing there?
+ if (key == 0)
+ return "";
+
+ // a hack to handle mouse buttons as if they were keys
+ if (key < Qt::Key_Space)
+ {
+ switch(key)
+ {
+ case Qt::LeftButton: return "1";
+ case Qt::RightButton: return "2";
+ case Qt::MidButton: return "3";
+ }
+
+ return "4"; // qt only knows three mouse buttons, so assume it's an unknown fourth one
+ }
+
+ // modifiers?
+ if (key & Qt::ShiftModifier)
+ return "Shift";
+
+ if (key & Qt::ControlModifier)
+ return "Control";
+
+ if (key & Qt::AltModifier)
+ return "Alt";
+
+ if (key & Qt::MetaModifier)
+ return "Meta";
+
+ // treat key pad like normal keys (FIXME: we should have another lookup table for keypad keys instead)
+ key &= ~Qt::KeypadModifier;
+
+ // a printable 7 bit character?
+ if (key < 0x80 && key != Qt::Key_Space)
+ return QChar(key & 0x7f).toLower();
+
+ // a function key?
+ if (key >= Qt::Key_F1 && key <= Qt::Key_F35)
+ return QString::fromUtf8("F%1").arg(key - Qt::Key_F1 + 1);
+
+ // a special key?
+ int i=0;
+ while (keyname[i].name)
+ {
+ if (key == keyname[i].key)
+ return QString::fromUtf8(keyname[i].name);
+ i++;
+ }
+
+ // representable in ucs2?
+ if (key < 0x10000)
+ return QString("\\u%1").arg(QChar(key).toLower().unicode(), 4, 16, QChar('0'));
+
+ // give up, barrier probably won't handle this
+ return "";
+}
diff --git a/src/gui/src/KeySequence.h b/src/gui/src/KeySequence.h
new file mode 100644
index 0000000..8d9706d
--- /dev/null
+++ b/src/gui/src/KeySequence.h
@@ -0,0 +1,58 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(KEYSEQUENCE_H)
+
+#define KEYSEQUENCE_H
+
+#include <QList>
+#include <QString>
+
+class QSettings;
+
+class KeySequence
+{
+ public:
+ KeySequence();
+
+ public:
+ QString toString() const;
+ bool appendKey(int modifiers, int key);
+ bool appendMouseButton(int button);
+ bool isMouseButton() const;
+ bool valid() const { return m_IsValid; }
+ int modifiers() const { return m_Modifiers; }
+ void saveSettings(QSettings& settings) const;
+ void loadSettings(QSettings& settings);
+ const QList<int>& sequence() const { return m_Sequence; }
+
+ private:
+ void setValid(bool b) { m_IsValid = b; }
+ void setModifiers(int i) { m_Modifiers = i; }
+ QList<int>& sequence() { return m_Sequence; }
+
+ private:
+ QList<int> m_Sequence;
+ int m_Modifiers;
+ bool m_IsValid;
+
+ static QString keyToString(int key);
+};
+
+#endif
+
diff --git a/src/gui/src/KeySequenceWidget.cpp b/src/gui/src/KeySequenceWidget.cpp
new file mode 100644
index 0000000..e5823e1
--- /dev/null
+++ b/src/gui/src/KeySequenceWidget.cpp
@@ -0,0 +1,145 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "KeySequenceWidget.h"
+
+#include <iostream>
+#include <QMouseEvent>
+
+KeySequenceWidget::KeySequenceWidget(QWidget* parent, const KeySequence& seq) :
+ QPushButton(parent),
+ m_KeySequence(seq),
+ m_BackupSequence(seq),
+ m_Status(Stopped),
+ m_MousePrefix("mousebutton("),
+ m_MousePostfix(")"),
+ m_KeyPrefix("keystroke("),
+ m_KeyPostfix(")")
+{
+ setFocusPolicy(Qt::NoFocus);
+ updateOutput();
+}
+
+void KeySequenceWidget::setKeySequence(const KeySequence& seq)
+{
+ keySequence() = seq;
+ backupSequence() = seq;
+
+ setStatus(Stopped);
+ updateOutput();
+}
+
+void KeySequenceWidget::mousePressEvent(QMouseEvent* event)
+{
+ event->accept();
+
+ if (status() == Stopped)
+ {
+ startRecording();
+ return;
+ }
+
+ if (m_KeySequence.appendMouseButton(event->button()))
+ stopRecording();
+
+ updateOutput();
+}
+
+void KeySequenceWidget::startRecording()
+{
+ keySequence() = KeySequence();
+ setDown(true);
+ setFocus();
+ grabKeyboard();
+ setStatus(Recording);
+}
+
+void KeySequenceWidget::stopRecording()
+{
+ if (!keySequence().valid())
+ {
+ keySequence() = backupSequence();
+ updateOutput();
+ }
+
+ setDown(false);
+ focusNextChild();
+ releaseKeyboard();
+ setStatus(Stopped);
+ emit keySequenceChanged();
+}
+
+bool KeySequenceWidget::event(QEvent* event)
+{
+ if (status() == Recording)
+ {
+ switch(event->type())
+ {
+ case QEvent::KeyPress:
+ keyPressEvent(static_cast<QKeyEvent*>(event));
+ return true;
+
+ case QEvent::MouseButtonRelease:
+ event->accept();
+ return true;
+
+ case QEvent::ShortcutOverride:
+ event->accept();
+ return true;
+
+ case QEvent::FocusOut:
+ stopRecording();
+ if (!valid())
+ {
+ keySequence() = backupSequence();
+ updateOutput();
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ return QPushButton::event(event);
+}
+
+void KeySequenceWidget::keyPressEvent(QKeyEvent* event)
+{
+ event->accept();
+
+ if (status() == Stopped)
+ return;
+
+ if (m_KeySequence.appendKey(event->key(), event->modifiers()))
+ stopRecording();
+
+ updateOutput();
+}
+
+void KeySequenceWidget::updateOutput()
+{
+ QString s;
+
+ if (m_KeySequence.isMouseButton())
+ s = mousePrefix() + m_KeySequence.toString() + mousePostfix();
+ else
+ s = keyPrefix() + m_KeySequence.toString() + keyPostfix();
+
+ setText(s);
+}
diff --git a/src/gui/src/KeySequenceWidget.h b/src/gui/src/KeySequenceWidget.h
new file mode 100644
index 0000000..eaef514
--- /dev/null
+++ b/src/gui/src/KeySequenceWidget.h
@@ -0,0 +1,81 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(KEYSEQUENCEWIDGET__H)
+
+#define KEYSEQUENCEWIDGET__H
+
+#include <QPushButton>
+
+#include "KeySequence.h"
+
+class KeySequenceWidget : public QPushButton
+{
+ Q_OBJECT
+
+ public:
+ KeySequenceWidget(QWidget* parent, const KeySequence& seq = KeySequence());
+
+ signals:
+ void keySequenceChanged();
+
+ public:
+ const QString& mousePrefix() const { return m_MousePrefix; }
+ const QString& mousePostfix() const { return m_MousePostfix; }
+ const QString& keyPrefix() const { return m_KeyPrefix; }
+ const QString& keyPostfix() const { return m_KeyPostfix; }
+
+ void setMousePrefix(const QString& s) { m_MousePrefix = s; }
+ void setMousePostfix(const QString& s) { m_MousePostfix = s; }
+ void setKeyPrefix(const QString& s) { m_KeyPrefix = s; }
+ void setKeyPostfix(const QString& s) { m_KeyPostfix = s; }
+
+ const KeySequence& keySequence() const { return m_KeySequence; }
+ const KeySequence& backupSequence() const { return m_BackupSequence; }
+ void setKeySequence(const KeySequence& seq);
+
+ bool valid() const { return keySequence().valid(); }
+
+ protected:
+ void mousePressEvent(QMouseEvent*);
+ void keyPressEvent(QKeyEvent*);
+ bool event(QEvent* event);
+ void appendToSequence(int key);
+ void updateOutput();
+ void startRecording();
+ void stopRecording();
+ KeySequence& keySequence() { return m_KeySequence; }
+ KeySequence& backupSequence() { return m_BackupSequence; }
+
+ private:
+ enum Status { Stopped, Recording };
+ void setStatus(Status s) { m_Status = s; }
+ Status status() const { return m_Status; }
+
+ private:
+ KeySequence m_KeySequence;
+ KeySequence m_BackupSequence;
+ Status m_Status;
+ QString m_MousePrefix;
+ QString m_MousePostfix;
+ QString m_KeyPrefix;
+ QString m_KeyPostfix;
+};
+
+#endif
+
diff --git a/src/gui/src/LogWindow.cpp b/src/gui/src/LogWindow.cpp
new file mode 100644
index 0000000..6aee096
--- /dev/null
+++ b/src/gui/src/LogWindow.cpp
@@ -0,0 +1,72 @@
+/*
+* barrier -- mouse and keyboard sharing utility
+* Copyright (C) 2018 Debauchee Open Source Group
+*
+* This package is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* found in the file LICENSE that should have accompanied this file.
+*
+* This package is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "LogWindow.h"
+
+#include <QDateTime>
+
+static QString getTimeStamp()
+{
+ QDateTime current = QDateTime::currentDateTime();
+ return '[' + current.toString(Qt::ISODate) + ']';
+}
+
+LogWindow::LogWindow(QWidget *parent) :
+ QDialog(parent)
+{
+ // explicitly unset DeleteOnClose so the log window can be show and hidden
+ // repeatedly until Barrier is finished
+ setAttribute(Qt::WA_DeleteOnClose, false);
+ setupUi(this);
+}
+
+void LogWindow::startNewInstance()
+{
+ // put a space between last log output and new instance.
+ if (!m_pLogOutput->toPlainText().isEmpty())
+ appendRaw("");
+}
+
+void LogWindow::appendInfo(const QString& text)
+{
+ appendRaw(getTimeStamp() + " INFO: " + text);
+}
+
+void LogWindow::appendDebug(const QString& text)
+{
+ appendRaw(getTimeStamp() + " DEBUG: " + text);
+}
+
+void LogWindow::appendError(const QString& text)
+{
+ appendRaw(getTimeStamp() + " ERROR: " + text);
+}
+
+void LogWindow::appendRaw(const QString& text)
+{
+ m_pLogOutput->append(text);
+}
+
+void LogWindow::on_m_pButtonHide_clicked()
+{
+ hide();
+}
+
+void LogWindow::on_m_pButtonClearLog_clicked()
+{
+ m_pLogOutput->clear();
+}
diff --git a/src/gui/src/LogWindow.h b/src/gui/src/LogWindow.h
new file mode 100644
index 0000000..af23030
--- /dev/null
+++ b/src/gui/src/LogWindow.h
@@ -0,0 +1,46 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2018 Debauchee Open Source Group
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(LOGWINDOW__H)
+
+#define LOGWINDOW__H
+
+#include <QDialog>
+
+#include "ui_LogWindowBase.h"
+
+class LogWindow : public QDialog, public Ui::LogWindowBase
+{
+ Q_OBJECT
+
+ public:
+ LogWindow(QWidget *parent);
+
+ void startNewInstance();
+
+ void appendRaw(const QString& text);
+ void appendInfo(const QString& text);
+ void appendDebug(const QString& text);
+ void appendError(const QString& text);
+
+ private slots:
+ void on_m_pButtonHide_clicked();
+ void on_m_pButtonClearLog_clicked();
+
+};
+
+#endif // LOGWINDOW__H
diff --git a/src/gui/src/LogWindowBase.ui b/src/gui/src/LogWindowBase.ui
new file mode 100644
index 0000000..f335947
--- /dev/null
+++ b/src/gui/src/LogWindowBase.ui
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>LogWindowBase</class>
+ <widget class="QDialog" name="LogWindowBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>800</width>
+ <height>371</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>400</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Log - Barrier</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QTextEdit" name="m_pLogOutput">
+ <property name="font">
+ <font>
+ <family>Courier</family>
+ </font>
+ </property>
+ <property name="autoFillBackground">
+ <bool>false</bool>
+ </property>
+ <property name="undoRedoEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="lineWrapMode">
+ <enum>QTextEdit::NoWrap</enum>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetDefaultConstraint</enum>
+ </property>
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_pButtonClearLog">
+ <property name="text">
+ <string>&amp;Clear Log</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_pButtonHide">
+ <property name="text">
+ <string>&amp;Hide</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+</ui>
diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp
new file mode 100644
index 0000000..b92e5f7
--- /dev/null
+++ b/src/gui/src/MainWindow.cpp
@@ -0,0 +1,1279 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <iostream>
+
+#include "MainWindow.h"
+
+#include "Fingerprint.h"
+#include "AboutDialog.h"
+#include "ServerConfigDialog.h"
+#include "SettingsDialog.h"
+#include "ZeroconfService.h"
+#include "DataDownloader.h"
+#include "CommandProcess.h"
+#include "QUtility.h"
+#include "ProcessorArch.h"
+#include "SslCertificate.h"
+#include "ShutdownCh.h"
+
+#include <QtCore>
+#include <QtGui>
+#include <QtNetwork>
+#include <QNetworkAccessManager>
+#include <QMenu>
+#include <QMenuBar>
+#include <QMessageBox>
+#include <QFileDialog>
+#include <QDesktopServices>
+#include <QDesktopWidget>
+
+#if defined(Q_OS_MAC)
+#include <ApplicationServices/ApplicationServices.h>
+#endif
+
+#if defined(Q_OS_WIN)
+#define WIN32_LEAN_AND_MEAN
+#include <Windows.h>
+#endif
+
+#if defined(Q_OS_WIN)
+static const char barrierConfigName[] = "barrier.sgc";
+static const QString barrierConfigFilter(QObject::tr("Barrier Configurations (*.sgc);;All files (*.*)"));
+static QString bonjourBaseUrl = "http://binaries.symless.com/bonjour/";
+static const char bonjourFilename32[] = "Bonjour.msi";
+static const char bonjourFilename64[] = "Bonjour64.msi";
+static const char bonjourTargetFilename[] = "Bonjour.msi";
+#else
+static const char barrierConfigName[] = "barrier.conf";
+static const QString barrierConfigFilter(QObject::tr("Barrier Configurations (*.conf);;All files (*.*)"));
+#endif
+
+static const char* barrierIconFiles[] =
+{
+ ":/res/icons/16x16/barrier-disconnected.png",
+ ":/res/icons/16x16/barrier-disconnected.png",
+ ":/res/icons/16x16/barrier-connected.png",
+ ":/res/icons/16x16/barrier-transfering.png"
+};
+
+MainWindow::MainWindow(QSettings& settings, AppConfig& appConfig) :
+ m_Settings(settings),
+ m_AppConfig(&appConfig),
+ m_pBarrier(NULL),
+ m_BarrierState(barrierDisconnected),
+ m_ServerConfig(&m_Settings, 5, 3, m_AppConfig->screenName(), this),
+ m_pTempConfigFile(NULL),
+ m_pTrayIcon(NULL),
+ m_pTrayIconMenu(NULL),
+ m_AlreadyHidden(false),
+ m_pMenuBar(NULL),
+ m_pMenuBarrier(NULL),
+ m_pMenuHelp(NULL),
+ m_pZeroconfService(NULL),
+ m_pDataDownloader(NULL),
+ m_DownloadMessageBox(NULL),
+ m_pCancelButton(NULL),
+ m_SuppressAutoConfigWarning(false),
+ m_BonjourInstall(NULL),
+ m_SuppressEmptyServerWarning(false),
+ m_ExpectedRunningState(kStopped),
+ m_pSslCertificate(NULL),
+ m_pLogWindow(new LogWindow(nullptr))
+{
+ // explicitly unset DeleteOnClose so the window can be show and hidden
+ // repeatedly until Barrier is finished
+ setAttribute(Qt::WA_DeleteOnClose, false);
+ // mark the windows as sort of "dialog" window so that tiling window
+ // managers will float it by default (X11)
+ setAttribute(Qt::WA_X11NetWmWindowTypeDialog, true);
+
+ setupUi(this);
+
+ createMenuBar();
+ loadSettings();
+ initConnections();
+
+ m_pLabelScreenName->setText(getScreenName());
+ m_pLabelIpAddresses->setText(getIPAddresses());
+
+#if defined(Q_OS_WIN)
+ // ipc must always be enabled, so that we can disable command when switching to desktop mode.
+ connect(&m_IpcClient, SIGNAL(readLogLine(const QString&)), this, SLOT(appendLogRaw(const QString&)));
+ connect(&m_IpcClient, SIGNAL(errorMessage(const QString&)), this, SLOT(appendLogError(const QString&)));
+ connect(&m_IpcClient, SIGNAL(infoMessage(const QString&)), this, SLOT(appendLogInfo(const QString&)));
+ m_IpcClient.connectToHost();
+#endif
+
+ // change default size based on os
+#if defined(Q_OS_MAC)
+ resize(720, 550);
+ setMinimumSize(720, 0);
+#elif defined(Q_OS_LINUX)
+ resize(700, 530);
+ setMinimumSize(700, 0);
+#endif
+
+ m_SuppressAutoConfigWarning = true;
+ m_pCheckBoxAutoConfig->setChecked(appConfig.autoConfig());
+ m_SuppressAutoConfigWarning = false;
+
+ m_pComboServerList->hide();
+ m_pLabelPadlock->hide();
+
+ updateSSLFingerprint();
+
+ // resize window to smallest reasonable size
+ resize(0, 0);
+}
+
+MainWindow::~MainWindow()
+{
+ if (appConfig().processMode() == Desktop) {
+ m_ExpectedRunningState = kStopped;
+ stopDesktop();
+ }
+
+ saveSettings();
+
+ delete m_pZeroconfService;
+ delete m_DownloadMessageBox;
+ delete m_BonjourInstall;
+ delete m_pSslCertificate;
+
+ // LogWindow is created as a sibling of the MainWindow rather than a child
+ // so that the main window can be hidden without hiding the log. because of
+ // this it does not get properly cleaned up by the QObject system. also by
+ // the time this destructor is called the event loop will no longer be able
+ // to clean up the LogWindow so ->deleteLater() will not work
+ delete m_pLogWindow;
+}
+
+void MainWindow::open()
+{
+ createTrayIcon();
+
+ if (appConfig().getAutoHide()) {
+ hide();
+ } else {
+ showNormal();
+ }
+
+ if (!appConfig().autoConfigPrompted()) {
+ promptAutoConfig();
+ }
+
+ // only start if user has previously started. this stops the gui from
+ // auto hiding before the user has configured barrier (which of course
+ // confuses first time users, who think barrier has crashed).
+ if (appConfig().startedBefore() && appConfig().processMode() == Desktop) {
+ m_SuppressEmptyServerWarning = true;
+ startBarrier();
+ m_SuppressEmptyServerWarning = false;
+ }
+}
+
+void MainWindow::setStatus(const QString &status)
+{
+ m_pStatusLabel->setText(status);
+}
+
+void MainWindow::createTrayIcon()
+{
+ m_pTrayIconMenu = new QMenu(this);
+
+ m_pTrayIconMenu->addAction(m_pActionStartBarrier);
+ m_pTrayIconMenu->addAction(m_pActionStopBarrier);
+ m_pTrayIconMenu->addAction(m_pActionShowLog);
+ m_pTrayIconMenu->addSeparator();
+
+ m_pTrayIconMenu->addAction(m_pActionMinimize);
+ m_pTrayIconMenu->addAction(m_pActionRestore);
+ m_pTrayIconMenu->addSeparator();
+ m_pTrayIconMenu->addAction(m_pActionQuit);
+
+ m_pTrayIcon = new QSystemTrayIcon(this);
+ m_pTrayIcon->setContextMenu(m_pTrayIconMenu);
+ m_pTrayIcon->setToolTip("Barrier");
+
+ connect(m_pTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
+ this, SLOT(trayActivated(QSystemTrayIcon::ActivationReason)));
+
+ setIcon(barrierDisconnected);
+
+ m_pTrayIcon->show();
+}
+
+void MainWindow::retranslateMenuBar()
+{
+ m_pMenuBarrier->setTitle(tr("&Barrier"));
+ m_pMenuHelp->setTitle(tr("&Help"));
+}
+
+void MainWindow::createMenuBar()
+{
+ m_pMenuBar = new QMenuBar(this);
+ m_pMenuBarrier = new QMenu("", m_pMenuBar);
+ m_pMenuHelp = new QMenu("", m_pMenuBar);
+ retranslateMenuBar();
+
+ m_pMenuBar->addAction(m_pMenuBarrier->menuAction());
+ m_pMenuBar->addAction(m_pMenuHelp->menuAction());
+
+ m_pMenuBarrier->addAction(m_pActionShowLog);
+ m_pMenuBarrier->addAction(m_pActionSettings);
+ m_pMenuBarrier->addAction(m_pActionMinimize);
+ m_pMenuBarrier->addSeparator();
+ m_pMenuBarrier->addAction(m_pActionSave);
+ m_pMenuBarrier->addSeparator();
+ m_pMenuBarrier->addAction(m_pActionQuit);
+ m_pMenuHelp->addAction(m_pActionAbout);
+
+ setMenuBar(m_pMenuBar);
+}
+
+void MainWindow::loadSettings()
+{
+ // the next two must come BEFORE loading groupServerChecked and groupClientChecked or
+ // disabling and/or enabling the right widgets won't automatically work
+ m_pRadioExternalConfig->setChecked(settings().value("useExternalConfig", false).toBool());
+ m_pRadioInternalConfig->setChecked(settings().value("useInternalConfig", true).toBool());
+
+ m_pGroupServer->setChecked(settings().value("groupServerChecked", false).toBool());
+ m_pLineEditConfigFile->setText(settings().value("configFile", QDir::homePath() + "/" + barrierConfigName).toString());
+ m_pGroupClient->setChecked(settings().value("groupClientChecked", true).toBool());
+ m_pLineEditHostname->setText(settings().value("serverHostname").toString());
+}
+
+void MainWindow::initConnections()
+{
+ connect(m_pActionMinimize, SIGNAL(triggered()), this, SLOT(hide()));
+ connect(m_pActionRestore, SIGNAL(triggered()), this, SLOT(showNormal()));
+ connect(m_pActionStartBarrier, SIGNAL(triggered()), this, SLOT(startBarrier()));
+ connect(m_pActionStopBarrier, SIGNAL(triggered()), this, SLOT(stopBarrier()));
+ connect(m_pActionShowLog, SIGNAL(triggered()), this, SLOT(showLogWindow()));
+ connect(m_pActionQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
+}
+
+void MainWindow::saveSettings()
+{
+ // program settings
+ settings().setValue("groupServerChecked", m_pGroupServer->isChecked());
+ settings().setValue("useExternalConfig", m_pRadioExternalConfig->isChecked());
+ settings().setValue("configFile", m_pLineEditConfigFile->text());
+ settings().setValue("useInternalConfig", m_pRadioInternalConfig->isChecked());
+ settings().setValue("groupClientChecked", m_pGroupClient->isChecked());
+ settings().setValue("serverHostname", m_pLineEditHostname->text());
+
+ settings().sync();
+}
+
+void MainWindow::setIcon(qBarrierState state)
+{
+ QIcon icon;
+ icon.addFile(barrierIconFiles[state]);
+
+ setWindowIcon(icon);
+
+ if (m_pTrayIcon)
+ m_pTrayIcon->setIcon(icon);
+}
+
+void MainWindow::trayActivated(QSystemTrayIcon::ActivationReason reason)
+{
+ if (reason == QSystemTrayIcon::DoubleClick)
+ {
+ if (isVisible())
+ {
+ hide();
+ }
+ else
+ {
+ showNormal();
+ activateWindow();
+ }
+ }
+}
+
+void MainWindow::logOutput()
+{
+ if (m_pBarrier)
+ {
+ QString text(m_pBarrier->readAllStandardOutput());
+ foreach(QString line, text.split(QRegExp("\r|\n|\r\n")))
+ {
+ if (!line.isEmpty())
+ {
+ appendLogRaw(line);
+ }
+ }
+ }
+}
+
+void MainWindow::logError()
+{
+ if (m_pBarrier)
+ {
+ appendLogRaw(m_pBarrier->readAllStandardError());
+ }
+}
+
+void MainWindow::appendLogInfo(const QString& text)
+{
+ m_pLogWindow->appendInfo(text);
+}
+
+void MainWindow::appendLogDebug(const QString& text) {
+ if (appConfig().logLevel() >= 4) {
+ m_pLogWindow->appendDebug(text);
+ }
+}
+
+void MainWindow::appendLogError(const QString& text)
+{
+ m_pLogWindow->appendError(text);
+}
+
+void MainWindow::appendLogRaw(const QString& text)
+{
+ foreach(QString line, text.split(QRegExp("\r|\n|\r\n"))) {
+ if (!line.isEmpty()) {
+ m_pLogWindow->appendRaw(line);
+ updateFromLogLine(line);
+ }
+ }
+}
+
+void MainWindow::updateFromLogLine(const QString &line)
+{
+ // TODO: this code makes Andrew cry
+ checkConnected(line);
+ checkFingerprint(line);
+}
+
+void MainWindow::checkConnected(const QString& line)
+{
+ // TODO: implement ipc connection state messages to replace this hack.
+ if (line.contains("started server") ||
+ line.contains("connected to server") ||
+ line.contains("server status: active"))
+ {
+ setBarrierState(barrierConnected);
+
+ if (!appConfig().startedBefore() && isVisible()) {
+ QMessageBox::information(
+ this, "Barrier",
+ tr("Barrier is now connected. You can close the "
+ "config window and Barrier will remain connected in "
+ "the background."));
+
+ appConfig().setStartedBefore(true);
+ appConfig().saveSettings();
+ }
+ }
+}
+
+void MainWindow::checkFingerprint(const QString& line)
+{
+ QRegExp fingerprintRegex(".*server fingerprint: ([A-F0-9:]+)");
+ if (!fingerprintRegex.exactMatch(line)) {
+ return;
+ }
+
+ QString fingerprint = fingerprintRegex.cap(1);
+ if (Fingerprint::trustedServers().isTrusted(fingerprint)) {
+ return;
+ }
+
+ static bool messageBoxAlreadyShown = false;
+
+ if (!messageBoxAlreadyShown) {
+ stopBarrier();
+
+ messageBoxAlreadyShown = true;
+ QMessageBox::StandardButton fingerprintReply =
+ QMessageBox::information(
+ this, tr("Security question"),
+ tr("Do you trust this fingerprint?\n\n"
+ "%1\n\n"
+ "This is a server fingerprint. You should compare this "
+ "fingerprint to the one on your server's screen. If the "
+ "two don't match exactly, then it's probably not the server "
+ "you're expecting (it could be a malicious user).\n\n"
+ "To automatically trust this fingerprint for future "
+ "connections, click Yes. To reject this fingerprint and "
+ "disconnect from the server, click No.")
+ .arg(fingerprint),
+ QMessageBox::Yes | QMessageBox::No);
+
+ if (fingerprintReply == QMessageBox::Yes) {
+ // restart core process after trusting fingerprint.
+ Fingerprint::trustedServers().trust(fingerprint);
+ startBarrier();
+ }
+
+ messageBoxAlreadyShown = false;
+ }
+}
+
+void MainWindow::restartBarrier()
+{
+ stopBarrier();
+ startBarrier();
+}
+
+void MainWindow::proofreadInfo()
+{
+ int oldState = m_BarrierState;
+ m_BarrierState = barrierDisconnected;
+ setBarrierState((qBarrierState)oldState);
+}
+
+void MainWindow::startBarrier()
+{
+ bool desktopMode = appConfig().processMode() == Desktop;
+ bool serviceMode = appConfig().processMode() == Service;
+
+ appendLogDebug("starting process");
+ m_ExpectedRunningState = kStarted;
+ setBarrierState(barrierConnecting);
+
+ QString app;
+ QStringList args;
+
+ args << "-f" << "--no-tray" << "--debug" << appConfig().logLevelText();
+
+
+ args << "--name" << getScreenName();
+
+ if (desktopMode)
+ {
+ setBarrierProcess(new QProcess(this));
+ }
+ else
+ {
+ // tell client/server to talk to daemon through ipc.
+ args << "--ipc";
+
+#if defined(Q_OS_WIN)
+ // tell the client/server to shut down when a ms windows desk
+ // is switched; this is because we may need to elevate or not
+ // based on which desk the user is in (login always needs
+ // elevation, where as default desk does not).
+ // Note that this is only enabled when barrier is set to elevate
+ // 'as needed' (e.g. on a UAC dialog popup) in order to prevent
+ // unnecessary restarts when barrier was started elevated or
+ // when it is not allowed to elevate. In these cases restarting
+ // the server is fruitless.
+ if (appConfig().elevateMode() == ElevateAsNeeded) {
+ args << "--stop-on-desk-switch";
+ }
+#endif
+ }
+
+#ifndef Q_OS_LINUX
+
+ if (m_ServerConfig.enableDragAndDrop()) {
+ args << "--enable-drag-drop";
+ }
+
+#endif
+
+ if (m_AppConfig->getCryptoEnabled()) {
+ args << "--enable-crypto";
+ }
+
+#if defined(Q_OS_WIN)
+ // on windows, the profile directory changes depending on the user that
+ // launched the process (e.g. when launched with elevation). setting the
+ // profile dir on launch ensures it uses the same profile dir is used
+ // no matter how its relaunched.
+ args << "--profile-dir" << getProfileRootForArg();
+#endif
+
+ if ((barrierType() == barrierClient && !clientArgs(args, app))
+ || (barrierType() == barrierServer && !serverArgs(args, app)))
+ {
+ stopBarrier();
+ return;
+ }
+
+ if (desktopMode)
+ {
+ connect(barrierProcess(), SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(barrierFinished(int, QProcess::ExitStatus)));
+ connect(barrierProcess(), SIGNAL(readyReadStandardOutput()), this, SLOT(logOutput()));
+ connect(barrierProcess(), SIGNAL(readyReadStandardError()), this, SLOT(logError()));
+ }
+
+ m_pLogWindow->startNewInstance();
+
+ appendLogInfo("starting " + QString(barrierType() == barrierServer ? "server" : "client"));
+
+ qDebug() << args;
+
+ // show command if debug log level...
+ if (appConfig().logLevel() >= 4) {
+ appendLogInfo(QString("command: %1 %2").arg(app, args.join(" ")));
+ }
+
+ appendLogInfo("config file: " + configFilename());
+ appendLogInfo("log level: " + appConfig().logLevelText());
+
+ if (appConfig().logToFile())
+ appendLogInfo("log file: " + appConfig().logFilename());
+
+ if (desktopMode)
+ {
+ barrierProcess()->start(app, args);
+ if (!barrierProcess()->waitForStarted())
+ {
+ show();
+ QMessageBox::warning(this, tr("Program can not be started"), QString(tr("The executable<br><br>%1<br><br>could not be successfully started, although it does exist. Please check if you have sufficient permissions to run this program.").arg(app)));
+ return;
+ }
+ }
+
+ if (serviceMode)
+ {
+ QString command(app + " " + args.join(" "));
+ m_IpcClient.sendCommand(command, appConfig().elevateMode());
+ }
+}
+
+bool MainWindow::clientArgs(QStringList& args, QString& app)
+{
+ app = appPath(appConfig().barriercName());
+
+ if (!QFile::exists(app))
+ {
+ show();
+ QMessageBox::warning(this, tr("Barrier client not found"),
+ tr("The executable for the barrier client does not exist."));
+ return false;
+ }
+
+#if defined(Q_OS_WIN)
+ // wrap in quotes so a malicious user can't start \Program.exe as admin.
+ app = QString("\"%1\"").arg(app);
+#endif
+
+ if (appConfig().logToFile())
+ {
+ appConfig().persistLogDir();
+ args << "--log" << appConfig().logFilenameCmd();
+ }
+
+ // check auto config first, if it is disabled or no server detected,
+ // use line edit host name if it is not empty
+ if (m_pCheckBoxAutoConfig->isChecked()) {
+ if (m_pComboServerList->count() != 0) {
+ QString serverIp = m_pComboServerList->currentText();
+ args << serverIp + ":" + QString::number(appConfig().port());
+ return true;
+ }
+ }
+
+ if (m_pLineEditHostname->text().isEmpty()) {
+ show();
+ if (!m_SuppressEmptyServerWarning) {
+ QMessageBox::warning(this, tr("Hostname is empty"),
+ tr("Please fill in a hostname for the barrier client to connect to."));
+ }
+ return false;
+ }
+
+ args << m_pLineEditHostname->text() + ":" + QString::number(appConfig().port());
+
+ return true;
+}
+
+QString MainWindow::configFilename()
+{
+ QString filename;
+ if (m_pRadioInternalConfig->isChecked())
+ {
+ // TODO: no need to use a temporary file, since we need it to
+ // be permenant (since it'll be used for Windows services, etc).
+ m_pTempConfigFile = new QTemporaryFile();
+ if (!m_pTempConfigFile->open())
+ {
+ QMessageBox::critical(this, tr("Cannot write configuration file"), tr("The temporary configuration file required to start barrier can not be written."));
+ return "";
+ }
+
+ serverConfig().save(*m_pTempConfigFile);
+ filename = m_pTempConfigFile->fileName();
+
+ m_pTempConfigFile->close();
+ }
+ else
+ {
+ if (!QFile::exists(m_pLineEditConfigFile->text()))
+ {
+ if (QMessageBox::warning(this, tr("Configuration filename invalid"),
+ tr("You have not filled in a valid configuration file for the barrier server. "
+ "Do you want to browse for the configuration file now?"), QMessageBox::Yes | QMessageBox::No) != QMessageBox::Yes
+ || !on_m_pButtonBrowseConfigFile_clicked())
+ return "";
+ }
+
+ filename = m_pLineEditConfigFile->text();
+ }
+ return filename;
+}
+
+QString MainWindow::address()
+{
+ QString i = appConfig().networkInterface();
+ return (!i.isEmpty() ? i : "") + ":" + QString::number(appConfig().port());
+}
+
+QString MainWindow::appPath(const QString& name)
+{
+ return appConfig().barrierProgramDir() + name;
+}
+
+bool MainWindow::serverArgs(QStringList& args, QString& app)
+{
+ app = appPath(appConfig().barriersName());
+
+ if (!QFile::exists(app))
+ {
+ QMessageBox::warning(this, tr("Barrier server not found"),
+ tr("The executable for the barrier server does not exist."));
+ return false;
+ }
+
+#if defined(Q_OS_WIN)
+ // wrap in quotes so a malicious user can't start \Program.exe as admin.
+ app = QString("\"%1\"").arg(app);
+#endif
+
+ if (appConfig().logToFile())
+ {
+ appConfig().persistLogDir();
+
+ args << "--log" << appConfig().logFilenameCmd();
+ }
+
+ QString configFilename = this->configFilename();
+#if defined(Q_OS_WIN)
+ // wrap in quotes in case username contains spaces.
+ configFilename = QString("\"%1\"").arg(configFilename);
+#endif
+ args << "-c" << configFilename << "--address" << address();
+
+ return true;
+}
+
+void MainWindow::stopBarrier()
+{
+ appendLogDebug("stopping process");
+
+ m_ExpectedRunningState = kStopped;
+
+ if (appConfig().processMode() == Service)
+ {
+ stopService();
+ }
+ else if (appConfig().processMode() == Desktop)
+ {
+ stopDesktop();
+ }
+
+ setBarrierState(barrierDisconnected);
+
+ // HACK: deleting the object deletes the physical file, which is
+ // bad, since it could be in use by the Windows service!
+#if !defined(Q_OS_WIN)
+ delete m_pTempConfigFile;
+#endif
+ m_pTempConfigFile = NULL;
+
+ // reset so that new connects cause auto-hide.
+ m_AlreadyHidden = false;
+}
+
+void MainWindow::stopService()
+{
+ // send empty command to stop service from laucning anything.
+ m_IpcClient.sendCommand("", appConfig().elevateMode());
+}
+
+void MainWindow::stopDesktop()
+{
+ QMutexLocker locker(&m_StopDesktopMutex);
+ if (!barrierProcess()) {
+ return;
+ }
+
+ appendLogInfo("stopping barrier desktop process");
+
+ if (barrierProcess()->isOpen()) {
+ // try to shutdown child gracefully
+ barrierProcess()->write(&ShutdownCh, 1);
+ barrierProcess()->waitForFinished(5000);
+ barrierProcess()->close();
+ }
+
+ delete barrierProcess();
+ setBarrierProcess(NULL);
+}
+
+void MainWindow::barrierFinished(int exitCode, QProcess::ExitStatus)
+{
+ if (exitCode == 0) {
+ appendLogInfo(QString("process exited normally"));
+ }
+ else {
+ appendLogError(QString("process exited with error code: %1").arg(exitCode));
+ }
+
+ if (m_ExpectedRunningState == kStarted) {
+ QTimer::singleShot(1000, this, SLOT(startBarrier()));
+ appendLogInfo(QString("detected process not running, auto restarting"));
+ }
+ else {
+ setBarrierState(barrierDisconnected);
+ }
+}
+
+void MainWindow::setBarrierState(qBarrierState state)
+{
+ if (barrierState() == state)
+ return;
+
+ if (state == barrierConnected || state == barrierConnecting)
+ {
+ disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartBarrier, SLOT(trigger()));
+ connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopBarrier, SLOT(trigger()));
+ m_pButtonToggleStart->setText(tr("&Stop"));
+ m_pButtonApply->setEnabled(true);
+ }
+ else if (state == barrierDisconnected)
+ {
+ disconnect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStopBarrier, SLOT(trigger()));
+ connect (m_pButtonToggleStart, SIGNAL(clicked()), m_pActionStartBarrier, SLOT(trigger()));
+ m_pButtonToggleStart->setText(tr("&Start"));
+ m_pButtonApply->setEnabled(false);
+ }
+
+ bool connected = false;
+ if (state == barrierConnected || state == barrierTransfering) {
+ connected = true;
+ }
+
+ m_pActionStartBarrier->setEnabled(!connected);
+ m_pActionStopBarrier->setEnabled(connected);
+
+ switch (state)
+ {
+ case barrierConnected: {
+ if (m_AppConfig->getCryptoEnabled()) {
+ m_pLabelPadlock->show();
+ }
+ else {
+ m_pLabelPadlock->hide();
+ }
+
+ setStatus(tr("Barrier is running."));
+
+ break;
+ }
+ case barrierConnecting:
+ m_pLabelPadlock->hide();
+ setStatus(tr("Barrier is starting."));
+ break;
+ case barrierDisconnected:
+ m_pLabelPadlock->hide();
+ setStatus(tr("Barrier is not running."));
+ break;
+ case barrierTransfering:
+ break;
+ }
+
+ setIcon(state);
+
+ m_BarrierState = state;
+}
+
+void MainWindow::setVisible(bool visible)
+{
+ QMainWindow::setVisible(visible);
+ m_pActionMinimize->setEnabled(visible);
+ m_pActionRestore->setEnabled(!visible);
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 // lion
+ // dock hide only supported on lion :(
+ ProcessSerialNumber psn = { 0, kCurrentProcess };
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+ GetCurrentProcess(&psn);
+#pragma GCC diagnostic pop
+ if (visible)
+ TransformProcessType(&psn, kProcessTransformToForegroundApplication);
+ else
+ TransformProcessType(&psn, kProcessTransformToBackgroundApplication);
+#endif
+}
+
+QString MainWindow::getIPAddresses()
+{
+ QList<QHostAddress> addresses = QNetworkInterface::allAddresses();
+
+ bool hinted = false;
+ QString result;
+ for (int i = 0; i < addresses.size(); i++) {
+ if (addresses[i].protocol() == QAbstractSocket::IPv4Protocol &&
+ addresses[i] != QHostAddress(QHostAddress::LocalHost)) {
+
+ QString address = addresses[i].toString();
+ QString format = "%1, ";
+
+ // usually 192.168.x.x is a useful ip for the user, so indicate
+ // this by making it bold.
+ if (!hinted && address.startsWith("192.168")) {
+ hinted = true;
+ format = "<b>%1</b>, ";
+ }
+
+ result += format.arg(address);
+ }
+ }
+
+ if (result == "") {
+ return tr("Unknown");
+ }
+
+ // remove trailing comma.
+ result.chop(2);
+
+ return result;
+}
+
+QString MainWindow::getScreenName()
+{
+ if (appConfig().screenName() == "") {
+ return QHostInfo::localHostName();
+ }
+ else {
+ return appConfig().screenName();
+ }
+}
+
+void MainWindow::changeEvent(QEvent* event)
+{
+ if (event != 0)
+ {
+ switch (event->type())
+ {
+ case QEvent::LanguageChange:
+ {
+ retranslateUi(this);
+ retranslateMenuBar();
+
+ proofreadInfo();
+
+ break;
+ }
+ case QEvent::WindowStateChange:
+ {
+ windowStateChanged();
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+ }
+ // all that do not return are allowing the event to propagate
+ QMainWindow::changeEvent(event);
+}
+
+void MainWindow::updateZeroconfService()
+{
+ QMutexLocker locker(&m_UpdateZeroconfMutex);
+
+ if (isBonjourRunning()) {
+ if (!m_AppConfig->wizardShouldRun()) {
+ if (m_pZeroconfService) {
+ delete m_pZeroconfService;
+ m_pZeroconfService = NULL;
+ }
+
+ if (m_AppConfig->autoConfig() || barrierType() == barrierServer) {
+ m_pZeroconfService = new ZeroconfService(this);
+ }
+ }
+ }
+}
+
+void MainWindow::serverDetected(const QString name)
+{
+ if (m_pComboServerList->findText(name) == -1) {
+ // Note: the first added item triggers startBarrier
+ m_pComboServerList->addItem(name);
+ }
+
+ if (m_pComboServerList->count() > 1) {
+ m_pComboServerList->show();
+ }
+}
+
+void MainWindow::updateSSLFingerprint()
+{
+ if (m_AppConfig->getCryptoEnabled() && m_pSslCertificate == nullptr) {
+ m_pSslCertificate = new SslCertificate(this);
+ m_pSslCertificate->generateCertificate();
+ }
+ if (m_AppConfig->getCryptoEnabled() && Fingerprint::local().fileExists()) {
+ m_pLabelLocalFingerprint->setText(Fingerprint::local().readFirst());
+ } else {
+ m_pLabelLocalFingerprint->setText("Disabled");
+ }
+}
+
+void MainWindow::on_m_pGroupClient_toggled(bool on)
+{
+ m_pGroupServer->setChecked(!on);
+ if (on) {
+ updateZeroconfService();
+ }
+}
+
+void MainWindow::on_m_pGroupServer_toggled(bool on)
+{
+ m_pGroupClient->setChecked(!on);
+ if (on) {
+ updateZeroconfService();
+ }
+}
+
+bool MainWindow::on_m_pButtonBrowseConfigFile_clicked()
+{
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Browse for a barriers config file"), QString(), barrierConfigFilter);
+
+ if (!fileName.isEmpty())
+ {
+ m_pLineEditConfigFile->setText(fileName);
+ return true;
+ }
+
+ return false;
+}
+
+bool MainWindow::on_m_pActionSave_triggered()
+{
+ QString fileName = QFileDialog::getSaveFileName(this, tr("Save configuration as..."), QString(), tr("Barrier Configuration (*.sgc)"));
+
+ if (!fileName.isEmpty() && !serverConfig().save(fileName))
+ {
+ QMessageBox::warning(this, tr("Save failed"), tr("Could not save configuration to file."));
+ return true;
+ }
+
+ return false;
+}
+
+void MainWindow::on_m_pActionAbout_triggered()
+{
+ AboutDialog(this, appPath(appConfig().barriercName())).exec();
+}
+
+void MainWindow::on_m_pActionSettings_triggered()
+{
+ if (SettingsDialog(this, appConfig()).exec() == QDialog::Accepted)
+ updateSSLFingerprint();
+}
+
+void MainWindow::autoAddScreen(const QString name)
+{
+ if (!m_ServerConfig.ignoreAutoConfigClient()) {
+ int r = m_ServerConfig.autoAddScreen(name);
+ if (r != kAutoAddScreenOk) {
+ switch (r) {
+ case kAutoAddScreenManualServer:
+ showConfigureServer(
+ tr("Please add the server (%1) to the grid.")
+ .arg(appConfig().screenName()));
+ break;
+
+ case kAutoAddScreenManualClient:
+ showConfigureServer(
+ tr("Please drag the new client screen (%1) "
+ "to the desired position on the grid.")
+ .arg(name));
+ break;
+ }
+ }
+ else {
+ restartBarrier();
+ }
+ }
+}
+
+void MainWindow::showConfigureServer(const QString& message)
+{
+ ServerConfigDialog dlg(this, serverConfig(), appConfig().screenName());
+ dlg.message(message);
+ dlg.exec();
+}
+
+void MainWindow::on_m_pButtonConfigureServer_clicked()
+{
+ showConfigureServer();
+}
+
+void MainWindow::on_m_pButtonApply_clicked()
+{
+ restartBarrier();
+}
+
+#if defined(Q_OS_WIN)
+bool MainWindow::isServiceRunning(QString name)
+{
+ SC_HANDLE hSCManager;
+ hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
+ if (hSCManager == NULL) {
+ appendLogError("failed to open a service controller manager, error: " +
+ GetLastError());
+ return false;
+ }
+
+ auto array = name.toLocal8Bit();
+ SC_HANDLE hService = OpenService(hSCManager, array.data(), SERVICE_QUERY_STATUS);
+
+ if (hService == NULL) {
+ appendLogDebug("failed to open service: " + name);
+ return false;
+ }
+
+ SERVICE_STATUS status;
+ if (QueryServiceStatus(hService, &status)) {
+ if (status.dwCurrentState == SERVICE_RUNNING) {
+ return true;
+ }
+ }
+
+ return false;
+}
+#else
+bool MainWindow::isServiceRunning()
+{
+ return false;
+}
+#endif
+
+bool MainWindow::isBonjourRunning()
+{
+ bool result = false;
+
+#if defined(Q_OS_WIN)
+ result = isServiceRunning("Bonjour Service");
+#else
+ result = true;
+#endif
+
+ return result;
+}
+
+void MainWindow::downloadBonjour()
+{
+#if defined(Q_OS_WIN)
+ QUrl url;
+ int arch = getProcessorArch();
+ if (arch == kProcessorArchWin32) {
+ url.setUrl(bonjourBaseUrl + bonjourFilename32);
+ appendLogInfo("downloading 32-bit Bonjour");
+ }
+ else if (arch == kProcessorArchWin64) {
+ url.setUrl(bonjourBaseUrl + bonjourFilename64);
+ appendLogInfo("downloading 64-bit Bonjour");
+ }
+ else {
+ QMessageBox::critical(
+ this, tr("Barrier"),
+ tr("Failed to detect system architecture."));
+ return;
+ }
+
+ if (m_pDataDownloader == NULL) {
+ m_pDataDownloader = new DataDownloader(this);
+ connect(m_pDataDownloader, SIGNAL(isComplete()), SLOT(installBonjour()));
+ }
+
+ m_pDataDownloader->download(url);
+
+ if (m_DownloadMessageBox == NULL) {
+ m_DownloadMessageBox = new QMessageBox(this);
+ m_DownloadMessageBox->setWindowTitle("Barrier");
+ m_DownloadMessageBox->setIcon(QMessageBox::Information);
+ m_DownloadMessageBox->setText("Installing Bonjour, please wait...");
+ m_DownloadMessageBox->setStandardButtons(0);
+ m_pCancelButton = m_DownloadMessageBox->addButton(
+ tr("Cancel"), QMessageBox::RejectRole);
+ }
+
+ m_DownloadMessageBox->exec();
+
+ if (m_DownloadMessageBox->clickedButton() == m_pCancelButton) {
+ m_pDataDownloader->cancel();
+ }
+#endif
+}
+
+void MainWindow::installBonjour()
+{
+#if defined(Q_OS_WIN)
+#if QT_VERSION >= 0x050000
+ QString tempLocation = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
+#else
+ QString tempLocation = QDesktopServices::storageLocation(
+ QDesktopServices::TempLocation);
+#endif
+ QString filename = tempLocation;
+ filename.append("\\").append(bonjourTargetFilename);
+ QFile file(filename);
+ if (!file.open(QIODevice::WriteOnly)) {
+ m_DownloadMessageBox->hide();
+
+ QMessageBox::warning(
+ this, "Barrier",
+ tr("Failed to download Bonjour installer to location: %1")
+ .arg(tempLocation));
+ return;
+ }
+
+ file.write(m_pDataDownloader->data());
+ file.close();
+
+ QStringList arguments;
+ arguments.append("/i");
+ QString winFilename = QDir::toNativeSeparators(filename);
+ arguments.append(winFilename);
+ arguments.append("/passive");
+ if (m_BonjourInstall == NULL) {
+ m_BonjourInstall = new CommandProcess("msiexec", arguments);
+ }
+
+ QThread* thread = new QThread;
+ connect(m_BonjourInstall, SIGNAL(finished()), this,
+ SLOT(bonjourInstallFinished()));
+ connect(m_BonjourInstall, SIGNAL(finished()), thread, SLOT(quit()));
+ connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
+
+ m_BonjourInstall->moveToThread(thread);
+ thread->start();
+
+ QMetaObject::invokeMethod(m_BonjourInstall, "run", Qt::QueuedConnection);
+
+ m_DownloadMessageBox->hide();
+#endif
+}
+
+void MainWindow::promptAutoConfig()
+{
+ if (!isBonjourRunning()) {
+ int r = QMessageBox::question(
+ this, tr("Barrier"),
+ tr("Do you want to enable auto config and install Bonjour?\n\n"
+ "This feature helps you establish the connection."),
+ QMessageBox::Yes | QMessageBox::No);
+
+ if (r == QMessageBox::Yes) {
+ m_AppConfig->setAutoConfig(true);
+ downloadBonjour();
+ }
+ else {
+ m_AppConfig->setAutoConfig(false);
+ m_pCheckBoxAutoConfig->setChecked(false);
+ }
+ }
+
+ m_AppConfig->setAutoConfigPrompted(true);
+}
+
+void MainWindow::on_m_pComboServerList_currentIndexChanged(QString )
+{
+ if (m_pComboServerList->count() != 0) {
+ restartBarrier();
+ }
+}
+
+void MainWindow::on_m_pCheckBoxAutoConfig_toggled(bool checked)
+{
+ if (!isBonjourRunning() && checked) {
+ if (!m_SuppressAutoConfigWarning) {
+ int r = QMessageBox::information(
+ this, tr("Barrier"),
+ tr("Auto config feature requires Bonjour.\n\n"
+ "Do you want to install Bonjour?"),
+ QMessageBox::Yes | QMessageBox::No);
+
+ if (r == QMessageBox::Yes) {
+ downloadBonjour();
+ }
+ }
+
+ m_pCheckBoxAutoConfig->setChecked(false);
+ return;
+ }
+
+ m_pLineEditHostname->setDisabled(checked);
+ appConfig().setAutoConfig(checked);
+ updateZeroconfService();
+
+ if (!checked) {
+ m_pComboServerList->clear();
+ m_pComboServerList->hide();
+ }
+}
+
+void MainWindow::bonjourInstallFinished()
+{
+ appendLogInfo("Bonjour install finished");
+
+ m_pCheckBoxAutoConfig->setChecked(true);
+}
+
+QString MainWindow::getProfileRootForArg()
+{
+ CoreInterface coreInterface;
+ QString dir = coreInterface.getProfileDir();
+
+ // HACK: strip our app name since we're returning the root dir.
+#if defined(Q_OS_WIN)
+ dir.replace("\\Barrier", "");
+#else
+ dir.replace("/.barrier", "");
+#endif
+
+ return QString("\"%1\"").arg(dir);
+}
+
+void MainWindow::windowStateChanged()
+{
+ if (windowState() == Qt::WindowMinimized && appConfig().getMinimizeToTray())
+ hide();
+}
+
+void MainWindow::showLogWindow()
+{
+ m_pLogWindow->show();
+}
diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h
new file mode 100644
index 0000000..27b30d1
--- /dev/null
+++ b/src/gui/src/MainWindow.h
@@ -0,0 +1,215 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(MAINWINDOW__H)
+
+#define MAINWINDOW__H
+
+#include <QMainWindow>
+#include <QSystemTrayIcon>
+#include <QSettings>
+#include <QProcess>
+#include <QThread>
+
+#include "ui_MainWindowBase.h"
+
+#include "ServerConfig.h"
+#include "AppConfig.h"
+#include "VersionChecker.h"
+#include "IpcClient.h"
+#include "Ipc.h"
+#include "LogWindow.h"
+
+#include <QMutex>
+
+class QAction;
+class QMenu;
+class QLineEdit;
+class QGroupBox;
+class QPushButton;
+class QTextEdit;
+class QComboBox;
+class QTabWidget;
+class QCheckBox;
+class QRadioButton;
+class QTemporaryFile;
+class QMessageBox;
+class QAbstractButton;
+
+class LogDialog;
+class QBarrierApplication;
+class SetupWizard;
+class ZeroconfService;
+class DataDownloader;
+class CommandProcess;
+class SslCertificate;
+
+class MainWindow : public QMainWindow, public Ui::MainWindowBase
+{
+ Q_OBJECT
+
+ friend class QBarrierApplication;
+ friend class SetupWizard;
+ friend class SettingsDialog;
+
+ public:
+ enum qBarrierState
+ {
+ barrierDisconnected,
+ barrierConnecting,
+ barrierConnected,
+ barrierTransfering
+ };
+
+ enum qBarrierType
+ {
+ barrierClient,
+ barrierServer
+ };
+
+ enum qLevel {
+ Error,
+ Info
+ };
+
+ enum qRuningState {
+ kStarted,
+ kStopped
+ };
+
+ public:
+ MainWindow(QSettings& settings, AppConfig& appConfig);
+ ~MainWindow();
+
+ public:
+ void setVisible(bool visible);
+ int barrierType() const { return m_pGroupClient->isChecked() ? barrierClient : barrierServer; }
+ int barrierState() const { return m_BarrierState; }
+ QString hostname() const { return m_pLineEditHostname->text(); }
+ QString configFilename();
+ QString address();
+ QString appPath(const QString& name);
+ void open();
+ VersionChecker& versionChecker() { return m_VersionChecker; }
+ QString getScreenName();
+ ServerConfig& serverConfig() { return m_ServerConfig; }
+ void showConfigureServer(const QString& message);
+ void showConfigureServer() { showConfigureServer(""); }
+ void autoAddScreen(const QString name);
+ void updateZeroconfService();
+ void serverDetected(const QString name);
+
+public slots:
+ void appendLogRaw(const QString& text);
+ void appendLogInfo(const QString& text);
+ void appendLogDebug(const QString& text);
+ void appendLogError(const QString& text);
+ void startBarrier();
+
+ protected slots:
+ void on_m_pGroupClient_toggled(bool on);
+ void on_m_pGroupServer_toggled(bool on);
+ bool on_m_pButtonBrowseConfigFile_clicked();
+ void on_m_pButtonConfigureServer_clicked();
+ bool on_m_pActionSave_triggered();
+ void on_m_pActionAbout_triggered();
+ void on_m_pActionSettings_triggered();
+ void barrierFinished(int exitCode, QProcess::ExitStatus);
+ void trayActivated(QSystemTrayIcon::ActivationReason reason);
+ void stopBarrier();
+ void logOutput();
+ void logError();
+ void bonjourInstallFinished();
+ void showLogWindow();
+
+ protected:
+ QSettings& settings() { return m_Settings; }
+ AppConfig& appConfig() { return *m_AppConfig; }
+ QProcess* barrierProcess() { return m_pBarrier; }
+ void setBarrierProcess(QProcess* p) { m_pBarrier = p; }
+ void initConnections();
+ void createMenuBar();
+ void createTrayIcon();
+ void loadSettings();
+ void saveSettings();
+ void setIcon(qBarrierState state);
+ void setBarrierState(qBarrierState state);
+ bool clientArgs(QStringList& args, QString& app);
+ bool serverArgs(QStringList& args, QString& app);
+ void setStatus(const QString& status);
+ void updateFromLogLine(const QString& line);
+ QString getIPAddresses();
+ void stopService();
+ void stopDesktop();
+ void changeEvent(QEvent* event);
+ void retranslateMenuBar();
+#if defined(Q_OS_WIN)
+ bool isServiceRunning(QString name);
+#else
+ bool isServiceRunning();
+#endif
+ bool isBonjourRunning();
+ void downloadBonjour();
+ void promptAutoConfig();
+ QString getProfileRootForArg();
+ void checkConnected(const QString& line);
+ void checkFingerprint(const QString& line);
+ void restartBarrier();
+ void proofreadInfo();
+ void windowStateChanged();
+ void updateSSLFingerprint();
+
+ private:
+ QSettings& m_Settings;
+ AppConfig* m_AppConfig;
+ QProcess* m_pBarrier;
+ int m_BarrierState;
+ ServerConfig m_ServerConfig;
+ QTemporaryFile* m_pTempConfigFile;
+ QSystemTrayIcon* m_pTrayIcon;
+ QMenu* m_pTrayIconMenu;
+ bool m_AlreadyHidden;
+ VersionChecker m_VersionChecker;
+ IpcClient m_IpcClient;
+ QMenuBar* m_pMenuBar;
+ QMenu* m_pMenuBarrier;
+ QMenu* m_pMenuHelp;
+ ZeroconfService* m_pZeroconfService;
+ DataDownloader* m_pDataDownloader;
+ QMessageBox* m_DownloadMessageBox;
+ QAbstractButton* m_pCancelButton;
+ QMutex m_UpdateZeroconfMutex;
+ bool m_SuppressAutoConfigWarning;
+ CommandProcess* m_BonjourInstall;
+ bool m_SuppressEmptyServerWarning;
+ qRuningState m_ExpectedRunningState;
+ QMutex m_StopDesktopMutex;
+ SslCertificate* m_pSslCertificate;
+ QStringList m_PendingClientNames;
+ LogWindow *m_pLogWindow;
+
+private slots:
+ void on_m_pCheckBoxAutoConfig_toggled(bool checked);
+ void on_m_pComboServerList_currentIndexChanged(QString );
+ void on_m_pButtonApply_clicked();
+ void installBonjour();
+
+};
+
+#endif
+
diff --git a/src/gui/src/MainWindowBase.ui b/src/gui/src/MainWindowBase.ui
new file mode 100644
index 0000000..d1b0b37
--- /dev/null
+++ b/src/gui/src/MainWindowBase.ui
@@ -0,0 +1,470 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindowBase</class>
+ <widget class="QMainWindow" name="MainWindowBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>550</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>600</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Barrier</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QGroupBox" name="m_pGroupServer">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Ser&amp;ver (share this computer's mouse and keyboard):</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QFormLayout" name="formLayout">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>IP addresses:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="m_pLabelIpAddresses">
+ <property name="text">
+ <string notr="true"/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLabel" name="m_pLabelFingerprint">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>SSL Fingerprint:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pLabelLocalFingerprint">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_pRadioInternalConfig">
+ <property name="text">
+ <string>Configure interactively:</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QPushButton" name="m_pButtonConfigureServer">
+ <property name="text">
+ <string>&amp;Configure Server...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_pRadioExternalConfig">
+ <property name="text">
+ <string>Use existing configuration:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="m_pLabelConfigurationFile">
+ <property name="text">
+ <string>&amp;Configuration file:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pLineEditConfigFile</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="m_pLineEditConfigFile">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_pButtonBrowseConfigFile">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Browse...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="m_pGroupClient">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>&amp;Client (use another computer's mouse and keyboard):</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <layout class="QFormLayout" name="formLayout_3">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Screen name:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLabel" name="m_pLabelScreenName">
+ <property name="text">
+ <string notr="true"/>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="m_pLabelServerName">
+ <property name="text">
+ <string>&amp;Server IP:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pLineEditHostname</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="m_pLineEditHostname"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxAutoConfig">
+ <property name="text">
+ <string>Auto config</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QComboBox" name="m_pComboServerList">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>120</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetDefaultConstraint</enum>
+ </property>
+ <item>
+ <widget class="QLabel" name="m_pLabelPadlock">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="Barrier.qrc">:/res/icons/16x16/padlock.png</pixmap>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pStatusLabel">
+ <property name="text">
+ <string>Ready</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_pButtonApply">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Apply</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="m_pButtonToggleStart">
+ <property name="text">
+ <string>&amp;Start</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <action name="m_pActionAbout">
+ <property name="text">
+ <string>&amp;About Barrier...</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true"/>
+ </property>
+ </action>
+ <action name="m_pActionQuit">
+ <property name="text">
+ <string>&amp;Quit</string>
+ </property>
+ <property name="statusTip">
+ <string>Quit</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+Q</string>
+ </property>
+ </action>
+ <action name="m_pActionStartBarrier">
+ <property name="text">
+ <string>&amp;Start</string>
+ </property>
+ <property name="statusTip">
+ <string>Run</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+S</string>
+ </property>
+ </action>
+ <action name="m_pActionStopBarrier">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>S&amp;top</string>
+ </property>
+ <property name="statusTip">
+ <string>Stop</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+T</string>
+ </property>
+ </action>
+ <action name="m_pActionMinimize">
+ <property name="text">
+ <string>&amp;Hide</string>
+ </property>
+ <property name="toolTip">
+ <string>Hide</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true">F5</string>
+ </property>
+ </action>
+ <action name="m_pActionRestore">
+ <property name="text">
+ <string>&amp;Show</string>
+ </property>
+ <property name="toolTip">
+ <string>Show</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true"/>
+ </property>
+ </action>
+ <action name="m_pActionSave">
+ <property name="text">
+ <string>S&amp;ave configuration</string>
+ </property>
+ <property name="statusTip">
+ <string>Save the interactively generated server configuration to a file.</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+Alt+S</string>
+ </property>
+ </action>
+ <action name="m_pActionSettings">
+ <property name="text">
+ <string>Change &amp;Settings</string>
+ </property>
+ <property name="statusTip">
+ <string>Edit settings</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true">F4</string>
+ </property>
+ </action>
+ <action name="m_pActionShowLog">
+ <property name="text">
+ <string>Show &amp;Log</string>
+ </property>
+ <property name="toolTip">
+ <string>Show Log</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true">F2</string>
+ </property>
+ </action>
+ </widget>
+ <resources>
+ <include location="Barrier.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>m_pRadioExternalConfig</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pLineEditConfigFile</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>156</x>
+ <y>179</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>169</x>
+ <y>209</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioExternalConfig</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pButtonBrowseConfigFile</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>353</x>
+ <y>182</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>356</x>
+ <y>211</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pRadioInternalConfig</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pButtonConfigureServer</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>204</x>
+ <y>244</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>212</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pButtonToggleStart</sender>
+ <signal>clicked()</signal>
+ <receiver>m_pActionStartBarrier</receiver>
+ <slot>trigger()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>361</x>
+ <y>404</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/NewScreenWidget.cpp b/src/gui/src/NewScreenWidget.cpp
new file mode 100644
index 0000000..18379c0
--- /dev/null
+++ b/src/gui/src/NewScreenWidget.cpp
@@ -0,0 +1,48 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "NewScreenWidget.h"
+#include "ScreenSetupModel.h"
+
+#include <QtCore>
+#include <QtGui>
+
+NewScreenWidget::NewScreenWidget(QWidget* parent) :
+ QLabel(parent)
+{
+}
+
+void NewScreenWidget::mousePressEvent(QMouseEvent* event)
+{
+ Screen newScreen(tr("Unnamed"));
+
+ QByteArray itemData;
+ QDataStream dataStream(&itemData, QIODevice::WriteOnly);
+ dataStream << -1 << -1 << newScreen;
+
+ QMimeData* pMimeData = new QMimeData;
+ pMimeData->setData(ScreenSetupModel::mimeType(), itemData);
+
+ QDrag* pDrag = new QDrag(this);
+ pDrag->setMimeData(pMimeData);
+ pDrag->setPixmap(*pixmap());
+ pDrag->setHotSpot(event->pos());
+
+ pDrag->exec(Qt::CopyAction, Qt::CopyAction);
+}
+
diff --git a/src/gui/src/NewScreenWidget.h b/src/gui/src/NewScreenWidget.h
new file mode 100644
index 0000000..34f3269
--- /dev/null
+++ b/src/gui/src/NewScreenWidget.h
@@ -0,0 +1,40 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(NEWSCREENWIDGET__H)
+
+#define NEWSCREENWIDGET__H
+
+#include <QLabel>
+
+class QMouseEvent;
+class QWidget;
+
+class NewScreenWidget : public QLabel
+{
+ Q_OBJECT
+
+ public:
+ NewScreenWidget(QWidget* parent);
+
+ protected:
+ void mousePressEvent(QMouseEvent* event);
+};
+
+#endif
+
diff --git a/src/gui/src/ProcessorArch.h b/src/gui/src/ProcessorArch.h
new file mode 100644
index 0000000..dd686ce
--- /dev/null
+++ b/src/gui/src/ProcessorArch.h
@@ -0,0 +1,28 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+enum qProcessorArch {
+ kProcessorArchWin32,
+ kProcessorArchWin64,
+ kProcessorArchMac32,
+ kProcessorArchMac64,
+ kProcessorArchLinux32,
+ kProcessorArchLinux64,
+ kProcessorArchUnknown
+};
diff --git a/src/gui/src/QBarrierApplication.cpp b/src/gui/src/QBarrierApplication.cpp
new file mode 100644
index 0000000..f2da382
--- /dev/null
+++ b/src/gui/src/QBarrierApplication.cpp
@@ -0,0 +1,72 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "QBarrierApplication.h"
+#include "MainWindow.h"
+
+#include <QtCore>
+#include <QtGui>
+
+QBarrierApplication* QBarrierApplication::s_Instance = NULL;
+
+QBarrierApplication::QBarrierApplication(int& argc, char** argv) :
+ QApplication(argc, argv),
+ m_Translator(NULL)
+{
+ s_Instance = this;
+}
+
+QBarrierApplication::~QBarrierApplication()
+{
+ delete m_Translator;
+}
+
+void QBarrierApplication::commitData(QSessionManager&)
+{
+ foreach(QWidget* widget, topLevelWidgets())
+ {
+ MainWindow* mainWindow = qobject_cast<MainWindow*>(widget);
+ if (mainWindow)
+ mainWindow->saveSettings();
+ }
+}
+
+QBarrierApplication* QBarrierApplication::getInstance()
+{
+ return s_Instance;
+}
+
+void QBarrierApplication::switchTranslator(QString lang)
+{
+ if (m_Translator != NULL)
+ {
+ removeTranslator(m_Translator);
+ delete m_Translator;
+ }
+
+ QResource locale(":/res/lang/gui_" + lang + ".qm");
+ m_Translator = new QTranslator();
+ m_Translator->load(locale.data(), locale.size());
+ installTranslator(m_Translator);
+}
+
+void QBarrierApplication::setTranslator(QTranslator* translator)
+{
+ m_Translator = translator;
+ installTranslator(m_Translator);
+}
diff --git a/src/gui/src/QBarrierApplication.h b/src/gui/src/QBarrierApplication.h
new file mode 100644
index 0000000..95729b2
--- /dev/null
+++ b/src/gui/src/QBarrierApplication.h
@@ -0,0 +1,47 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(QBARRIERAPPLICATION__H)
+
+#define QBARRIERAPPLICATION__H
+
+#include <QApplication>
+
+class QSessionManager;
+
+class QBarrierApplication : public QApplication
+{
+ public:
+ QBarrierApplication(int& argc, char** argv);
+ ~QBarrierApplication();
+
+ public:
+ void commitData(QSessionManager& manager);
+ void switchTranslator(QString lang);
+ void setTranslator(QTranslator* translator);
+
+ static QBarrierApplication* getInstance();
+
+ private:
+ QTranslator* m_Translator;
+
+ static QBarrierApplication* s_Instance;
+};
+
+#endif
+
diff --git a/src/gui/src/QUtility.cpp b/src/gui/src/QUtility.cpp
new file mode 100644
index 0000000..7757adf
--- /dev/null
+++ b/src/gui/src/QUtility.cpp
@@ -0,0 +1,115 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2013-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "QUtility.h"
+
+#include "ProcessorArch.h"
+#include "CommandProcess.h"
+
+#if defined(Q_OS_LINUX)
+#include <QProcess>
+#endif
+
+#if defined(Q_OS_WIN)
+#define WIN32_LEAN_AND_MEAN
+#include <Windows.h>
+#endif
+
+void setIndexFromItemData(QComboBox* comboBox, const QVariant& itemData)
+{
+ for (int i = 0; i < comboBox->count(); ++i)
+ {
+ if (comboBox->itemData(i) == itemData)
+ {
+ comboBox->setCurrentIndex(i);
+ return;
+ }
+ }
+}
+
+QString hash(const QString& string)
+{
+ QByteArray data = string.toUtf8();
+ QByteArray hash = QCryptographicHash::hash(data, QCryptographicHash::Md5);
+ return hash.toHex();
+}
+
+QString getFirstMacAddress()
+{
+ QString mac;
+ foreach (const QNetworkInterface &interface, QNetworkInterface::allInterfaces())
+ {
+ mac = interface.hardwareAddress();
+ if (mac.size() != 0)
+ {
+ break;
+ }
+ }
+ return mac;
+}
+
+qProcessorArch getProcessorArch()
+{
+#if defined(Q_OS_WIN)
+ SYSTEM_INFO systemInfo;
+ GetNativeSystemInfo(&systemInfo);
+
+ switch (systemInfo.wProcessorArchitecture) {
+ case PROCESSOR_ARCHITECTURE_INTEL:
+ return kProcessorArchWin32;
+ case PROCESSOR_ARCHITECTURE_IA64:
+ return kProcessorArchWin64;
+ case PROCESSOR_ARCHITECTURE_AMD64:
+ return kProcessorArchWin64;
+ default:
+ return kProcessorArchUnknown;
+ }
+#endif
+
+#if defined(Q_OS_LINUX)
+#ifdef __i386__
+ return kProcessorArchLinux32;
+#else
+ return kProcessorArchLinux64;
+#endif
+#endif
+
+ return kProcessorArchUnknown;
+}
+
+QString getOSInformation()
+{
+ QString result;
+
+#if defined(Q_OS_LINUX)
+ result = "Linux";
+ try {
+ QStringList arguments;
+ arguments.append("/etc/os-release");
+ CommandProcess cp("/bin/cat", arguments);
+ QString output = cp.run();
+
+ QRegExp resultRegex(".*PRETTY_NAME=\"([^\"]+)\".*");
+ if (resultRegex.exactMatch(output)) {
+ result = resultRegex.cap(1);
+ }
+ } catch (...) {
+ }
+#endif
+
+ return result;
+}
diff --git a/src/gui/src/QUtility.h b/src/gui/src/QUtility.h
new file mode 100644
index 0000000..62a6082
--- /dev/null
+++ b/src/gui/src/QUtility.h
@@ -0,0 +1,31 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2013-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "ProcessorArch.h"
+
+#include <QComboBox>
+#include <QVariant>
+#include <QCryptographicHash>
+#include <QNetworkInterface>
+
+void setIndexFromItemData(QComboBox* comboBox, const QVariant& itemData);
+QString hash(const QString& string);
+QString getFirstMacAddress();
+qProcessorArch getProcessorArch();
+QString getOSInformation();
diff --git a/src/gui/src/Screen.cpp b/src/gui/src/Screen.cpp
new file mode 100644
index 0000000..880e78c
--- /dev/null
+++ b/src/gui/src/Screen.cpp
@@ -0,0 +1,147 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "Screen.h"
+
+#include <QtCore>
+#include <QtGui>
+
+Screen::Screen() :
+ m_Pixmap(QPixmap(":res/icons/64x64/video-display.png")),
+ m_Swapped(false)
+{
+ init();
+}
+
+Screen::Screen(const QString& name) :
+ m_Pixmap(QPixmap(":res/icons/64x64/video-display.png")),
+ m_Swapped(false)
+{
+ init();
+ setName(name);
+}
+
+void Screen::init()
+{
+ name().clear();
+ aliases().clear();
+ modifiers().clear();
+ switchCorners().clear();
+ fixes().clear();
+ setSwitchCornerSize(0);
+
+ // m_Modifiers, m_SwitchCorners and m_Fixes are QLists we use like fixed-size arrays,
+ // thus we need to make sure to fill them with the required number of elements.
+ for (int i = 0; i < NumModifiers; i++)
+ modifiers() << i;
+
+ for (int i = 0; i < NumSwitchCorners; i++)
+ switchCorners() << false;
+
+ for (int i = 0; i < NumFixes; i++)
+ fixes() << false;
+}
+
+void Screen::loadSettings(QSettings& settings)
+{
+ setName(settings.value("name").toString());
+
+ if (name().isEmpty())
+ return;
+
+ setSwitchCornerSize(settings.value("switchCornerSize").toInt());
+
+ readSettings(settings, aliases(), "alias", QString(""));
+ readSettings(settings, modifiers(), "modifier", static_cast<int>(DefaultMod), NumModifiers);
+ readSettings(settings, switchCorners(), "switchCorner", false, NumSwitchCorners);
+ readSettings(settings, fixes(), "fix", false, NumFixes);
+}
+
+void Screen::saveSettings(QSettings& settings) const
+{
+ settings.setValue("name", name());
+
+ if (name().isEmpty())
+ return;
+
+ settings.setValue("switchCornerSize", switchCornerSize());
+
+ writeSettings(settings, aliases(), "alias");
+ writeSettings(settings, modifiers(), "modifier");
+ writeSettings(settings, switchCorners(), "switchCorner");
+ writeSettings(settings, fixes(), "fix");
+}
+
+QTextStream& Screen::writeScreensSection(QTextStream& outStream) const
+{
+ outStream << "\t" << name() << ":" << endl;
+
+ for (int i = 0; i < modifiers().size(); i++)
+ if (modifier(i) != i)
+ outStream << "\t\t" << modifierName(i) << " = " << modifierName(modifier(i)) << endl;
+
+ for (int i = 0; i < fixes().size(); i++)
+ outStream << "\t\t" << fixName(i) << " = " << (fixes()[i] ? "true" : "false") << endl;
+
+ outStream << "\t\t" << "switchCorners = none ";
+ for (int i = 0; i < switchCorners().size(); i++)
+ if (switchCorners()[i])
+ outStream << "+" << switchCornerName(i) << " ";
+ outStream << endl;
+
+ outStream << "\t\t" << "switchCornerSize = " << switchCornerSize() << endl;
+
+ return outStream;
+}
+
+QTextStream& Screen::writeAliasesSection(QTextStream& outStream) const
+{
+ if (!aliases().isEmpty())
+ {
+ outStream << "\t" << name() << ":" << endl;
+
+ foreach (const QString& alias, aliases())
+ outStream << "\t\t" << alias << endl;
+ }
+
+ return outStream;
+}
+
+QDataStream& operator<<(QDataStream& outStream, const Screen& screen)
+{
+ return outStream
+ << screen.name()
+ << screen.switchCornerSize()
+ << screen.aliases()
+ << screen.modifiers()
+ << screen.switchCorners()
+ << screen.fixes()
+ ;
+}
+
+QDataStream& operator>>(QDataStream& inStream, Screen& screen)
+{
+ return inStream
+ >> screen.m_Name
+ >> screen.m_SwitchCornerSize
+ >> screen.m_Aliases
+ >> screen.m_Modifiers
+ >> screen.m_SwitchCorners
+ >> screen.m_Fixes
+ ;
+}
diff --git a/src/gui/src/Screen.h b/src/gui/src/Screen.h
new file mode 100644
index 0000000..6d9c668
--- /dev/null
+++ b/src/gui/src/Screen.h
@@ -0,0 +1,105 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(SCREEN__H)
+
+#define SCREEN__H
+
+#include <QPixmap>
+#include <QString>
+#include <QList>
+#include <QStringList>
+
+#include "BaseConfig.h"
+
+class QSettings;
+class QTextStream;
+
+class ScreenSettingsDialog;
+
+class Screen : public BaseConfig
+{
+ friend QDataStream& operator<<(QDataStream& outStream, const Screen& screen);
+ friend QDataStream& operator>>(QDataStream& inStream, Screen& screen);
+ friend class ScreenSettingsDialog;
+ friend class ScreenSetupModel;
+ friend class ScreenSetupView;
+
+ public:
+ Screen();
+ Screen(const QString& name);
+
+ public:
+ const QPixmap* pixmap() const { return &m_Pixmap; }
+ const QString& name() const { return m_Name; }
+ const QStringList& aliases() const { return m_Aliases; }
+
+ bool isNull() const { return m_Name.isEmpty(); }
+ int modifier(int m) const { return m_Modifiers[m] == DefaultMod ? m : m_Modifiers[m]; }
+ const QList<int>& modifiers() const { return m_Modifiers; }
+ bool switchCorner(int c) const { return m_SwitchCorners[c]; }
+ const QList<bool>& switchCorners() const { return m_SwitchCorners; }
+ int switchCornerSize() const { return m_SwitchCornerSize; }
+ bool fix(Fix f) const { return m_Fixes[f]; }
+ const QList<bool>& fixes() const { return m_Fixes; }
+
+ void loadSettings(QSettings& settings);
+ void saveSettings(QSettings& settings) const;
+ QTextStream& writeScreensSection(QTextStream& outStream) const;
+ QTextStream& writeAliasesSection(QTextStream& outStream) const;
+
+ bool swapped() const { return m_Swapped; }
+ QString& name() { return m_Name; }
+ void setName(const QString& name) { m_Name = name; }
+
+ protected:
+ void init();
+ QPixmap* pixmap() { return &m_Pixmap; }
+
+ void setPixmap(const QPixmap& pixmap) { m_Pixmap = pixmap; }
+ QStringList& aliases() { return m_Aliases; }
+ void setModifier(int m, int n) { m_Modifiers[m] = n; }
+ QList<int>& modifiers() { return m_Modifiers; }
+ void addAlias(const QString& alias) { m_Aliases.append(alias); }
+ void setSwitchCorner(int c, bool on) { m_SwitchCorners[c] = on; }
+ QList<bool>& switchCorners() { return m_SwitchCorners; }
+ void setSwitchCornerSize(int val) { m_SwitchCornerSize = val; }
+ void setFix(int f, bool on) { m_Fixes[f] = on; }
+ QList<bool>& fixes() { return m_Fixes; }
+ void setSwapped(bool on) { m_Swapped = on; }
+
+ private:
+ QPixmap m_Pixmap;
+ QString m_Name;
+
+ QStringList m_Aliases;
+ QList<int> m_Modifiers;
+ QList<bool> m_SwitchCorners;
+ int m_SwitchCornerSize;
+ QList<bool> m_Fixes;
+
+ bool m_Swapped;
+};
+
+typedef QList<Screen> ScreenList;
+
+QDataStream& operator<<(QDataStream& outStream, const Screen& screen);
+QDataStream& operator>>(QDataStream& inStream, Screen& screen);
+
+#endif
+
diff --git a/src/gui/src/ScreenSettingsDialog.cpp b/src/gui/src/ScreenSettingsDialog.cpp
new file mode 100644
index 0000000..1e95a9c
--- /dev/null
+++ b/src/gui/src/ScreenSettingsDialog.cpp
@@ -0,0 +1,137 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScreenSettingsDialog.h"
+#include "Screen.h"
+
+#include <QtCore>
+#include <QtGui>
+#include <QMessageBox>
+
+ScreenSettingsDialog::ScreenSettingsDialog(QWidget* parent, Screen* pScreen) :
+ QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
+ Ui::ScreenSettingsDialogBase(),
+ m_pScreen(pScreen)
+{
+ setupUi(this);
+
+ QRegExp validScreenName("[a-z0-9\\._-]{,255}", Qt::CaseInsensitive);
+
+ m_pLineEditName->setText(m_pScreen->name());
+ m_pLineEditName->setValidator(new QRegExpValidator(validScreenName, m_pLineEditName));
+ m_pLineEditName->selectAll();
+
+ m_pLineEditAlias->setValidator(new QRegExpValidator(validScreenName, m_pLineEditName));
+
+ for (int i = 0; i < m_pScreen->aliases().count(); i++)
+ new QListWidgetItem(m_pScreen->aliases()[i], m_pListAliases);
+
+ m_pComboBoxShift->setCurrentIndex(m_pScreen->modifier(Screen::Shift));
+ m_pComboBoxCtrl->setCurrentIndex(m_pScreen->modifier(Screen::Ctrl));
+ m_pComboBoxAlt->setCurrentIndex(m_pScreen->modifier(Screen::Alt));
+ m_pComboBoxMeta->setCurrentIndex(m_pScreen->modifier(Screen::Meta));
+ m_pComboBoxSuper->setCurrentIndex(m_pScreen->modifier(Screen::Super));
+
+ m_pCheckBoxCornerTopLeft->setChecked(m_pScreen->switchCorner(Screen::TopLeft));
+ m_pCheckBoxCornerTopRight->setChecked(m_pScreen->switchCorner(Screen::TopRight));
+ m_pCheckBoxCornerBottomLeft->setChecked(m_pScreen->switchCorner(Screen::BottomLeft));
+ m_pCheckBoxCornerBottomRight->setChecked(m_pScreen->switchCorner(Screen::BottomRight));
+ m_pSpinBoxSwitchCornerSize->setValue(m_pScreen->switchCornerSize());
+
+ m_pCheckBoxCapsLock->setChecked(m_pScreen->fix(Screen::CapsLock));
+ m_pCheckBoxNumLock->setChecked(m_pScreen->fix(Screen::NumLock));
+ m_pCheckBoxScrollLock->setChecked(m_pScreen->fix(Screen::ScrollLock));
+ m_pCheckBoxXTest->setChecked(m_pScreen->fix(Screen::XTest));
+}
+
+void ScreenSettingsDialog::accept()
+{
+ if (m_pLineEditName->text().isEmpty())
+ {
+ QMessageBox::warning(
+ this, tr("Screen name is empty"),
+ tr("The screen name cannot be empty. "
+ "Please either fill in a name or cancel the dialog."));
+ return;
+ }
+
+ m_pScreen->init();
+
+ m_pScreen->setName(m_pLineEditName->text());
+
+ for (int i = 0; i < m_pListAliases->count(); i++)
+ {
+ QString alias(m_pListAliases->item(i)->text());
+ if (alias == m_pLineEditName->text())
+ {
+ QMessageBox::warning(
+ this, tr("Screen name matches alias"),
+ tr("The screen name cannot be the same as an alias. "
+ "Please either remove the alias or change the screen name."));
+ return;
+ }
+ m_pScreen->addAlias(alias);
+ }
+
+ m_pScreen->setModifier(Screen::Shift, m_pComboBoxShift->currentIndex());
+ m_pScreen->setModifier(Screen::Ctrl, m_pComboBoxCtrl->currentIndex());
+ m_pScreen->setModifier(Screen::Alt, m_pComboBoxAlt->currentIndex());
+ m_pScreen->setModifier(Screen::Meta, m_pComboBoxMeta->currentIndex());
+ m_pScreen->setModifier(Screen::Super, m_pComboBoxSuper->currentIndex());
+
+ m_pScreen->setSwitchCorner(Screen::TopLeft, m_pCheckBoxCornerTopLeft->isChecked());
+ m_pScreen->setSwitchCorner(Screen::TopRight, m_pCheckBoxCornerTopRight->isChecked());
+ m_pScreen->setSwitchCorner(Screen::BottomLeft, m_pCheckBoxCornerBottomLeft->isChecked());
+ m_pScreen->setSwitchCorner(Screen::BottomRight, m_pCheckBoxCornerBottomRight->isChecked());
+ m_pScreen->setSwitchCornerSize(m_pSpinBoxSwitchCornerSize->value());
+
+ m_pScreen->setFix(Screen::CapsLock, m_pCheckBoxCapsLock->isChecked());
+ m_pScreen->setFix(Screen::NumLock, m_pCheckBoxNumLock->isChecked());
+ m_pScreen->setFix(Screen::ScrollLock, m_pCheckBoxScrollLock->isChecked());
+ m_pScreen->setFix(Screen::XTest, m_pCheckBoxXTest->isChecked());
+
+ QDialog::accept();
+}
+
+void ScreenSettingsDialog::on_m_pButtonAddAlias_clicked()
+{
+ if (!m_pLineEditAlias->text().isEmpty() && m_pListAliases->findItems(m_pLineEditAlias->text(), Qt::MatchFixedString).isEmpty())
+ {
+ new QListWidgetItem(m_pLineEditAlias->text(), m_pListAliases);
+ m_pLineEditAlias->clear();
+ }
+}
+
+void ScreenSettingsDialog::on_m_pLineEditAlias_textChanged(const QString& text)
+{
+ m_pButtonAddAlias->setEnabled(!text.isEmpty());
+}
+
+void ScreenSettingsDialog::on_m_pButtonRemoveAlias_clicked()
+{
+ QList<QListWidgetItem*> items = m_pListAliases->selectedItems();
+
+ for (int i = 0; i < items.count(); i++)
+ delete items[i];
+}
+
+void ScreenSettingsDialog::on_m_pListAliases_itemSelectionChanged()
+{
+ m_pButtonRemoveAlias->setEnabled(!m_pListAliases->selectedItems().isEmpty());
+}
+
diff --git a/src/gui/src/ScreenSettingsDialog.h b/src/gui/src/ScreenSettingsDialog.h
new file mode 100644
index 0000000..1c525d2
--- /dev/null
+++ b/src/gui/src/ScreenSettingsDialog.h
@@ -0,0 +1,53 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(SCREENSETTINGSDIALOG__H)
+
+#define SCREENSETTINGSDIALOG__H
+
+#include <QDialog>
+
+#include "ui_ScreenSettingsDialogBase.h"
+
+class QWidget;
+class QString;
+
+class Screen;
+
+class ScreenSettingsDialog : public QDialog, public Ui::ScreenSettingsDialogBase
+{
+ Q_OBJECT
+
+ public:
+ ScreenSettingsDialog(QWidget* parent, Screen* pScreen = NULL);
+
+ public slots:
+ void accept();
+
+ private slots:
+ void on_m_pButtonAddAlias_clicked();
+ void on_m_pButtonRemoveAlias_clicked();
+ void on_m_pLineEditAlias_textChanged(const QString& text);
+ void on_m_pListAliases_itemSelectionChanged();
+
+ private:
+ Screen* m_pScreen;
+};
+
+#endif
+
diff --git a/src/gui/src/ScreenSettingsDialogBase.ui b/src/gui/src/ScreenSettingsDialogBase.ui
new file mode 100644
index 0000000..0d6d768
--- /dev/null
+++ b/src/gui/src/ScreenSettingsDialogBase.ui
@@ -0,0 +1,543 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ScreenSettingsDialogBase</class>
+ <widget class="QDialog" name="ScreenSettingsDialogBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>434</width>
+ <height>437</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Screen Settings</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Screen &amp;name:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pLineEditName</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="m_pLineEditName"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QGroupBox" name="m_pGroupAliases">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="title">
+ <string>A&amp;liases</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QLineEdit" name="m_pLineEditAlias"/>
+ </item>
+ <item row="0" column="1">
+ <widget class="QPushButton" name="m_pButtonAddAlias">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Add</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" rowspan="2">
+ <widget class="QListWidget" name="m_pListAliases">
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="m_pButtonRemoveAlias">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>126</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="m_pGroupModifiers">
+ <property name="title">
+ <string>&amp;Modifier keys</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>&amp;Shift:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboBoxShift</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="m_pComboBoxShift">
+ <item>
+ <property name="text">
+ <string>Shift</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Ctrl</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Alt</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Meta</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Super</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>&amp;Ctrl:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboBoxCtrl</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QComboBox" name="m_pComboBoxCtrl">
+ <property name="currentIndex">
+ <number>1</number>
+ </property>
+ <item>
+ <property name="text">
+ <string>Shift</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Ctrl</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Alt</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Meta</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Super</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Al&amp;t:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboBoxAlt</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QComboBox" name="m_pComboBoxAlt">
+ <property name="currentIndex">
+ <number>2</number>
+ </property>
+ <item>
+ <property name="text">
+ <string>Shift</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Ctrl</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Alt</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Meta</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Super</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>M&amp;eta:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboBoxMeta</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QComboBox" name="m_pComboBoxMeta">
+ <property name="currentIndex">
+ <number>3</number>
+ </property>
+ <item>
+ <property name="text">
+ <string>Shift</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Ctrl</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Alt</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Meta</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Super</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>S&amp;uper:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboBoxSuper</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QComboBox" name="m_pComboBoxSuper">
+ <property name="currentIndex">
+ <number>4</number>
+ </property>
+ <item>
+ <property name="text">
+ <string>Shift</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Ctrl</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Alt</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Meta</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Super</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>None</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QGroupBox" name="m_pGroupSwitchCorners">
+ <property name="title">
+ <string>&amp;Dead corners</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerTopLeft">
+ <property name="text">
+ <string>Top-left</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerTopRight">
+ <property name="text">
+ <string>Top-right</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerBottomLeft">
+ <property name="text">
+ <string>Bottom-left</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerBottomRight">
+ <property name="text">
+ <string>Bottom-right</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Corner Si&amp;ze:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pSpinBoxSwitchCornerSize</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="m_pSpinBoxSwitchCornerSize"/>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="m_pGroupFixes">
+ <property name="title">
+ <string>&amp;Fixes</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxCapsLock">
+ <property name="text">
+ <string>Fix CAPS LOCK key</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxNumLock">
+ <property name="text">
+ <string>Fix NUM LOCK key</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxScrollLock">
+ <property name="text">
+ <string>Fix SCROLL LOCK key</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxXTest">
+ <property name="text">
+ <string>Fix XTest for Xinerama</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="m_pButtonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>m_pButtonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ScreenSettingsDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>222</x>
+ <y>502</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pButtonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ScreenSettingsDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>290</x>
+ <y>508</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/ScreenSetupModel.cpp b/src/gui/src/ScreenSetupModel.cpp
new file mode 100644
index 0000000..fce1a8c
--- /dev/null
+++ b/src/gui/src/ScreenSetupModel.cpp
@@ -0,0 +1,143 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScreenSetupModel.h"
+#include "Screen.h"
+
+#include <QtCore>
+#include <QtGui>
+
+const QString ScreenSetupModel::m_MimeType = "application/x-qbarrier-screen";
+
+ScreenSetupModel::ScreenSetupModel(ScreenList& screens, int numColumns, int numRows) :
+ QAbstractTableModel(NULL),
+ m_Screens(screens),
+ m_NumColumns(numColumns),
+ m_NumRows(numRows)
+{
+ if (m_NumColumns * m_NumRows > screens.size())
+ qFatal("Not enough elements (%u) in screens QList for %d columns and %d rows", screens.size(), m_NumColumns, m_NumRows);
+}
+
+QVariant ScreenSetupModel::data(const QModelIndex& index, int role) const
+{
+ if (index.isValid() && index.row() < m_NumRows && index.column() < m_NumColumns)
+ {
+ switch(role)
+ {
+ case Qt::DecorationRole:
+ if (screen(index).isNull())
+ break;
+ return QIcon(*screen(index).pixmap());
+
+ case Qt::ToolTipRole:
+ if (screen(index).isNull())
+ break;
+ return QString(tr(
+ "<center>Screen: <b>%1</b></center>"
+ "<br>Double click to edit settings"
+ "<br>Drag screen to the trashcan to remove it")).arg(screen(index).name());
+
+ case Qt::DisplayRole:
+ if (screen(index).isNull())
+ break;
+ return screen(index).name();
+ }
+ }
+
+ return QVariant();
+}
+
+Qt::ItemFlags ScreenSetupModel::flags(const QModelIndex& index) const
+{
+ if (!index.isValid() || index.row() >= m_NumRows || index.column() >= m_NumColumns)
+ return 0;
+
+ if (!screen(index).isNull())
+ return Qt::ItemIsEnabled | Qt::ItemIsDragEnabled | Qt::ItemIsSelectable | Qt::ItemIsDropEnabled;
+
+ return Qt::ItemIsDropEnabled;
+}
+
+Qt::DropActions ScreenSetupModel::supportedDropActions() const
+{
+ return Qt::MoveAction | Qt::CopyAction;
+}
+
+QStringList ScreenSetupModel::mimeTypes() const
+{
+ return QStringList() << m_MimeType;
+}
+
+QMimeData* ScreenSetupModel::mimeData(const QModelIndexList& indexes) const
+{
+ QMimeData* pMimeData = new QMimeData();
+ QByteArray encodedData;
+
+ QDataStream stream(&encodedData, QIODevice::WriteOnly);
+
+ foreach (const QModelIndex& index, indexes)
+ if (index.isValid())
+ stream << index.column() << index.row() << screen(index);
+
+ pMimeData->setData(m_MimeType, encodedData);
+
+ return pMimeData;
+}
+
+bool ScreenSetupModel::dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent)
+{
+ if (action == Qt::IgnoreAction)
+ return true;
+
+ if (!data->hasFormat(m_MimeType))
+ return false;
+
+ if (!parent.isValid() || row != -1 || column != -1)
+ return false;
+
+ QByteArray encodedData = data->data(m_MimeType);
+ QDataStream stream(&encodedData, QIODevice::ReadOnly);
+
+ int sourceColumn = -1;
+ int sourceRow = -1;
+
+ stream >> sourceColumn;
+ stream >> sourceRow;
+
+ // don't drop screen onto itself
+ if (sourceColumn == parent.column() && sourceRow == parent.row())
+ return false;
+
+ Screen droppedScreen;
+ stream >> droppedScreen;
+
+ Screen oldScreen = screen(parent.column(), parent.row());
+ if (!oldScreen.isNull() && sourceColumn != -1 && sourceRow != -1)
+ {
+ // mark the screen so it isn't deleted after the dragndrop succeeded
+ // see ScreenSetupView::startDrag()
+ oldScreen.setSwapped(true);
+ screen(sourceColumn, sourceRow) = oldScreen;
+ }
+
+ screen(parent.column(), parent.row()) = droppedScreen;
+
+ return true;
+}
+
diff --git a/src/gui/src/ScreenSetupModel.h b/src/gui/src/ScreenSetupModel.h
new file mode 100644
index 0000000..ba46af3
--- /dev/null
+++ b/src/gui/src/ScreenSetupModel.h
@@ -0,0 +1,71 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(SCREENSETUPMODEL__H)
+
+#define SCREENSETUPMODEL__H
+
+#include <QAbstractTableModel>
+#include <QList>
+#include <QString>
+#include <QStringList>
+
+#include "Screen.h"
+
+class ScreenSetupView;
+class ServerConfigDialog;
+
+class ScreenSetupModel : public QAbstractTableModel
+{
+ Q_OBJECT
+
+ friend class ScreenSetupView;
+ friend class ServerConfigDialog;
+
+ public:
+ ScreenSetupModel(ScreenList& screens, int numColumns, int numRows);
+
+ public:
+ static const QString& mimeType() { return m_MimeType; }
+ QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
+ int rowCount() const { return m_NumRows; }
+ int columnCount() const { return m_NumColumns; }
+ int rowCount(const QModelIndex&) const { return rowCount(); }
+ int columnCount(const QModelIndex&) const { return columnCount(); }
+ Qt::DropActions supportedDropActions() const;
+ Qt::ItemFlags flags(const QModelIndex& index) const;
+ QStringList mimeTypes() const;
+ QMimeData* mimeData(const QModelIndexList& indexes) const;
+
+ protected:
+ bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
+ const Screen& screen(const QModelIndex& index) const { return screen(index.column(), index.row()); }
+ Screen& screen(const QModelIndex& index) { return screen(index.column(), index.row()); }
+ const Screen& screen(int column, int row) const { return m_Screens[row * m_NumColumns + column]; }
+ Screen& screen(int column, int row) { return m_Screens[row * m_NumColumns + column]; }
+
+ private:
+ ScreenList& m_Screens;
+ const int m_NumColumns;
+ const int m_NumRows;
+
+ static const QString m_MimeType;
+};
+
+#endif
+
diff --git a/src/gui/src/ScreenSetupView.cpp b/src/gui/src/ScreenSetupView.cpp
new file mode 100644
index 0000000..e42ae17
--- /dev/null
+++ b/src/gui/src/ScreenSetupView.cpp
@@ -0,0 +1,161 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScreenSetupView.h"
+#include "ScreenSetupModel.h"
+#include "ScreenSettingsDialog.h"
+
+#include <QtCore>
+#include <QtGui>
+
+ScreenSetupView::ScreenSetupView(QWidget* parent) :
+ QTableView(parent)
+{
+ setDropIndicatorShown(true);
+ setDragDropMode(DragDrop);
+ setSelectionMode(SingleSelection);
+
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ setIconSize(QSize(64, 64));
+ horizontalHeader()->hide();
+ verticalHeader()->hide();
+}
+
+void ScreenSetupView::setModel(QAbstractItemModel* model)
+{
+ QTableView::setModel(model);
+ setTableSize();
+}
+
+ScreenSetupModel* ScreenSetupView::model() const
+{
+ return qobject_cast<ScreenSetupModel*>(QTableView::model());
+}
+
+void ScreenSetupView::setTableSize()
+{
+ for (int i = 0; i < model()->columnCount(); i++)
+ setColumnWidth(i, width() / model()->columnCount());
+
+ for (int i = 0; i < model()->rowCount(); i++)
+ setRowHeight(i, height() / model()->rowCount());
+}
+
+void ScreenSetupView::resizeEvent(QResizeEvent* event)
+{
+ setTableSize();
+ event->ignore();
+}
+
+void ScreenSetupView::mouseDoubleClickEvent(QMouseEvent* event)
+{
+ if (event->buttons() & Qt::LeftButton)
+ {
+ int col = columnAt(event->pos().x());
+ int row = rowAt(event->pos().y());
+
+ if (!model()->screen(col, row).isNull())
+ {
+ ScreenSettingsDialog dlg(this, &model()->screen(col, row));
+ dlg.exec();
+ }
+ }
+ else
+ event->ignore();
+}
+
+void ScreenSetupView::dragEnterEvent(QDragEnterEvent* event)
+{
+ // we accept anything that enters us by a drag as long as the
+ // mime type is okay. anything else is dealt with in dragMoveEvent()
+ if (event->mimeData()->hasFormat(ScreenSetupModel::mimeType()))
+ event->accept();
+ else
+ event->ignore();
+}
+
+void ScreenSetupView::dragMoveEvent(QDragMoveEvent* event)
+{
+ if (event->mimeData()->hasFormat(ScreenSetupModel::mimeType()))
+ {
+ // where does the event come from? myself or someone else?
+ if (event->source() == this)
+ {
+ // myself is ok, but then it must be a move action, never a copy
+ event->setDropAction(Qt::MoveAction);
+ event->accept();
+ }
+ else
+ {
+ int col = columnAt(event->pos().x());
+ int row = rowAt(event->pos().y());
+
+ // a drop from outside is not allowed if there's a screen already there.
+ if (!model()->screen(col, row).isNull())
+ event->ignore();
+ else
+ event->acceptProposedAction();
+ }
+ }
+ else
+ event->ignore();
+}
+
+// this is reimplemented from QAbstractItemView::startDrag()
+void ScreenSetupView::startDrag(Qt::DropActions)
+{
+ QModelIndexList indexes = selectedIndexes();
+
+ if (indexes.count() != 1)
+ return;
+
+ QMimeData* pData = model()->mimeData(indexes);
+ if (pData == NULL)
+ return;
+
+ QPixmap pixmap = *model()->screen(indexes[0]).pixmap();
+ QDrag* pDrag = new QDrag(this);
+ pDrag->setPixmap(pixmap);
+ pDrag->setMimeData(pData);
+ pDrag->setHotSpot(QPoint(pixmap.width() / 2, pixmap.height() / 2));
+
+ if (pDrag->exec(Qt::MoveAction, Qt::MoveAction) == Qt::MoveAction)
+ {
+ selectionModel()->clear();
+
+ // make sure to only delete the drag source if screens weren't swapped
+ // see ScreenSetupModel::dropMimeData
+ if (!model()->screen(indexes[0]).swapped())
+ model()->screen(indexes[0]) = Screen();
+ else
+ model()->screen(indexes[0]).setSwapped(false);
+ }
+}
+
+QStyleOptionViewItem ScreenSetupView::viewOptions() const
+{
+ QStyleOptionViewItem option = QTableView::viewOptions();
+ option.showDecorationSelected = true;
+ option.decorationPosition = QStyleOptionViewItem::Top;
+ option.displayAlignment = Qt::AlignCenter;
+ option.textElideMode = Qt::ElideMiddle;
+ return option;
+}
+
diff --git a/src/gui/src/ScreenSetupView.h b/src/gui/src/ScreenSetupView.h
new file mode 100644
index 0000000..a660511
--- /dev/null
+++ b/src/gui/src/ScreenSetupView.h
@@ -0,0 +1,57 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(SCREENSETUPVIEW__H)
+
+#define SCREENSETUPVIEW__H
+
+#include <QTableView>
+#include <QFlags>
+
+#include "Screen.h"
+
+class QWidget;
+class QMouseEvent;
+class QResizeEvent;
+class QDragEnterEvent;
+class ScreenSetupModel;
+
+class ScreenSetupView : public QTableView
+{
+ Q_OBJECT
+
+ public:
+ ScreenSetupView(QWidget* parent);
+
+ public:
+ void setModel(QAbstractItemModel* model) override;
+ ScreenSetupModel* model() const;
+
+ protected:
+ void mouseDoubleClickEvent(QMouseEvent*) override;
+ void setTableSize();
+ void resizeEvent(QResizeEvent*) override;
+ void dragEnterEvent(QDragEnterEvent* event) override;
+ void dragMoveEvent(QDragMoveEvent* event) override;
+ void startDrag(Qt::DropActions supportedActions) override;
+ QStyleOptionViewItem viewOptions() const override;
+ void scrollTo(const QModelIndex&, ScrollHint) override {}
+};
+
+#endif
+
diff --git a/src/gui/src/ServerConfig.cpp b/src/gui/src/ServerConfig.cpp
new file mode 100644
index 0000000..6c19c0e
--- /dev/null
+++ b/src/gui/src/ServerConfig.cpp
@@ -0,0 +1,403 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ServerConfig.h"
+#include "Hotkey.h"
+#include "MainWindow.h"
+#include "AddClientDialog.h"
+
+#include <QtCore>
+#include <QMessageBox>
+#include <QAbstractButton>
+#include <QPushButton>
+
+static const struct
+{
+ int x;
+ int y;
+ const char* name;
+} neighbourDirs[] =
+{
+ { 1, 0, "right" },
+ { -1, 0, "left" },
+ { 0, -1, "up" },
+ { 0, 1, "down" },
+
+};
+
+const int serverDefaultIndex = 7;
+
+ServerConfig::ServerConfig(QSettings* settings, int numColumns, int numRows ,
+ QString serverName, MainWindow* mainWindow) :
+ m_pSettings(settings),
+ m_Screens(),
+ m_NumColumns(numColumns),
+ m_NumRows(numRows),
+ m_ServerName(serverName),
+ m_IgnoreAutoConfigClient(false),
+ m_EnableDragAndDrop(false),
+ m_ClipboardSharing(true),
+ m_pMainWindow(mainWindow)
+{
+ Q_ASSERT(m_pSettings);
+
+ loadSettings();
+}
+
+ServerConfig::~ServerConfig()
+{
+ saveSettings();
+}
+
+bool ServerConfig::save(const QString& fileName) const
+{
+ QFile file(fileName);
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
+ return false;
+
+ save(file);
+ file.close();
+
+ return true;
+}
+
+void ServerConfig::save(QFile& file) const
+{
+ QTextStream outStream(&file);
+ outStream << *this;
+}
+
+void ServerConfig::init()
+{
+ switchCorners().clear();
+ screens().clear();
+
+ // m_NumSwitchCorners is used as a fixed size array. See Screen::init()
+ for (int i = 0; i < NumSwitchCorners; i++)
+ switchCorners() << false;
+
+ // There must always be screen objects for each cell in the screens QList. Unused screens
+ // are identified by having an empty name.
+ for (int i = 0; i < numColumns() * numRows(); i++)
+ addScreen(Screen());
+}
+
+void ServerConfig::saveSettings()
+{
+ settings().beginGroup("internalConfig");
+ settings().remove("");
+
+ settings().setValue("numColumns", numColumns());
+ settings().setValue("numRows", numRows());
+
+ settings().setValue("hasHeartbeat", hasHeartbeat());
+ settings().setValue("heartbeat", heartbeat());
+ settings().setValue("relativeMouseMoves", relativeMouseMoves());
+ settings().setValue("screenSaverSync", screenSaverSync());
+ settings().setValue("win32KeepForeground", win32KeepForeground());
+ settings().setValue("hasSwitchDelay", hasSwitchDelay());
+ settings().setValue("switchDelay", switchDelay());
+ settings().setValue("hasSwitchDoubleTap", hasSwitchDoubleTap());
+ settings().setValue("switchDoubleTap", switchDoubleTap());
+ settings().setValue("switchCornerSize", switchCornerSize());
+ settings().setValue("ignoreAutoConfigClient", ignoreAutoConfigClient());
+ settings().setValue("enableDragAndDrop", enableDragAndDrop());
+
+ writeSettings(settings(), switchCorners(), "switchCorner");
+
+ settings().beginWriteArray("screens");
+ for (int i = 0; i < screens().size(); i++)
+ {
+ settings().setArrayIndex(i);
+ screens()[i].saveSettings(settings());
+ }
+ settings().endArray();
+
+ settings().beginWriteArray("hotkeys");
+ for (int i = 0; i < hotkeys().size(); i++)
+ {
+ settings().setArrayIndex(i);
+ hotkeys()[i].saveSettings(settings());
+ }
+ settings().endArray();
+
+ settings().endGroup();
+}
+
+void ServerConfig::loadSettings()
+{
+ settings().beginGroup("internalConfig");
+
+ setNumColumns(settings().value("numColumns", 5).toInt());
+ setNumRows(settings().value("numRows", 3).toInt());
+
+ // we need to know the number of columns and rows before we can set up ourselves
+ init();
+
+ haveHeartbeat(settings().value("hasHeartbeat", false).toBool());
+ setHeartbeat(settings().value("heartbeat", 5000).toInt());
+ setRelativeMouseMoves(settings().value("relativeMouseMoves", false).toBool());
+ setScreenSaverSync(settings().value("screenSaverSync", true).toBool());
+ setWin32KeepForeground(settings().value("win32KeepForeground", false).toBool());
+ haveSwitchDelay(settings().value("hasSwitchDelay", false).toBool());
+ setSwitchDelay(settings().value("switchDelay", 250).toInt());
+ haveSwitchDoubleTap(settings().value("hasSwitchDoubleTap", false).toBool());
+ setSwitchDoubleTap(settings().value("switchDoubleTap", 250).toInt());
+ setSwitchCornerSize(settings().value("switchCornerSize").toInt());
+ setIgnoreAutoConfigClient(settings().value("ignoreAutoConfigClient").toBool());
+ setEnableDragAndDrop(settings().value("enableDragAndDrop", true).toBool());
+
+ readSettings(settings(), switchCorners(), "switchCorner", false, NumSwitchCorners);
+
+ int numScreens = settings().beginReadArray("screens");
+ Q_ASSERT(numScreens <= screens().size());
+ for (int i = 0; i < numScreens; i++)
+ {
+ settings().setArrayIndex(i);
+ screens()[i].loadSettings(settings());
+ }
+ settings().endArray();
+
+ int numHotkeys = settings().beginReadArray("hotkeys");
+ for (int i = 0; i < numHotkeys; i++)
+ {
+ settings().setArrayIndex(i);
+ Hotkey h;
+ h.loadSettings(settings());
+ hotkeys().append(h);
+ }
+ settings().endArray();
+
+ settings().endGroup();
+}
+
+int ServerConfig::adjacentScreenIndex(int idx, int deltaColumn, int deltaRow) const
+{
+ if (screens()[idx].isNull())
+ return -1;
+
+ // if we're at the left or right end of the table, don't find results going further left or right
+ if ((deltaColumn > 0 && (idx+1) % numColumns() == 0)
+ || (deltaColumn < 0 && idx % numColumns() == 0))
+ return -1;
+
+ int arrayPos = idx + deltaColumn + deltaRow * numColumns();
+
+ if (arrayPos >= screens().size() || arrayPos < 0)
+ return -1;
+
+ return arrayPos;
+}
+
+QTextStream& operator<<(QTextStream& outStream, const ServerConfig& config)
+{
+ outStream << "section: screens" << endl;
+
+ foreach (const Screen& s, config.screens())
+ if (!s.isNull())
+ s.writeScreensSection(outStream);
+
+ outStream << "end" << endl << endl;
+
+ outStream << "section: aliases" << endl;
+
+ foreach (const Screen& s, config.screens())
+ if (!s.isNull())
+ s.writeAliasesSection(outStream);
+
+ outStream << "end" << endl << endl;
+
+ outStream << "section: links" << endl;
+
+ for (int i = 0; i < config.screens().size(); i++)
+ if (!config.screens()[i].isNull())
+ {
+ outStream << "\t" << config.screens()[i].name() << ":" << endl;
+
+ for (unsigned int j = 0; j < sizeof(neighbourDirs) / sizeof(neighbourDirs[0]); j++)
+ {
+ int idx = config.adjacentScreenIndex(i, neighbourDirs[j].x, neighbourDirs[j].y);
+ if (idx != -1 && !config.screens()[idx].isNull())
+ outStream << "\t\t" << neighbourDirs[j].name << " = " << config.screens()[idx].name() << endl;
+ }
+ }
+
+ outStream << "end" << endl << endl;
+
+ outStream << "section: options" << endl;
+
+ if (config.hasHeartbeat())
+ outStream << "\t" << "heartbeat = " << config.heartbeat() << endl;
+
+ outStream << "\t" << "relativeMouseMoves = " << (config.relativeMouseMoves() ? "true" : "false") << endl;
+ outStream << "\t" << "screenSaverSync = " << (config.screenSaverSync() ? "true" : "false") << endl;
+ outStream << "\t" << "win32KeepForeground = " << (config.win32KeepForeground() ? "true" : "false") << endl;
+ outStream << "\t" << "clipboardSharing = " << (config.clipboardSharing() ? "true" : "false") << endl;
+
+ if (config.hasSwitchDelay())
+ outStream << "\t" << "switchDelay = " << config.switchDelay() << endl;
+
+ if (config.hasSwitchDoubleTap())
+ outStream << "\t" << "switchDoubleTap = " << config.switchDoubleTap() << endl;
+
+ outStream << "\t" << "switchCorners = none ";
+ for (int i = 0; i < config.switchCorners().size(); i++)
+ if (config.switchCorners()[i])
+ outStream << "+" << config.switchCornerName(i) << " ";
+ outStream << endl;
+
+ outStream << "\t" << "switchCornerSize = " << config.switchCornerSize() << endl;
+
+ foreach(const Hotkey& hotkey, config.hotkeys())
+ outStream << hotkey;
+
+ outStream << "end" << endl << endl;
+
+ return outStream;
+}
+
+int ServerConfig::numScreens() const
+{
+ int rval = 0;
+
+ foreach(const Screen& s, screens())
+ if (!s.isNull())
+ rval++;
+
+ return rval;
+}
+
+int ServerConfig::autoAddScreen(const QString name)
+{
+ int serverIndex = -1;
+ int targetIndex = -1;
+ if (!findScreenName(m_ServerName, serverIndex)) {
+ if (!fixNoServer(m_ServerName, serverIndex)) {
+ return kAutoAddScreenManualServer;
+ }
+ }
+ if (findScreenName(name, targetIndex)) {
+ // already exists.
+ return kAutoAddScreenIgnore;
+ }
+
+ int result = showAddClientDialog(name);
+
+ if (result == kAddClientIgnore) {
+ return kAutoAddScreenIgnore;
+ }
+
+ if (result == kAddClientOther) {
+ addToFirstEmptyGrid(name);
+ return kAutoAddScreenManualClient;
+ }
+
+ bool success = false;
+ int startIndex = serverIndex;
+ int offset = 1;
+ int dirIndex = 0;
+
+ if (result == kAddClientLeft) {
+ offset = -1;
+ dirIndex = 1;
+ }
+ else if (result == kAddClientUp) {
+ offset = -5;
+ dirIndex = 2;
+ }
+ else if (result == kAddClientDown) {
+ offset = 5;
+ dirIndex = 3;
+ }
+
+
+ int idx = adjacentScreenIndex(startIndex, neighbourDirs[dirIndex].x,
+ neighbourDirs[dirIndex].y);
+ while (idx != -1) {
+ if (screens()[idx].isNull()) {
+ m_Screens[idx].setName(name);
+ success = true;
+ break;
+ }
+
+ startIndex += offset;
+ idx = adjacentScreenIndex(startIndex, neighbourDirs[dirIndex].x,
+ neighbourDirs[dirIndex].y);
+ }
+
+ if (!success) {
+ addToFirstEmptyGrid(name);
+ return kAutoAddScreenManualClient;
+ }
+
+ saveSettings();
+ return kAutoAddScreenOk;
+}
+
+bool ServerConfig::findScreenName(const QString& name, int& index)
+{
+ bool found = false;
+ for (int i = 0; i < screens().size(); i++) {
+ if (!screens()[i].isNull() &&
+ screens()[i].name().compare(name) == 0) {
+ index = i;
+ found = true;
+ break;
+ }
+ }
+ return found;
+}
+
+bool ServerConfig::fixNoServer(const QString& name, int& index)
+{
+ bool fixed = false;
+ if (screens()[serverDefaultIndex].isNull()) {
+ m_Screens[serverDefaultIndex].setName(name);
+ index = serverDefaultIndex;
+ fixed = true;
+ }
+
+ return fixed;
+}
+
+int ServerConfig::showAddClientDialog(const QString& clientName)
+{
+ int result = kAddClientIgnore;
+
+ if (!m_pMainWindow->isActiveWindow()) {
+ m_pMainWindow->showNormal();
+ m_pMainWindow->activateWindow();
+ }
+
+ AddClientDialog addClientDialog(clientName, m_pMainWindow);
+ addClientDialog.exec();
+ result = addClientDialog.addResult();
+ m_IgnoreAutoConfigClient = addClientDialog.ignoreAutoConfigClient();
+
+ return result;
+}
+
+void::ServerConfig::addToFirstEmptyGrid(const QString &clientName)
+{
+ for (int i = 0; i < screens().size(); i++) {
+ if (screens()[i].isNull()) {
+ m_Screens[i].setName(clientName);
+ break;
+ }
+ }
+}
diff --git a/src/gui/src/ServerConfig.h b/src/gui/src/ServerConfig.h
new file mode 100644
index 0000000..65cbbac
--- /dev/null
+++ b/src/gui/src/ServerConfig.h
@@ -0,0 +1,141 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(SERVERCONFIG__H)
+
+#define SERVERCONFIG__H
+
+#include <QList>
+
+#include "Screen.h"
+#include "BaseConfig.h"
+#include "Hotkey.h"
+
+class QTextStream;
+class QSettings;
+class QString;
+class QFile;
+class ServerConfigDialog;
+class MainWindow;
+
+class ServerConfig : public BaseConfig
+{
+ friend class ServerConfigDialog;
+ friend QTextStream& operator<<(QTextStream& outStream, const ServerConfig& config);
+
+ public:
+ ServerConfig(QSettings* settings, int numColumns, int numRows,
+ QString serverName, MainWindow* mainWindow);
+ ~ServerConfig();
+
+ public:
+ const ScreenList& screens() const { return m_Screens; }
+ int numColumns() const { return m_NumColumns; }
+ int numRows() const { return m_NumRows; }
+ bool hasHeartbeat() const { return m_HasHeartbeat; }
+ int heartbeat() const { return m_Heartbeat; }
+ bool relativeMouseMoves() const { return m_RelativeMouseMoves; }
+ bool screenSaverSync() const { return m_ScreenSaverSync; }
+ bool win32KeepForeground() const { return m_Win32KeepForeground; }
+ bool hasSwitchDelay() const { return m_HasSwitchDelay; }
+ int switchDelay() const { return m_SwitchDelay; }
+ bool hasSwitchDoubleTap() const { return m_HasSwitchDoubleTap; }
+ int switchDoubleTap() const { return m_SwitchDoubleTap; }
+ bool switchCorner(int c) const { return m_SwitchCorners[c]; }
+ int switchCornerSize() const { return m_SwitchCornerSize; }
+ const QList<bool>& switchCorners() const { return m_SwitchCorners; }
+ const HotkeyList& hotkeys() const { return m_Hotkeys; }
+ bool ignoreAutoConfigClient() const { return m_IgnoreAutoConfigClient; }
+ bool enableDragAndDrop() const { return m_EnableDragAndDrop; }
+ bool clipboardSharing() const { return m_ClipboardSharing; }
+
+ void saveSettings();
+ void loadSettings();
+ bool save(const QString& fileName) const;
+ void save(QFile& file) const;
+ int numScreens() const;
+ int autoAddScreen(const QString name);
+
+ protected:
+ QSettings& settings() { return *m_pSettings; }
+ ScreenList& screens() { return m_Screens; }
+ void setScreens(const ScreenList& screens) { m_Screens = screens; }
+ void addScreen(const Screen& screen) { m_Screens.append(screen); }
+ void setNumColumns(int n) { m_NumColumns = n; }
+ void setNumRows(int n) { m_NumRows = n; }
+ void haveHeartbeat(bool on) { m_HasHeartbeat = on; }
+ void setHeartbeat(int val) { m_Heartbeat = val; }
+ void setRelativeMouseMoves(bool on) { m_RelativeMouseMoves = on; }
+ void setScreenSaverSync(bool on) { m_ScreenSaverSync = on; }
+ void setWin32KeepForeground(bool on) { m_Win32KeepForeground = on; }
+ void haveSwitchDelay(bool on) { m_HasSwitchDelay = on; }
+ void setSwitchDelay(int val) { m_SwitchDelay = val; }
+ void haveSwitchDoubleTap(bool on) { m_HasSwitchDoubleTap = on; }
+ void setSwitchDoubleTap(int val) { m_SwitchDoubleTap = val; }
+ void setSwitchCorner(int c, bool on) { m_SwitchCorners[c] = on; }
+ void setSwitchCornerSize(int val) { m_SwitchCornerSize = val; }
+ void setIgnoreAutoConfigClient(bool on) { m_IgnoreAutoConfigClient = on; }
+ void setEnableDragAndDrop(bool on) { m_EnableDragAndDrop = on; }
+ void setClipboardSharing(bool on) { m_ClipboardSharing = on; }
+ QList<bool>& switchCorners() { return m_SwitchCorners; }
+ HotkeyList& hotkeys() { return m_Hotkeys; }
+
+ void init();
+ int adjacentScreenIndex(int idx, int deltaColumn, int deltaRow) const;
+
+ private:
+ bool findScreenName(const QString& name, int& index);
+ bool fixNoServer(const QString& name, int& index);
+ int showAddClientDialog(const QString& clientName);
+ void addToFirstEmptyGrid(const QString& clientName);
+
+ private:
+ QSettings* m_pSettings;
+ ScreenList m_Screens;
+ int m_NumColumns;
+ int m_NumRows;
+ bool m_HasHeartbeat;
+ int m_Heartbeat;
+ bool m_RelativeMouseMoves;
+ bool m_ScreenSaverSync;
+ bool m_Win32KeepForeground;
+ bool m_HasSwitchDelay;
+ int m_SwitchDelay;
+ bool m_HasSwitchDoubleTap;
+ int m_SwitchDoubleTap;
+ int m_SwitchCornerSize;
+ QList<bool> m_SwitchCorners;
+ HotkeyList m_Hotkeys;
+ QString m_ServerName;
+ bool m_IgnoreAutoConfigClient;
+ bool m_EnableDragAndDrop;
+ bool m_ClipboardSharing;
+ MainWindow* m_pMainWindow;
+};
+
+QTextStream& operator<<(QTextStream& outStream, const ServerConfig& config);
+
+enum {
+ kAutoAddScreenOk,
+ kAutoAddScreenManualServer,
+ kAutoAddScreenManualClient,
+ kAutoAddScreenIgnore
+};
+
+#endif
+
diff --git a/src/gui/src/ServerConfigDialog.cpp b/src/gui/src/ServerConfigDialog.cpp
new file mode 100644
index 0000000..799cfc8
--- /dev/null
+++ b/src/gui/src/ServerConfigDialog.cpp
@@ -0,0 +1,219 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ServerConfigDialog.h"
+#include "ServerConfig.h"
+#include "HotkeyDialog.h"
+#include "ActionDialog.h"
+
+#include <QtCore>
+#include <QtGui>
+#include <QMessageBox>
+
+ServerConfigDialog::ServerConfigDialog(QWidget* parent, ServerConfig& config, const QString& defaultScreenName) :
+ QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
+ Ui::ServerConfigDialogBase(),
+ m_OrigServerConfig(config),
+ m_ServerConfig(config),
+ m_ScreenSetupModel(serverConfig().screens(), serverConfig().numColumns(), serverConfig().numRows()),
+ m_Message("")
+{
+ setupUi(this);
+
+ m_pCheckBoxHeartbeat->setChecked(serverConfig().hasHeartbeat());
+ m_pSpinBoxHeartbeat->setValue(serverConfig().heartbeat());
+
+ m_pCheckBoxRelativeMouseMoves->setChecked(serverConfig().relativeMouseMoves());
+ m_pCheckBoxScreenSaverSync->setChecked(serverConfig().screenSaverSync());
+ m_pCheckBoxWin32KeepForeground->setChecked(serverConfig().win32KeepForeground());
+
+ m_pCheckBoxSwitchDelay->setChecked(serverConfig().hasSwitchDelay());
+ m_pSpinBoxSwitchDelay->setValue(serverConfig().switchDelay());
+
+ m_pCheckBoxSwitchDoubleTap->setChecked(serverConfig().hasSwitchDoubleTap());
+ m_pSpinBoxSwitchDoubleTap->setValue(serverConfig().switchDoubleTap());
+
+ m_pCheckBoxCornerTopLeft->setChecked(serverConfig().switchCorner(BaseConfig::TopLeft));
+ m_pCheckBoxCornerTopRight->setChecked(serverConfig().switchCorner(BaseConfig::TopRight));
+ m_pCheckBoxCornerBottomLeft->setChecked(serverConfig().switchCorner(BaseConfig::BottomLeft));
+ m_pCheckBoxCornerBottomRight->setChecked(serverConfig().switchCorner(BaseConfig::BottomRight));
+ m_pSpinBoxSwitchCornerSize->setValue(serverConfig().switchCornerSize());
+
+ m_pCheckBoxIgnoreAutoConfigClient->setChecked(serverConfig().ignoreAutoConfigClient());
+
+ m_pCheckBoxEnableDragAndDrop->setChecked(serverConfig().enableDragAndDrop());
+
+ m_pCheckBoxEnableClipboard->setChecked(serverConfig().clipboardSharing());
+
+ foreach(const Hotkey& hotkey, serverConfig().hotkeys())
+ m_pListHotkeys->addItem(hotkey.text());
+
+ m_pScreenSetupView->setModel(&m_ScreenSetupModel);
+
+ if (serverConfig().numScreens() == 0)
+ model().screen(serverConfig().numColumns() / 2, serverConfig().numRows() / 2) = Screen(defaultScreenName);
+}
+
+void ServerConfigDialog::showEvent(QShowEvent* event)
+{
+ QDialog::show();
+
+ if (!m_Message.isEmpty())
+ {
+ // TODO: ideally this massage box should pop up after the dialog is shown
+ QMessageBox::information(this, tr("Configure server"), m_Message);
+ }
+}
+
+void ServerConfigDialog::accept()
+{
+ serverConfig().haveHeartbeat(m_pCheckBoxHeartbeat->isChecked());
+ serverConfig().setHeartbeat(m_pSpinBoxHeartbeat->value());
+
+ serverConfig().setRelativeMouseMoves(m_pCheckBoxRelativeMouseMoves->isChecked());
+ serverConfig().setScreenSaverSync(m_pCheckBoxScreenSaverSync->isChecked());
+ serverConfig().setWin32KeepForeground(m_pCheckBoxWin32KeepForeground->isChecked());
+
+ serverConfig().haveSwitchDelay(m_pCheckBoxSwitchDelay->isChecked());
+ serverConfig().setSwitchDelay(m_pSpinBoxSwitchDelay->value());
+
+ serverConfig().haveSwitchDoubleTap(m_pCheckBoxSwitchDoubleTap->isChecked());
+ serverConfig().setSwitchDoubleTap(m_pSpinBoxSwitchDoubleTap->value());
+
+ serverConfig().setSwitchCorner(BaseConfig::TopLeft, m_pCheckBoxCornerTopLeft->isChecked());
+ serverConfig().setSwitchCorner(BaseConfig::TopRight, m_pCheckBoxCornerTopRight->isChecked());
+ serverConfig().setSwitchCorner(BaseConfig::BottomLeft, m_pCheckBoxCornerBottomLeft->isChecked());
+ serverConfig().setSwitchCorner(BaseConfig::BottomRight, m_pCheckBoxCornerBottomRight->isChecked());
+ serverConfig().setSwitchCornerSize(m_pSpinBoxSwitchCornerSize->value());
+ serverConfig().setIgnoreAutoConfigClient(m_pCheckBoxIgnoreAutoConfigClient->isChecked());
+ serverConfig().setEnableDragAndDrop(m_pCheckBoxEnableDragAndDrop->isChecked());
+ serverConfig().setClipboardSharing(m_pCheckBoxEnableClipboard->isChecked());
+
+ // now that the dialog has been accepted, copy the new server config to the original one,
+ // which is a reference to the one in MainWindow.
+ setOrigServerConfig(serverConfig());
+
+ QDialog::accept();
+}
+
+void ServerConfigDialog::on_m_pButtonNewHotkey_clicked()
+{
+ Hotkey hotkey;
+ HotkeyDialog dlg(this, hotkey);
+ if (dlg.exec() == QDialog::Accepted)
+ {
+ serverConfig().hotkeys().append(hotkey);
+ m_pListHotkeys->addItem(hotkey.text());
+ }
+}
+
+void ServerConfigDialog::on_m_pButtonEditHotkey_clicked()
+{
+ int idx = m_pListHotkeys->currentRow();
+ Q_ASSERT(idx >= 0 && idx < serverConfig().hotkeys().size());
+ Hotkey& hotkey = serverConfig().hotkeys()[idx];
+ HotkeyDialog dlg(this, hotkey);
+ if (dlg.exec() == QDialog::Accepted)
+ m_pListHotkeys->currentItem()->setText(hotkey.text());
+}
+
+void ServerConfigDialog::on_m_pButtonRemoveHotkey_clicked()
+{
+ int idx = m_pListHotkeys->currentRow();
+ Q_ASSERT(idx >= 0 && idx < serverConfig().hotkeys().size());
+ serverConfig().hotkeys().removeAt(idx);
+ m_pListActions->clear();
+ delete m_pListHotkeys->item(idx);
+}
+
+void ServerConfigDialog::on_m_pListHotkeys_itemSelectionChanged()
+{
+ bool itemsSelected = !m_pListHotkeys->selectedItems().isEmpty();
+ m_pButtonEditHotkey->setEnabled(itemsSelected);
+ m_pButtonRemoveHotkey->setEnabled(itemsSelected);
+ m_pButtonNewAction->setEnabled(itemsSelected);
+
+ if (itemsSelected && serverConfig().hotkeys().size() > 0)
+ {
+ m_pListActions->clear();
+
+ int idx = m_pListHotkeys->row(m_pListHotkeys->selectedItems()[0]);
+
+ // There's a bug somewhere around here: We get idx == 1 right after we deleted the next to last item, so idx can
+ // only possibly be 0. GDB shows we got called indirectly from the delete line in
+ // on_m_pButtonRemoveHotkey_clicked() above, but the delete is of course necessary and seems correct.
+ // The while() is a generalized workaround for all that and shouldn't be required.
+ while (idx >= 0 && idx >= serverConfig().hotkeys().size())
+ idx--;
+
+ Q_ASSERT(idx >= 0 && idx < serverConfig().hotkeys().size());
+
+ const Hotkey& hotkey = serverConfig().hotkeys()[idx];
+ foreach(const Action& action, hotkey.actions())
+ m_pListActions->addItem(action.text());
+ }
+}
+
+void ServerConfigDialog::on_m_pButtonNewAction_clicked()
+{
+ int idx = m_pListHotkeys->currentRow();
+ Q_ASSERT(idx >= 0 && idx < serverConfig().hotkeys().size());
+ Hotkey& hotkey = serverConfig().hotkeys()[idx];
+
+ Action action;
+ ActionDialog dlg(this, serverConfig(), hotkey, action);
+ if (dlg.exec() == QDialog::Accepted)
+ {
+ hotkey.actions().append(action);
+ m_pListActions->addItem(action.text());
+ }
+}
+
+void ServerConfigDialog::on_m_pButtonEditAction_clicked()
+{
+ int idxHotkey = m_pListHotkeys->currentRow();
+ Q_ASSERT(idxHotkey >= 0 && idxHotkey < serverConfig().hotkeys().size());
+ Hotkey& hotkey = serverConfig().hotkeys()[idxHotkey];
+
+ int idxAction = m_pListActions->currentRow();
+ Q_ASSERT(idxAction >= 0 && idxAction < hotkey.actions().size());
+ Action& action = hotkey.actions()[idxAction];
+
+ ActionDialog dlg(this, serverConfig(), hotkey, action);
+ if (dlg.exec() == QDialog::Accepted)
+ m_pListActions->currentItem()->setText(action.text());
+}
+
+void ServerConfigDialog::on_m_pButtonRemoveAction_clicked()
+{
+ int idxHotkey = m_pListHotkeys->currentRow();
+ Q_ASSERT(idxHotkey >= 0 && idxHotkey < serverConfig().hotkeys().size());
+ Hotkey& hotkey = serverConfig().hotkeys()[idxHotkey];
+
+ int idxAction = m_pListActions->currentRow();
+ Q_ASSERT(idxAction >= 0 && idxAction < hotkey.actions().size());
+
+ hotkey.actions().removeAt(idxAction);
+ delete m_pListActions->currentItem();
+}
+
+void ServerConfigDialog::on_m_pListActions_itemSelectionChanged()
+{
+ m_pButtonEditAction->setEnabled(!m_pListActions->selectedItems().isEmpty());
+ m_pButtonRemoveAction->setEnabled(!m_pListActions->selectedItems().isEmpty());
+}
diff --git a/src/gui/src/ServerConfigDialog.h b/src/gui/src/ServerConfigDialog.h
new file mode 100644
index 0000000..1ef17d1
--- /dev/null
+++ b/src/gui/src/ServerConfigDialog.h
@@ -0,0 +1,66 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(SERVERCONFIGDIALOG__H)
+
+#define SERVERCONFIGDIALOG__H
+
+#include "ScreenSetupModel.h"
+#include "ServerConfig.h"
+
+#include "ui_ServerConfigDialogBase.h"
+
+#include <QDialog>
+
+class ServerConfigDialog : public QDialog, public Ui::ServerConfigDialogBase
+{
+ Q_OBJECT
+
+ public:
+ ServerConfigDialog(QWidget* parent, ServerConfig& config, const QString& defaultScreenName);
+
+ public slots:
+ void accept();
+ void showEvent(QShowEvent* event);
+ void message(const QString& message) { m_Message = message; }
+
+ protected slots:
+ void on_m_pButtonNewHotkey_clicked();
+ void on_m_pListHotkeys_itemSelectionChanged();
+ void on_m_pButtonEditHotkey_clicked();
+ void on_m_pButtonRemoveHotkey_clicked();
+
+ void on_m_pButtonNewAction_clicked();
+ void on_m_pListActions_itemSelectionChanged();
+ void on_m_pButtonEditAction_clicked();
+ void on_m_pButtonRemoveAction_clicked();
+
+ protected:
+ ServerConfig& serverConfig() { return m_ServerConfig; }
+ void setOrigServerConfig(const ServerConfig& s) { m_OrigServerConfig = s; }
+ ScreenSetupModel& model() { return m_ScreenSetupModel; }
+
+ private:
+ ServerConfig& m_OrigServerConfig;
+ ServerConfig m_ServerConfig;
+ ScreenSetupModel m_ScreenSetupModel;
+ QString m_Message;
+};
+
+#endif
+
diff --git a/src/gui/src/ServerConfigDialogBase.ui b/src/gui/src/ServerConfigDialogBase.ui
new file mode 100644
index 0000000..c360420
--- /dev/null
+++ b/src/gui/src/ServerConfigDialogBase.ui
@@ -0,0 +1,781 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ServerConfigDialogBase</class>
+ <widget class="QDialog" name="ServerConfigDialogBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>795</width>
+ <height>534</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Server Configuration</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QTabWidget" name="m_pTabWidget">
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="m_pTabScreens">
+ <attribute name="title">
+ <string>Screens and links</string>
+ </attribute>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="TrashScreenWidget" name="m_pTrashScreenWidget">
+ <property name="acceptDrops">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip">
+ <string>Drag a screen from the grid to the trashcan to remove it.</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="Barrier.qrc">:/res/icons/64x64/user-trash.png</pixmap>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Configure the layout of your barrier server configuration.</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="NewScreenWidget" name="m_pLabelNewScreenWidget">
+ <property name="toolTip">
+ <string>Drag this button to the grid to add a new screen.</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="Barrier.qrc">:/res/icons/64x64/video-display.png</pixmap>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="ScreenSetupView" name="m_pScreenSetupView">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>273</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>273</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>true</bool>
+ </property>
+ <property name="autoFillBackground">
+ <bool>false</bool>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Drag new screens to the grid or move existing ones around.
+Drag a screen to the trashcan to delete it.
+Double click on a screen to edit its settings.</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="m_pTabHotkeys">
+ <attribute name="title">
+ <string>Hotkeys</string>
+ </attribute>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>&amp;Hotkeys</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0" rowspan="4">
+ <widget class="QListWidget" name="m_pListHotkeys"/>
+ </item>
+ <item row="0" column="1">
+ <widget class="QPushButton" name="m_pButtonNewHotkey">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>&amp;New</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="m_pButtonEditHotkey">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Edit</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QPushButton" name="m_pButtonRemoveHotkey">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Remove</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>75</width>
+ <height>161</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>A&amp;ctions</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0" rowspan="4">
+ <widget class="QListWidget" name="m_pListActions"/>
+ </item>
+ <item row="0" column="1">
+ <widget class="QPushButton" name="m_pButtonNewAction">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Ne&amp;w</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="m_pButtonEditAction">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>E&amp;dit</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QPushButton" name="m_pButtonRemoveAction">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Re&amp;move</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="m_pTabAdvanced">
+ <attribute name="title">
+ <string>Advanced server settings</string>
+ </attribute>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="m_pGroupSwitch">
+ <property name="title">
+ <string>&amp;Switch</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QCheckBox" name="m_pCheckBoxSwitchDelay">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Switch &amp;after waiting</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="m_pSpinBoxSwitchDelay">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>10000</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>250</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pLabel_14">
+ <property name="text">
+ <string>ms</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QCheckBox" name="m_pCheckBoxSwitchDoubleTap">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Switch on double &amp;tap within</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="m_pSpinBoxSwitchDoubleTap">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>10000</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>250</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pLabel_15">
+ <property name="text">
+ <string>ms</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QGroupBox" name="m_pGroupOptions">
+ <property name="title">
+ <string>&amp;Options</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxWin32KeepForeground">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Don't take &amp;foreground window on Windows servers</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxRelativeMouseMoves">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Use &amp;relative mouse moves</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxScreenSaverSync">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>S&amp;ynchronize screen savers</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QCheckBox" name="m_pCheckBoxHeartbeat">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Check clients every</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="m_pSpinBoxHeartbeat">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minimum">
+ <number>1000</number>
+ </property>
+ <property name="maximum">
+ <number>30000</number>
+ </property>
+ <property name="singleStep">
+ <number>1000</number>
+ </property>
+ <property name="value">
+ <number>5000</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pLabel_16">
+ <property name="text">
+ <string>ms</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="7" column="0">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="5" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxEnableDragAndDrop">
+ <property name="text">
+ <string>Enable drag and drop file transfers</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxIgnoreAutoConfigClient">
+ <property name="text">
+ <string>Ignore auto config clients</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxEnableClipboard">
+ <property name="text">
+ <string>Enable clipboard sharing</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QGroupBox" name="m_pGroupSwitchCorners">
+ <property name="title">
+ <string>&amp;Dead corners</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0" colspan="2">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerTopLeft">
+ <property name="text">
+ <string>To&amp;p-left</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" colspan="2">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerTopRight">
+ <property name="text">
+ <string>Top-rig&amp;ht</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerBottomLeft">
+ <property name="text">
+ <string>&amp;Bottom-left</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="2">
+ <widget class="QCheckBox" name="m_pCheckBoxCornerBottomRight">
+ <property name="text">
+ <string>Bottom-ri&amp;ght</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="2" column="1" colspan="2">
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Cor&amp;ner Size:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pSpinBoxSwitchCornerSize</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="m_pSpinBoxSwitchCornerSize"/>
+ </item>
+ </layout>
+ </item>
+ <item row="2" column="3">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="m_pButtonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>ScreenSetupView</class>
+ <extends>QTableView</extends>
+ <header>ScreenSetupView.h</header>
+ <container>1</container>
+ </customwidget>
+ <customwidget>
+ <class>NewScreenWidget</class>
+ <extends>QLabel</extends>
+ <header>NewScreenWidget.h</header>
+ </customwidget>
+ <customwidget>
+ <class>TrashScreenWidget</class>
+ <extends>QLabel</extends>
+ <header>TrashScreenWidget.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources>
+ <include location="Barrier.qrc"/>
+ </resources>
+ <connections>
+ <connection>
+ <sender>m_pButtonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ServerConfigDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>572</x>
+ <y>424</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>377</x>
+ <y>-8</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pButtonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ServerConfigDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>641</x>
+ <y>424</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>595</x>
+ <y>1</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pCheckBoxSwitchDelay</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pSpinBoxSwitchDelay</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>110</x>
+ <y>63</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>110</x>
+ <y>63</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pCheckBoxSwitchDoubleTap</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pSpinBoxSwitchDoubleTap</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>110</x>
+ <y>63</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>110</x>
+ <y>63</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pCheckBoxHeartbeat</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>m_pSpinBoxHeartbeat</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>110</x>
+ <y>63</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>110</x>
+ <y>63</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pListHotkeys</sender>
+ <signal>itemDoubleClicked(QListWidgetItem*)</signal>
+ <receiver>m_pButtonEditHotkey</receiver>
+ <slot>click()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>197</x>
+ <y>115</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>304</x>
+ <y>115</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>m_pListActions</sender>
+ <signal>itemDoubleClicked(QListWidgetItem*)</signal>
+ <receiver>m_pButtonEditAction</receiver>
+ <slot>click()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>505</x>
+ <y>120</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>677</x>
+ <y>118</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/SettingsDialog.cpp b/src/gui/src/SettingsDialog.cpp
new file mode 100644
index 0000000..dc07313
--- /dev/null
+++ b/src/gui/src/SettingsDialog.cpp
@@ -0,0 +1,140 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "SettingsDialog.h"
+
+#include "CoreInterface.h"
+#include "BarrierLocale.h"
+#include "QBarrierApplication.h"
+#include "QUtility.h"
+#include "AppConfig.h"
+#include "SslCertificate.h"
+#include "MainWindow.h"
+
+#include <QtCore>
+#include <QtGui>
+#include <QMessageBox>
+#include <QFileDialog>
+#include <QDir>
+
+static const char networkSecurity[] = "ns";
+
+SettingsDialog::SettingsDialog(QWidget* parent, AppConfig& config) :
+ QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
+ Ui::SettingsDialogBase(),
+ m_appConfig(config)
+{
+ setupUi(this);
+
+ m_Locale.fillLanguageComboBox(m_pComboLanguage);
+
+ m_pLineEditScreenName->setText(appConfig().screenName());
+ m_pSpinBoxPort->setValue(appConfig().port());
+ m_pLineEditInterface->setText(appConfig().networkInterface());
+ m_pComboLogLevel->setCurrentIndex(appConfig().logLevel());
+ m_pCheckBoxLogToFile->setChecked(appConfig().logToFile());
+ m_pLineEditLogFilename->setText(appConfig().logFilename());
+ setIndexFromItemData(m_pComboLanguage, appConfig().language());
+ m_pCheckBoxAutoHide->setChecked(appConfig().getAutoHide());
+ m_pCheckBoxMinimizeToTray->setChecked(appConfig().getMinimizeToTray());
+ m_pCheckBoxEnableCrypto->setChecked(m_appConfig.getCryptoEnabled());
+
+#if defined(Q_OS_WIN)
+ m_pComboElevate->setCurrentIndex(static_cast<int>(appConfig().elevateMode()));
+#else
+ // elevate checkbox is only useful on ms windows.
+ m_pLabelElevate->hide();
+ m_pComboElevate->hide();
+#endif
+}
+
+void SettingsDialog::accept()
+{
+ m_appConfig.setScreenName(m_pLineEditScreenName->text());
+ m_appConfig.setPort(m_pSpinBoxPort->value());
+ m_appConfig.setNetworkInterface(m_pLineEditInterface->text());
+ m_appConfig.setCryptoEnabled(m_pCheckBoxEnableCrypto->isChecked());
+ m_appConfig.setLogLevel(m_pComboLogLevel->currentIndex());
+ m_appConfig.setLogToFile(m_pCheckBoxLogToFile->isChecked());
+ m_appConfig.setLogFilename(m_pLineEditLogFilename->text());
+ m_appConfig.setLanguage(m_pComboLanguage->itemData(m_pComboLanguage->currentIndex()).toString());
+ m_appConfig.setElevateMode(static_cast<ElevateMode>(m_pComboElevate->currentIndex()));
+ m_appConfig.setAutoHide(m_pCheckBoxAutoHide->isChecked());
+ m_appConfig.setMinimizeToTray(m_pCheckBoxMinimizeToTray->isChecked());
+ m_appConfig.saveSettings();
+ QDialog::accept();
+}
+
+void SettingsDialog::reject()
+{
+ if (m_appConfig.language() != m_pComboLanguage->itemData(m_pComboLanguage->currentIndex()).toString()) {
+ QBarrierApplication::getInstance()->switchTranslator(m_appConfig.language());
+ }
+ QDialog::reject();
+}
+
+void SettingsDialog::changeEvent(QEvent* event)
+{
+ if (event != 0)
+ {
+ switch (event->type())
+ {
+ case QEvent::LanguageChange:
+ {
+ int logLevelIndex = m_pComboLogLevel->currentIndex();
+
+ m_pComboLanguage->blockSignals(true);
+ retranslateUi(this);
+ m_pComboLanguage->blockSignals(false);
+
+ m_pComboLogLevel->setCurrentIndex(logLevelIndex);
+ break;
+ }
+
+ default:
+ QDialog::changeEvent(event);
+ }
+ }
+}
+
+void SettingsDialog::on_m_pCheckBoxLogToFile_stateChanged(int i)
+{
+ bool checked = i == 2;
+
+ m_pLineEditLogFilename->setEnabled(checked);
+ m_pButtonBrowseLog->setEnabled(checked);
+}
+
+void SettingsDialog::on_m_pButtonBrowseLog_clicked()
+{
+ QString fileName = QFileDialog::getSaveFileName(
+ this, tr("Save log file to..."),
+ m_pLineEditLogFilename->text(),
+ "Logs (*.log *.txt)");
+
+ if (!fileName.isEmpty())
+ {
+ m_pLineEditLogFilename->setText(fileName);
+ }
+}
+
+void SettingsDialog::on_m_pComboLanguage_currentIndexChanged(int index)
+{
+ QString ietfCode = m_pComboLanguage->itemData(index).toString();
+ QBarrierApplication::getInstance()->switchTranslator(ietfCode);
+} \ No newline at end of file
diff --git a/src/gui/src/SettingsDialog.h b/src/gui/src/SettingsDialog.h
new file mode 100644
index 0000000..c16b821
--- /dev/null
+++ b/src/gui/src/SettingsDialog.h
@@ -0,0 +1,54 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(SETTINGSDIALOG_H)
+
+#define SETTINGSDIALOG_H
+
+#include <QDialog>
+#include "ui_SettingsDialogBase.h"
+#include "BarrierLocale.h"
+#include "CoreInterface.h"
+
+class AppConfig;
+
+class SettingsDialog : public QDialog, public Ui::SettingsDialogBase
+{
+ Q_OBJECT
+
+ public:
+ SettingsDialog(QWidget* parent, AppConfig& config);
+
+ protected:
+ void accept();
+ void reject();
+ void changeEvent(QEvent* event);
+ AppConfig& appConfig() { return m_appConfig; }
+
+ private:
+ AppConfig& m_appConfig;
+ BarrierLocale m_Locale;
+ CoreInterface m_CoreInterface;
+
+ private slots:
+ void on_m_pComboLanguage_currentIndexChanged(int index);
+ void on_m_pCheckBoxLogToFile_stateChanged(int );
+ void on_m_pButtonBrowseLog_clicked();
+};
+
+#endif
diff --git a/src/gui/src/SettingsDialogBase.ui b/src/gui/src/SettingsDialogBase.ui
new file mode 100644
index 0000000..432ec0d
--- /dev/null
+++ b/src/gui/src/SettingsDialogBase.ui
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SettingsDialogBase</class>
+ <widget class="QDialog" name="SettingsDialogBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>368</width>
+ <height>380</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Settings</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QGroupBox" name="m_pGroupGeneral">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>General</string>
+ </property>
+ <layout class="QFormLayout" name="formLayout">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_pLabel_27">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>75</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&amp;Language:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboLanguage</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="m_pComboLanguage"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="m_pLabel_19">
+ <property name="minimumSize">
+ <size>
+ <width>75</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Sc&amp;reen name:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pLineEditScreenName</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="m_pLineEditScreenName">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="m_pLabelElevate">
+ <property name="text">
+ <string>Elevate</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QComboBox" name="m_pComboElevate">
+ <property name="toolTip">
+ <string>Specify when the Barrier service should run at an elevated privilege level</string>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <item>
+ <property name="text">
+ <string>As Needed</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Always</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Never</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxMinimizeToTray">
+ <property name="text">
+ <string>Minimize to System &amp;Tray</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxAutoHide">
+ <property name="text">
+ <string>&amp;Hide on startup</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="m_pGroupNetworking">
+ <property name="title">
+ <string>Networking</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_pLabel_20">
+ <property name="text">
+ <string>P&amp;ort:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pSpinBoxPort</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="m_pSpinBoxPort">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximum">
+ <number>65535</number>
+ </property>
+ <property name="value">
+ <number>24800</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="m_pLabel_21">
+ <property name="text">
+ <string>&amp;Interface:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pLineEditInterface</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="m_pLineEditInterface">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxEnableCrypto">
+ <property name="text">
+ <string>Enable &amp;SSL</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="m_pGroupLog">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Logging</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="flat">
+ <bool>false</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="m_pLabel_3">
+ <property name="minimumSize">
+ <size>
+ <width>75</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&amp;Logging level:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboLogLevel</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2">
+ <widget class="QComboBox" name="m_pComboLogLevel">
+ <item>
+ <property name="text">
+ <string>Error</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Warning</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Note</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Info</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Debug</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Debug1</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Debug2</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="m_pCheckBoxLogToFile">
+ <property name="text">
+ <string>Log to file:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="m_pLineEditLogFilename">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QPushButton" name="m_pButtonBrowseLog">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Browse...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <tabstops>
+ <tabstop>m_pComboLanguage</tabstop>
+ <tabstop>m_pLineEditScreenName</tabstop>
+ <tabstop>m_pComboElevate</tabstop>
+ <tabstop>m_pCheckBoxMinimizeToTray</tabstop>
+ <tabstop>m_pCheckBoxAutoHide</tabstop>
+ <tabstop>m_pSpinBoxPort</tabstop>
+ <tabstop>m_pLineEditInterface</tabstop>
+ <tabstop>m_pCheckBoxEnableCrypto</tabstop>
+ <tabstop>m_pComboLogLevel</tabstop>
+ <tabstop>m_pCheckBoxLogToFile</tabstop>
+ <tabstop>m_pLineEditLogFilename</tabstop>
+ <tabstop>m_pButtonBrowseLog</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>SettingsDialogBase</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>266</x>
+ <y>340</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SettingsDialogBase</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>334</x>
+ <y>340</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/src/SetupWizard.cpp b/src/gui/src/SetupWizard.cpp
new file mode 100644
index 0000000..313e48b
--- /dev/null
+++ b/src/gui/src/SetupWizard.cpp
@@ -0,0 +1,149 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "SetupWizard.h"
+#include "MainWindow.h"
+#include "WebClient.h"
+#include "QBarrierApplication.h"
+#include "QUtility.h"
+
+#include <QMessageBox>
+
+SetupWizard::SetupWizard(MainWindow& mainWindow, bool startMain) :
+ m_MainWindow(mainWindow),
+ m_StartMain(startMain)
+{
+ setupUi(this);
+
+#if defined(Q_OS_MAC)
+
+ // the mac style needs a little more room because of the
+ // graphic on the left.
+ resize(600, 500);
+ setMinimumSize(size());
+
+#elif defined(Q_OS_WIN)
+
+ // when areo is disabled on windows, the next/back buttons
+ // are hidden (must be a qt bug) -- resizing the window
+ // to +1 of the original height seems to fix this.
+ // NOTE: calling setMinimumSize after this will break
+ // it again, so don't do that.
+ resize(size().width(), size().height() + 1);
+
+#endif
+
+ connect(m_pServerRadioButton, SIGNAL(toggled(bool)), m_MainWindow.m_pGroupServer, SLOT(setChecked(bool)));
+ connect(m_pClientRadioButton, SIGNAL(toggled(bool)), m_MainWindow.m_pGroupClient, SLOT(setChecked(bool)));
+
+ m_Locale.fillLanguageComboBox(m_pComboLanguage);
+ setIndexFromItemData(m_pComboLanguage, m_MainWindow.appConfig().language());
+}
+
+SetupWizard::~SetupWizard()
+{
+}
+
+bool SetupWizard::validateCurrentPage()
+{
+ QMessageBox message;
+ message.setWindowTitle(tr("Setup Barrier"));
+ message.setIcon(QMessageBox::Information);
+
+ if (currentPage() == m_pNodePage)
+ {
+ bool result = m_pClientRadioButton->isChecked() ||
+ m_pServerRadioButton->isChecked();
+
+ if (!result)
+ {
+ message.setText(tr("Please select an option."));
+ message.exec();
+ return false;
+ }
+ }
+
+ return true;
+}
+
+void SetupWizard::changeEvent(QEvent* event)
+{
+ if (event != 0)
+ {
+ switch (event->type())
+ {
+ case QEvent::LanguageChange:
+ {
+ m_pComboLanguage->blockSignals(true);
+ retranslateUi(this);
+ m_pComboLanguage->blockSignals(false);
+ break;
+ }
+
+ default:
+ QWizard::changeEvent(event);
+ }
+ }
+}
+
+void SetupWizard::accept()
+{
+ AppConfig& appConfig = m_MainWindow.appConfig();
+
+ appConfig.setLanguage(m_pComboLanguage->itemData(m_pComboLanguage->currentIndex()).toString());
+
+ appConfig.setWizardHasRun();
+ appConfig.saveSettings();
+
+ QSettings& settings = m_MainWindow.settings();
+ if (m_pServerRadioButton->isChecked())
+ {
+ settings.setValue("groupServerChecked", true);
+ settings.setValue("groupClientChecked", false);
+ }
+ if (m_pClientRadioButton->isChecked())
+ {
+ settings.setValue("groupClientChecked", true);
+ settings.setValue("groupServerChecked", false);
+ }
+
+ QWizard::accept();
+
+ if (m_StartMain)
+ {
+ m_MainWindow.updateZeroconfService();
+ m_MainWindow.open();
+ }
+}
+
+void SetupWizard::reject()
+{
+ QBarrierApplication::getInstance()->switchTranslator(m_MainWindow.appConfig().language());
+
+ if (m_StartMain)
+ {
+ m_MainWindow.open();
+ }
+
+ QWizard::reject();
+}
+
+void SetupWizard::on_m_pComboLanguage_currentIndexChanged(int index)
+{
+ QString ietfCode = m_pComboLanguage->itemData(index).toString();
+ QBarrierApplication::getInstance()->switchTranslator(ietfCode);
+}
diff --git a/src/gui/src/SetupWizard.h b/src/gui/src/SetupWizard.h
new file mode 100644
index 0000000..80e19e9
--- /dev/null
+++ b/src/gui/src/SetupWizard.h
@@ -0,0 +1,53 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "ui_SetupWizardBase.h"
+#include "BarrierLocale.h"
+
+#include <QWizard>
+#include <QNetworkAccessManager>
+
+class MainWindow;
+
+class SetupWizard : public QWizard, public Ui::SetupWizardBase
+{
+ Q_OBJECT
+public:
+ enum {
+ kMaximiumLoginAttemps = 3
+ };
+
+public:
+ SetupWizard(MainWindow& mainWindow, bool startMain);
+ virtual ~SetupWizard();
+ bool validateCurrentPage();
+
+protected:
+ void changeEvent(QEvent* event);
+ void accept();
+ void reject();
+
+private:
+ MainWindow& m_MainWindow;
+ bool m_StartMain;
+ BarrierLocale m_Locale;
+
+private slots:
+ void on_m_pComboLanguage_currentIndexChanged(int index);
+};
diff --git a/src/gui/src/SetupWizardBase.ui b/src/gui/src/SetupWizardBase.ui
new file mode 100644
index 0000000..47de563
--- /dev/null
+++ b/src/gui/src/SetupWizardBase.ui
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SetupWizardBase</class>
+ <widget class="QWizard" name="SetupWizardBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>556</width>
+ <height>464</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>500</width>
+ <height>390</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>Setup Barrier</string>
+ </property>
+ <widget class="QWizardPage" name="m_pWelcomePage">
+ <property name="title">
+ <string>Welcome</string>
+ </property>
+ <property name="subTitle">
+ <string notr="true"/>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Thanks for installing Barrier!</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_6">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QFormLayout" name="formLayout_3">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="minimumSize">
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string notr="true">&amp;Language:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_pComboLanguage</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="m_pComboLanguage">
+ <property name="maximumSize">
+ <size>
+ <width>200</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="locale">
+ <locale language="English" country="UnitedKingdom"/>
+ </property>
+ <property name="text">
+ <string>Barrier lets you easily share your mouse and keyboard between multiple computers on your desk, and it's Free and Open Source. Just move your mouse off the edge of one computer's screen on to another. You can even share all of your clipboards. All you need is a network connection. Barrier is cross-platform (works on Windows, Mac OS X and Linux).</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWizardPage" name="m_pNodePage">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Server or Client?</string>
+ </property>
+ <property name="subTitle">
+ <string/>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QRadioButton" name="m_pServerRadioButton">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>&amp;Server (share this computer's mouse and keyboard)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pClientLabel">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;My main mouse and keyboard are connected to this computer. This will allow you to move your mouse over to another computer's screen. There can only be one server in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="m_pClientRadioButton">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>&amp;Client (use another computer's mouse and keyboard)</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="m_pServerLabel">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You have already set up a server. This computer will be controlled using the server's mouse and keyboard. There can be many clients in your setup.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::MinimumExpanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <tabstops>
+ <tabstop>m_pComboLanguage</tabstop>
+ <tabstop>m_pServerRadioButton</tabstop>
+ <tabstop>m_pClientRadioButton</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/gui/src/ShutdownCh.h b/src/gui/src/ShutdownCh.h
new file mode 100644
index 0000000..2462cae
--- /dev/null
+++ b/src/gui/src/ShutdownCh.h
@@ -0,0 +1,22 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2018 Debauchee Open Source Group
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// included in both the GUI and the child apps (server & client)
+const char ShutdownCh = 'S';
+
diff --git a/src/gui/src/SslCertificate.cpp b/src/gui/src/SslCertificate.cpp
new file mode 100644
index 0000000..7de7eaa
--- /dev/null
+++ b/src/gui/src/SslCertificate.cpp
@@ -0,0 +1,178 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "SslCertificate.h"
+
+#include "Fingerprint.h"
+
+#include <QProcess>
+#include <QDir>
+#include <QCoreApplication>
+
+static const char kCertificateLifetime[] = "365";
+static const char kCertificateSubjectInfo[] = "/CN=Barrier";
+static const char kCertificateFilename[] = "Barrier.pem";
+static const char kSslDir[] = "SSL";
+static const char kUnixOpenSslCommand[] = "openssl";
+
+#if defined(Q_OS_WIN)
+static const char kWinOpenSslBinary[] = "openssl.exe";
+static const char kConfigFile[] = "barrier.conf";
+#endif
+
+SslCertificate::SslCertificate(QObject *parent) :
+ QObject(parent)
+{
+ m_ProfileDir = m_CoreInterface.getProfileDir();
+ if (m_ProfileDir.isEmpty()) {
+ emit error(tr("Failed to get profile directory."));
+ }
+}
+
+bool SslCertificate::runTool(const QStringList& args)
+{
+ QString program;
+#if defined(Q_OS_WIN)
+ program = QCoreApplication::applicationDirPath();
+ program.append("\\").append(kWinOpenSslBinary);
+#else
+ program = kUnixOpenSslCommand;
+#endif
+
+
+ QStringList environment;
+#if defined(Q_OS_WIN)
+ environment << QString("OPENSSL_CONF=%1\\%2")
+ .arg(QCoreApplication::applicationDirPath())
+ .arg(kConfigFile);
+#endif
+
+ QProcess process;
+ process.setEnvironment(environment);
+ process.start(program, args);
+
+ bool success = process.waitForStarted();
+
+ QString standardError;
+ if (success && process.waitForFinished())
+ {
+ m_ToolOutput = process.readAllStandardOutput().trimmed();
+ standardError = process.readAllStandardError().trimmed();
+ }
+
+ int code = process.exitCode();
+ if (!success || code != 0)
+ {
+ emit error(
+ QString("SSL tool failed: %1\n\nCode: %2\nError: %3")
+ .arg(program)
+ .arg(process.exitCode())
+ .arg(standardError.isEmpty() ? "Unknown" : standardError));
+ return false;
+ }
+
+ return true;
+}
+
+void SslCertificate::generateCertificate()
+{
+ QString sslDirPath = QString("%1%2%3")
+ .arg(m_ProfileDir)
+ .arg(QDir::separator())
+ .arg(kSslDir);
+
+ QString filename = QString("%1%2%3")
+ .arg(sslDirPath)
+ .arg(QDir::separator())
+ .arg(kCertificateFilename);
+
+ QFile file(filename);
+ if (!file.exists()) {
+ QStringList arguments;
+
+ // self signed certificate
+ arguments.append("req");
+ arguments.append("-x509");
+ arguments.append("-nodes");
+
+ // valide duration
+ arguments.append("-days");
+ arguments.append(kCertificateLifetime);
+
+ // subject information
+ arguments.append("-subj");
+
+ QString subInfo(kCertificateSubjectInfo);
+ arguments.append(subInfo);
+
+ // private key
+ arguments.append("-newkey");
+ arguments.append("rsa:1024");
+
+ QDir sslDir(sslDirPath);
+ if (!sslDir.exists()) {
+ sslDir.mkpath(".");
+ }
+
+ // key output filename
+ arguments.append("-keyout");
+ arguments.append(filename);
+
+ // certificate output filename
+ arguments.append("-out");
+ arguments.append(filename);
+
+ if (!runTool(arguments)) {
+ return;
+ }
+
+ emit info(tr("SSL certificate generated."));
+ }
+
+ generateFingerprint(filename);
+
+ emit generateFinished();
+}
+
+void SslCertificate::generateFingerprint(const QString& certificateFilename)
+{
+ QStringList arguments;
+ arguments.append("x509");
+ arguments.append("-fingerprint");
+ arguments.append("-sha1");
+ arguments.append("-noout");
+ arguments.append("-in");
+ arguments.append(certificateFilename);
+
+ if (!runTool(arguments)) {
+ return;
+ }
+
+ // find the fingerprint from the tool output
+ int i = m_ToolOutput.indexOf("=");
+ if (i != -1) {
+ i++;
+ QString fingerprint = m_ToolOutput.mid(
+ i, m_ToolOutput.size() - i);
+
+ Fingerprint::local().trust(fingerprint, false);
+ emit info(tr("SSL fingerprint generated."));
+ }
+ else {
+ emit error(tr("Failed to find SSL fingerprint."));
+ }
+}
diff --git a/src/gui/src/SslCertificate.h b/src/gui/src/SslCertificate.h
new file mode 100644
index 0000000..8acda4b
--- /dev/null
+++ b/src/gui/src/SslCertificate.h
@@ -0,0 +1,47 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "CoreInterface.h"
+
+#include <QObject>
+
+class SslCertificate : public QObject
+{
+Q_OBJECT
+
+public:
+ explicit SslCertificate(QObject *parent = 0);
+
+public slots:
+ void generateCertificate();
+
+signals:
+ void error(QString e);
+ void info(QString i);
+ void generateFinished();
+
+private:
+ bool runTool(const QStringList& args);
+ void generateFingerprint(const QString& certificateFilename);
+
+private:
+ QString m_ProfileDir;
+ QString m_ToolOutput;
+ CoreInterface m_CoreInterface;
+};
diff --git a/src/gui/src/TrashScreenWidget.cpp b/src/gui/src/TrashScreenWidget.cpp
new file mode 100644
index 0000000..42a9d56
--- /dev/null
+++ b/src/gui/src/TrashScreenWidget.cpp
@@ -0,0 +1,43 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "TrashScreenWidget.h"
+#include "ScreenSetupModel.h"
+
+#include <QtCore>
+#include <QtGui>
+
+void TrashScreenWidget::dragEnterEvent(QDragEnterEvent* event)
+{
+ if (event->mimeData()->hasFormat(ScreenSetupModel::mimeType()))
+ {
+ event->setDropAction(Qt::MoveAction);
+ event->accept();
+ }
+ else
+ event->ignore();
+}
+
+void TrashScreenWidget::dropEvent(QDropEvent* event)
+{
+ if (event->mimeData()->hasFormat(ScreenSetupModel::mimeType()))
+ event->acceptProposedAction();
+ else
+ event->ignore();
+}
+
diff --git a/src/gui/src/TrashScreenWidget.h b/src/gui/src/TrashScreenWidget.h
new file mode 100644
index 0000000..7ab887e
--- /dev/null
+++ b/src/gui/src/TrashScreenWidget.h
@@ -0,0 +1,42 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#if !defined(TRASHSCREENWIDGET__H)
+
+#define TRASHSCREENWIDGET__H
+
+#include <QLabel>
+
+class QWidget;
+class QDragEnterEvent;
+class QDropEvent;
+
+class TrashScreenWidget : public QLabel
+{
+ Q_OBJECT
+
+ public:
+ TrashScreenWidget(QWidget* parent) : QLabel(parent) {}
+
+ public:
+ void dragEnterEvent(QDragEnterEvent* event);
+ void dropEvent(QDropEvent* event);
+};
+
+#endif
+
diff --git a/src/gui/src/VersionChecker.cpp b/src/gui/src/VersionChecker.cpp
new file mode 100644
index 0000000..b680309
--- /dev/null
+++ b/src/gui/src/VersionChecker.cpp
@@ -0,0 +1,111 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "VersionChecker.h"
+
+#include <QNetworkAccessManager>
+#include <QNetworkRequest>
+#include <QNetworkReply>
+#include <QProcess>
+#include <QLocale>
+
+#define VERSION_REGEX "(\\d+\\.\\d+\\.\\d+)"
+//#define VERSION_URL "http://www.TODO.com/"
+
+VersionChecker::VersionChecker(QObject* parent)
+ : QObject(parent)
+{
+}
+
+void VersionChecker::checkLatest()
+{
+ // calling m_manager->get(..) is causing an access violation on app close
+ // atm there is nothing to check the version against, so removing until we need a version checker again
+
+ //m_manager = new QNetworkAccessManager(this);
+
+ //connect(m_manager, SIGNAL(finished(QNetworkReply*)),
+ // this, SLOT(replyFinished(QNetworkReply*)));
+
+ //m_manager->get(QNetworkRequest(QUrl(VERSION_URL)));
+}
+
+void VersionChecker::replyFinished(QNetworkReply* reply)
+{
+ if (reply->error()) {
+ // TODO: handle me
+ } else {
+ QString newestVersion = QString(reply->readAll());
+ if (!newestVersion.isEmpty()) {
+ QString currentVersion = getVersion();
+ if (currentVersion != "Unknown") {
+ if (compareVersions(currentVersion, newestVersion) > 0)
+ emit updateFound(newestVersion);
+ }
+ }
+ }
+ reply->deleteLater();
+}
+
+int VersionChecker::compareVersions(const QString& left, const QString& right)
+{
+ if (left.compare(right) == 0)
+ return 0; // versions are same.
+
+ QStringList leftSplit = left.split(QRegExp("\\."));
+ if (leftSplit.size() != 3)
+ return 1; // assume right wins.
+
+ QStringList rightSplit = right.split(QRegExp("\\."));
+ if (rightSplit.size() != 3)
+ return -1; // assume left wins.
+
+ int leftMajor = leftSplit.at(0).toInt();
+ int leftMinor = leftSplit.at(1).toInt();
+ int leftRev = leftSplit.at(2).toInt();
+
+ int rightMajor = rightSplit.at(0).toInt();
+ int rightMinor = rightSplit.at(1).toInt();
+ int rightRev = rightSplit.at(2).toInt();
+
+ bool rightWins =
+ (rightMajor > leftMajor) ||
+ ((rightMajor >= leftMajor) && (rightMinor > leftMinor)) ||
+ ((rightMajor >= leftMajor) && (rightMinor >= leftMinor) && (rightRev > leftRev));
+
+ return rightWins ? 1 : -1;
+}
+
+QString VersionChecker::getVersion()
+{
+ QProcess process;
+ process.start(m_app, QStringList() << "--version");
+
+ process.setReadChannel(QProcess::StandardOutput);
+ if (process.waitForStarted() && process.waitForFinished())
+ {
+ QRegExp rx(VERSION_REGEX);
+ QString text = process.readLine();
+ if (rx.indexIn(text) != -1)
+ {
+ return rx.cap(1);
+ }
+ }
+
+ return tr("Unknown");
+}
diff --git a/src/gui/src/VersionChecker.h b/src/gui/src/VersionChecker.h
new file mode 100644
index 0000000..e4df2c6
--- /dev/null
+++ b/src/gui/src/VersionChecker.h
@@ -0,0 +1,43 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2012 Nick Bolton
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QObject>
+#include <QString>
+
+class QNetworkAccessManager;
+class QNetworkReply;
+
+class VersionChecker : public QObject
+{
+ Q_OBJECT
+public:
+ explicit VersionChecker(QObject* parent = 0);
+ void checkLatest();
+ QString getVersion();
+ void setApp(const QString& app) { m_app = app; }
+ int compareVersions(const QString& left, const QString& right);
+public slots:
+ void replyFinished(QNetworkReply* reply);
+signals:
+ void updateFound(const QString& version);
+private:
+ QNetworkAccessManager* m_manager;
+ QString m_app;
+};
diff --git a/src/gui/src/WebClient.cpp b/src/gui/src/WebClient.cpp
new file mode 100644
index 0000000..8cded2c
--- /dev/null
+++ b/src/gui/src/WebClient.cpp
@@ -0,0 +1,83 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "WebClient.h"
+
+#include "QUtility.h"
+
+#include <QProcess>
+#include <QMessageBox>
+#include <QCoreApplication>
+#include <stdexcept>
+
+bool
+WebClient::getEdition (int& edition, QString& errorOut) {
+ QString responseJson = request();
+
+ /* TODO: This is horrible and should be ripped out as soon as we move
+ * to Qt 5. See issue #5630
+ */
+
+ QRegExp resultRegex(".*\"result\".*:.*(true|false).*");
+ if (resultRegex.exactMatch (responseJson)) {
+ QString boolString = resultRegex.cap(1);
+ if (boolString == "true") {
+ QRegExp editionRegex(".*\"edition\".*:.*\"([^\"]+)\".*");
+ if (editionRegex.exactMatch(responseJson)) {
+ QString e = editionRegex.cap(1);
+ edition = e.toInt();
+ return true;
+ } else {
+ throw std::runtime_error ("Unrecognised server response.");
+ }
+ } else {
+ errorOut = tr("Login failed. Invalid email address or password.");
+ return false;
+ }
+ } else {
+ QRegExp errorRegex(".*\"error\".*:.*\"([^\"]+)\".*");
+ if (errorRegex.exactMatch (responseJson)) {
+ errorOut = errorRegex.cap(1).replace("\\n", "\n");
+ return false;
+ } else {
+ throw std::runtime_error ("Unrecognised server response.");
+ }
+ }
+}
+
+bool
+WebClient::setEmail (QString email, QString& errorOut) {
+ if (email.isEmpty()) {
+ errorOut = tr("Your email address cannot be left blank.");
+ return false;
+ }
+ m_Email = email;
+ return true;
+}
+
+bool
+WebClient::setPassword (QString password, QString&) {
+ m_Password = password;
+ return true;
+}
+
+QString
+WebClient::request() {
+ QStringList args("--login-auth");
+ QString credentials (m_Email + ":" + hash(m_Password) + "\n");
+ return m_CoreInterface.run (args, credentials);
+}
diff --git a/src/gui/src/WebClient.h b/src/gui/src/WebClient.h
new file mode 100644
index 0000000..9874bd5
--- /dev/null
+++ b/src/gui/src/WebClient.h
@@ -0,0 +1,49 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2015-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef WEBCLIENT_H
+#define WEBCLIENT_H
+
+#include <QString>
+#include <QObject>
+
+#include "CoreInterface.h"
+
+class QMessageBox;
+class QWidget;
+class QStringList;
+
+class WebClient : public QObject
+{
+ Q_OBJECT
+
+public:
+ bool getEdition (int& edition, QString& errorOut);
+ bool setEmail (QString email, QString& errorOut);
+ bool setPassword (QString password, QString& errorOut);
+signals:
+ void error(QString e);
+
+private:
+ QString request();
+
+ QString m_Email;
+ QString m_Password;
+ CoreInterface m_CoreInterface;
+};
+
+#endif // WEBCLIENT_H
diff --git a/src/gui/src/ZeroconfBrowser.cpp b/src/gui/src/ZeroconfBrowser.cpp
new file mode 100644
index 0000000..35b44c1
--- /dev/null
+++ b/src/gui/src/ZeroconfBrowser.cpp
@@ -0,0 +1,92 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ZeroconfBrowser.h"
+
+#include <QtCore/QSocketNotifier>
+
+ZeroconfBrowser::ZeroconfBrowser(QObject* parent) :
+ QObject(parent),
+ m_DnsServiceRef(0),
+ m_pSocket(0)
+{
+}
+
+ZeroconfBrowser::~ZeroconfBrowser()
+{
+ if (m_pSocket) {
+ delete m_pSocket;
+ }
+
+ if (m_DnsServiceRef) {
+ DNSServiceRefDeallocate(m_DnsServiceRef);
+ m_DnsServiceRef = 0;
+ }
+}
+
+void ZeroconfBrowser::browseForType(const QString& type)
+{
+ DNSServiceErrorType err = DNSServiceBrowse(&m_DnsServiceRef, 0, 0,
+ type.toUtf8().constData(), 0, browseReply, this);
+
+ if (err != kDNSServiceErr_NoError) {
+ emit error(err);
+ }
+ else {
+ int sockFD = DNSServiceRefSockFD(m_DnsServiceRef);
+ if (sockFD == -1) {
+ emit error(kDNSServiceErr_Invalid);
+ }
+ else {
+ m_pSocket = new QSocketNotifier(sockFD, QSocketNotifier::Read, this);
+ connect(m_pSocket, SIGNAL(activated(int)), this,
+ SLOT(socketReadyRead()));
+ }
+ }
+}
+
+void ZeroconfBrowser::socketReadyRead()
+{
+ DNSServiceErrorType err = DNSServiceProcessResult(m_DnsServiceRef);
+ if (err != kDNSServiceErr_NoError) {
+ emit error(err);
+ }
+}
+
+void ZeroconfBrowser::browseReply(DNSServiceRef, DNSServiceFlags flags,
+ quint32, DNSServiceErrorType errorCode, const char* serviceName,
+ const char* regType, const char* replyDomain, void* context)
+{
+ ZeroconfBrowser* browser = static_cast<ZeroconfBrowser*>(context);
+ if (errorCode != kDNSServiceErr_NoError) {
+ emit browser->error(errorCode);
+ }
+ else {
+ ZeroconfRecord record(serviceName, regType, replyDomain);
+ if (flags & kDNSServiceFlagsAdd) {
+ if (!browser->m_Records.contains(record)) {
+ browser->m_Records.append(record);
+ }
+ }
+ else {
+ browser->m_Records.removeAll(record);
+ }
+ if (!(flags & kDNSServiceFlagsMoreComing)) {
+ emit browser->currentRecordsChanged(browser->m_Records);
+ }
+ }
+}
diff --git a/src/gui/src/ZeroconfBrowser.h b/src/gui/src/ZeroconfBrowser.h
new file mode 100644
index 0000000..755907e
--- /dev/null
+++ b/src/gui/src/ZeroconfBrowser.h
@@ -0,0 +1,57 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "ZeroconfRecord.h"
+
+#include <QtCore/QObject>
+#define _MSL_STDINT_H
+#include <stdint.h>
+#include <dns_sd.h>
+
+class QSocketNotifier;
+
+class ZeroconfBrowser : public QObject
+{
+ Q_OBJECT
+
+public:
+ ZeroconfBrowser(QObject* parent = 0);
+ ~ZeroconfBrowser();
+ void browseForType(const QString& type);
+ inline QList<ZeroconfRecord> currentRecords() const { return m_Records; }
+ inline QString serviceType() const { return m_BrowsingType; }
+
+signals:
+ void currentRecordsChanged(const QList<ZeroconfRecord>& list);
+ void error(DNSServiceErrorType err);
+
+private slots:
+ void socketReadyRead();
+
+private:
+ static void DNSSD_API browseReply(DNSServiceRef, DNSServiceFlags flags,
+ quint32, DNSServiceErrorType errorCode, const char* serviceName,
+ const char* regType, const char* replyDomain, void* context);
+
+private:
+ DNSServiceRef m_DnsServiceRef;
+ QSocketNotifier* m_pSocket;
+ QList<ZeroconfRecord> m_Records;
+ QString m_BrowsingType;
+};
diff --git a/src/gui/src/ZeroconfRecord.h b/src/gui/src/ZeroconfRecord.h
new file mode 100644
index 0000000..eba7785
--- /dev/null
+++ b/src/gui/src/ZeroconfRecord.h
@@ -0,0 +1,50 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QtCore/QMetaType>
+#include <QtCore/QString>
+
+class ZeroconfRecord
+{
+public:
+ ZeroconfRecord() {}
+ ZeroconfRecord(const QString& name, const QString& regType,
+ const QString& domain)
+ : serviceName(name), registeredType(regType), replyDomain(domain)
+ {}
+ ZeroconfRecord(const char* name, const char* regType, const char* domain)
+ {
+ serviceName = QString::fromUtf8(name);
+ registeredType = QString::fromUtf8(regType);
+ replyDomain = QString::fromUtf8(domain);
+ }
+
+ bool operator==(const ZeroconfRecord& other) const {
+ return serviceName == other.serviceName
+ && registeredType == other.registeredType
+ && replyDomain == other.replyDomain;
+ }
+
+public:
+ QString serviceName;
+ QString registeredType;
+ QString replyDomain;
+};
+
+Q_DECLARE_METATYPE(ZeroconfRecord)
diff --git a/src/gui/src/ZeroconfRegister.cpp b/src/gui/src/ZeroconfRegister.cpp
new file mode 100644
index 0000000..6d91a48
--- /dev/null
+++ b/src/gui/src/ZeroconfRegister.cpp
@@ -0,0 +1,94 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ZeroconfRegister.h"
+
+#include <QtCore/QSocketNotifier>
+
+ZeroconfRegister::ZeroconfRegister(QObject* parent) :
+ QObject(parent),
+ m_DnsServiceRef(0),
+ m_pSocket(0)
+{
+}
+
+ZeroconfRegister::~ZeroconfRegister()
+{
+ if (m_pSocket) {
+ delete m_pSocket;
+ }
+
+ if (m_DnsServiceRef) {
+ DNSServiceRefDeallocate(m_DnsServiceRef);
+ m_DnsServiceRef = 0;
+ }
+}
+
+void ZeroconfRegister::registerService(const ZeroconfRecord& record,
+ quint16 servicePort)
+{
+ if (m_DnsServiceRef) {
+ qWarning("Warning: Already registered a service for this object");
+ return;
+ }
+
+ quint16 bigEndianPort = servicePort;
+#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
+ {
+ bigEndianPort = 0 | ((servicePort & 0x00ff) << 8) | ((servicePort & 0xff00) >> 8);
+ }
+#endif
+
+ DNSServiceErrorType err = DNSServiceRegister(&m_DnsServiceRef,
+ kDNSServiceFlagsNoAutoRename, 0,
+ record.serviceName.toUtf8().constData(),
+ record.registeredType.toUtf8().constData(),
+ record.replyDomain.isEmpty() ? 0 : record.replyDomain.toUtf8().constData(),
+ 0, bigEndianPort, 0, 0, registerService, this);
+
+ if (err != kDNSServiceErr_NoError) {
+ emit error(err);
+ }
+ else {
+ int sockfd = DNSServiceRefSockFD(m_DnsServiceRef);
+ if (sockfd == -1) {
+ emit error(kDNSServiceErr_Invalid);
+ }
+ else {
+ m_pSocket = new QSocketNotifier(sockfd, QSocketNotifier::Read, this);
+ connect(m_pSocket, SIGNAL(activated(int)), this, SLOT(socketReadyRead()));
+ }
+ }
+}
+
+void ZeroconfRegister::socketReadyRead()
+{
+ DNSServiceErrorType err = DNSServiceProcessResult(m_DnsServiceRef);
+ if (err != kDNSServiceErr_NoError) {
+ emit error(err);
+ }
+}
+
+void ZeroconfRegister::registerService(DNSServiceRef, DNSServiceFlags,
+ DNSServiceErrorType errorCode, const char* name, const char* regtype,
+ const char* domain, void* data)
+{
+ ZeroconfRegister* serviceRegister = static_cast<ZeroconfRegister*>(data);
+ if (errorCode != kDNSServiceErr_NoError) {
+ emit serviceRegister->error(errorCode);
+ }
+}
diff --git a/src/gui/src/ZeroconfRegister.h b/src/gui/src/ZeroconfRegister.h
new file mode 100644
index 0000000..e4f3a78
--- /dev/null
+++ b/src/gui/src/ZeroconfRegister.h
@@ -0,0 +1,61 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QtCore/QObject>
+
+#include "ZeroconfRecord.h"
+
+class QSocketNotifier;
+
+// Bonjour flags
+#define _MSL_STDINT_H
+#include <stdint.h>
+#if defined(Q_OS_WIN)
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <dns_sd.h>
+
+class ZeroconfRegister : public QObject
+{
+ Q_OBJECT
+
+public:
+ ZeroconfRegister(QObject* parent = 0);
+ ~ZeroconfRegister();
+
+ void registerService(const ZeroconfRecord& record, quint16 servicePort);
+ inline ZeroconfRecord registeredRecord() const { return finalRecord; }
+
+signals:
+ void error(DNSServiceErrorType error);
+ void serviceRegistered(const ZeroconfRecord& record);
+
+private slots:
+ void socketReadyRead();
+
+private:
+ static void DNSSD_API registerService(DNSServiceRef sdRef,
+ DNSServiceFlags, DNSServiceErrorType errorCode, const char* name,
+ const char* regtype, const char* domain, void* context);
+
+private:
+ DNSServiceRef m_DnsServiceRef;
+ QSocketNotifier* m_pSocket;
+ ZeroconfRecord finalRecord;
+};
diff --git a/src/gui/src/ZeroconfServer.cpp b/src/gui/src/ZeroconfServer.cpp
new file mode 100644
index 0000000..40b97a5
--- /dev/null
+++ b/src/gui/src/ZeroconfServer.cpp
@@ -0,0 +1,33 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ZeroconfServer.h"
+#include "ZeroconfThread.h"
+
+#include <stdlib.h>
+
+ZeroconfServer::ZeroconfServer(QObject* parent) :
+ QTcpServer(parent)
+{
+}
+
+void ZeroconfServer::incomingConnection(qintptr socketDescriptor)
+{
+ ZeroconfThread* thread = new ZeroconfThread(socketDescriptor, this);
+ connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
+ thread->start();
+}
diff --git a/src/gui/src/ZeroconfServer.h b/src/gui/src/ZeroconfServer.h
new file mode 100644
index 0000000..2e906d9
--- /dev/null
+++ b/src/gui/src/ZeroconfServer.h
@@ -0,0 +1,37 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QStringList>
+#include <QTcpServer>
+
+class ZeroconfRegister;
+
+class ZeroconfServer : public QTcpServer
+{
+ Q_OBJECT
+
+public:
+ ZeroconfServer(QObject* parent = 0);
+
+protected:
+ void incomingConnection(qintptr socketDescriptor) override;
+
+private:
+ QStringList fortunes;
+};
diff --git a/src/gui/src/ZeroconfService.cpp b/src/gui/src/ZeroconfService.cpp
new file mode 100644
index 0000000..02902ee
--- /dev/null
+++ b/src/gui/src/ZeroconfService.cpp
@@ -0,0 +1,188 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ZeroconfService.h"
+
+#include "MainWindow.h"
+#include "ZeroconfRegister.h"
+#include "ZeroconfBrowser.h"
+
+#include <QtNetwork>
+#include <QMessageBox>
+#define _MSL_STDINT_H
+#include <stdint.h>
+#include <dns_sd.h>
+
+#ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#else
+#include <stdlib.h>
+#endif
+
+static const QStringList preferedIPAddress(
+ QStringList() <<
+ "192.168." <<
+ "10." <<
+ "172.");
+
+const char* ZeroconfService:: m_ServerServiceName = "_barrierServerZeroconf._tcp";
+const char* ZeroconfService:: m_ClientServiceName = "_barrierClientZeroconf._tcp";
+
+static void silence_avahi_warning()
+{
+ // the libavahi folks seemingly find Apple's bonjour API distasteful
+ // and are quite liberal in taking it out on users...unless we set
+ // this environmental variable before calling the avahi library.
+ // additionally, Microsoft does not give us a POSIX setenv() so
+ // we use their OS-specific API instead
+ const char *name = "AVAHI_COMPAT_NOWARN";
+ const char *value = "1";
+#ifdef _WIN32
+ SetEnvironmentVariable(name, value);
+#else
+ setenv(name, value, 1);
+#endif
+}
+
+ZeroconfService::ZeroconfService(MainWindow* mainWindow) :
+ m_pMainWindow(mainWindow),
+ m_pZeroconfBrowser(0),
+ m_pZeroconfRegister(0),
+ m_ServiceRegistered(false)
+{
+ silence_avahi_warning();
+ if (m_pMainWindow->barrierType() == MainWindow::barrierServer) {
+ if (registerService(true)) {
+ m_pZeroconfBrowser = new ZeroconfBrowser(this);
+ connect(m_pZeroconfBrowser, SIGNAL(
+ currentRecordsChanged(const QList<ZeroconfRecord>&)),
+ this, SLOT(clientDetected(const QList<ZeroconfRecord>&)));
+ m_pZeroconfBrowser->browseForType(
+ QLatin1String(m_ClientServiceName));
+ }
+ }
+ else {
+ m_pZeroconfBrowser = new ZeroconfBrowser(this);
+ connect(m_pZeroconfBrowser, SIGNAL(
+ currentRecordsChanged(const QList<ZeroconfRecord>&)),
+ this, SLOT(serverDetected(const QList<ZeroconfRecord>&)));
+ m_pZeroconfBrowser->browseForType(
+ QLatin1String(m_ServerServiceName));
+ }
+
+ connect(m_pZeroconfBrowser, SIGNAL(error(DNSServiceErrorType)),
+ this, SLOT(errorHandle(DNSServiceErrorType)));
+}
+
+ZeroconfService::~ZeroconfService()
+{
+ if (m_pZeroconfBrowser) {
+ delete m_pZeroconfBrowser;
+ }
+ if (m_pZeroconfRegister) {
+ delete m_pZeroconfRegister;
+ }
+}
+
+void ZeroconfService::serverDetected(const QList<ZeroconfRecord>& list)
+{
+ foreach (ZeroconfRecord record, list) {
+ registerService(false);
+ m_pMainWindow->appendLogInfo(tr("zeroconf server detected: %1").arg(
+ record.serviceName));
+ m_pMainWindow->serverDetected(record.serviceName);
+ }
+}
+
+void ZeroconfService::clientDetected(const QList<ZeroconfRecord>& list)
+{
+ foreach (ZeroconfRecord record, list) {
+ m_pMainWindow->appendLogInfo(tr("zeroconf client detected: %1").arg(
+ record.serviceName));
+ m_pMainWindow->autoAddScreen(record.serviceName);
+ }
+}
+
+void ZeroconfService::errorHandle(DNSServiceErrorType errorCode)
+{
+ QMessageBox::critical(0, tr("Zero configuration service"),
+ tr("Error code: %1.").arg(errorCode));
+}
+
+QString ZeroconfService::getLocalIPAddresses()
+{
+ QStringList addresses;
+ foreach (const QHostAddress& address, QNetworkInterface::allAddresses()) {
+ if (address.protocol() == QAbstractSocket::IPv4Protocol &&
+ address != QHostAddress(QHostAddress::LocalHost)) {
+ addresses.append(address.toString());
+ }
+ }
+
+ foreach (const QString& preferedIP, preferedIPAddress) {
+ foreach (const QString& address, addresses) {
+ if (address.startsWith(preferedIP)) {
+ return address;
+ }
+ }
+ }
+
+ return "";
+}
+
+bool ZeroconfService::registerService(bool server)
+{
+ bool result = true;
+
+ if (!m_ServiceRegistered) {
+ if (!m_zeroconfServer.listen()) {
+ QMessageBox::critical(0, tr("Zero configuration service"),
+ tr("Unable to start the zeroconf: %1.")
+ .arg(m_zeroconfServer.errorString()));
+ result = false;
+ }
+ else {
+ m_pZeroconfRegister = new ZeroconfRegister(this);
+ if (server) {
+ QString localIP = getLocalIPAddresses();
+ if (localIP.isEmpty()) {
+ QMessageBox::warning(m_pMainWindow, tr("Barrier"),
+ tr("Failed to get local IP address. "
+ "Please manually type in server address "
+ "on your clients"));
+ }
+ else {
+ m_pZeroconfRegister->registerService(
+ ZeroconfRecord(tr("%1").arg(localIP),
+ QLatin1String(m_ServerServiceName), QString()),
+ m_zeroconfServer.serverPort());
+ }
+ }
+ else {
+ m_pZeroconfRegister->registerService(
+ ZeroconfRecord(tr("%1").arg(m_pMainWindow->getScreenName()),
+ QLatin1String(m_ClientServiceName), QString()),
+ m_zeroconfServer.serverPort());
+ }
+
+ m_ServiceRegistered = true;
+ }
+ }
+
+ return result;
+}
diff --git a/src/gui/src/ZeroconfService.h b/src/gui/src/ZeroconfService.h
new file mode 100644
index 0000000..929cd05
--- /dev/null
+++ b/src/gui/src/ZeroconfService.h
@@ -0,0 +1,57 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "ZeroconfServer.h"
+#include "ZeroconfRecord.h"
+
+#include <QtCore/QObject>
+
+typedef int32_t DNSServiceErrorType;
+
+class ZeroconfRegister;
+class ZeroconfBrowser;
+class MainWindow;
+
+class ZeroconfService : public QObject
+{
+ Q_OBJECT
+
+public:
+ ZeroconfService(MainWindow* mainWindow);
+ ~ZeroconfService();
+
+private slots:
+ void serverDetected(const QList<ZeroconfRecord>& list);
+ void clientDetected(const QList<ZeroconfRecord>& list);
+ void errorHandle(DNSServiceErrorType errorCode);
+
+private:
+ QString getLocalIPAddresses();
+ bool registerService(bool server);
+
+private:
+ MainWindow* m_pMainWindow;
+ ZeroconfServer m_zeroconfServer;
+ ZeroconfBrowser* m_pZeroconfBrowser;
+ ZeroconfRegister* m_pZeroconfRegister;
+ bool m_ServiceRegistered;
+
+ static const char* m_ServerServiceName;
+ static const char* m_ClientServiceName;
+};
diff --git a/src/gui/src/ZeroconfThread.cpp b/src/gui/src/ZeroconfThread.cpp
new file mode 100644
index 0000000..e9cea20
--- /dev/null
+++ b/src/gui/src/ZeroconfThread.cpp
@@ -0,0 +1,38 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ZeroconfThread.h"
+
+#include <QtNetwork>
+
+ZeroconfThread::ZeroconfThread(int socketDescriptor, QObject* parent) :
+ QThread(parent),
+ m_SocketDescriptor(socketDescriptor)
+{
+}
+
+void ZeroconfThread::run()
+{
+ QTcpSocket tcpSocket;
+ if (!tcpSocket.setSocketDescriptor(m_SocketDescriptor)) {
+ emit error(tcpSocket.error());
+ return;
+ }
+
+ tcpSocket.disconnectFromHost();
+ tcpSocket.waitForDisconnected();
+}
diff --git a/src/gui/src/ZeroconfThread.h b/src/gui/src/ZeroconfThread.h
new file mode 100644
index 0000000..aa488ad
--- /dev/null
+++ b/src/gui/src/ZeroconfThread.h
@@ -0,0 +1,38 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2014-2016 Symless Ltd.
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QThread>
+#include <QTcpSocket>
+
+class ZeroconfThread : public QThread
+{
+ Q_OBJECT
+
+public:
+ ZeroconfThread(int socketDescriptor, QObject* parent);
+
+ void run();
+
+signals:
+ void error(QTcpSocket::SocketError socketError);
+
+private:
+ int m_SocketDescriptor;
+ QString m_Text;
+};
diff --git a/src/gui/src/main.cpp b/src/gui/src/main.cpp
new file mode 100644
index 0000000..76a7d1a
--- /dev/null
+++ b/src/gui/src/main.cpp
@@ -0,0 +1,180 @@
+/*
+ * barrier -- mouse and keyboard sharing utility
+ * Copyright (C) 2012-2016 Symless Ltd.
+ * Copyright (C) 2008 Volker Lanz (vl@fidra.de)
+ *
+ * This package is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * found in the file LICENSE that should have accompanied this file.
+ *
+ * This package is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#define TRAY_RETRY_COUNT 10
+#define TRAY_RETRY_WAIT 2000
+
+#include "QBarrierApplication.h"
+#include "MainWindow.h"
+#include "AppConfig.h"
+#include "SetupWizard.h"
+#include "DisplayIsValid.h"
+
+#include <QtCore>
+#include <QtGui>
+#include <QSettings>
+#include <QMessageBox>
+
+#if defined(Q_OS_MAC)
+#include <Carbon/Carbon.h>
+#endif
+
+#ifdef Q_OS_DARWIN
+#include <cstdlib>
+#endif
+
+class QThreadImpl : public QThread
+{
+public:
+ static void msleep(unsigned long msecs)
+ {
+ QThread::msleep(msecs);
+ }
+};
+
+int waitForTray();
+
+#if defined(Q_OS_MAC)
+bool checkMacAssistiveDevices();
+#endif
+
+int main(int argc, char* argv[])
+{
+#ifdef WINAPI_XWINDOWS
+ // QApplication's constructor will call a fscking abort() if
+ // DISPLAY is bad. Let's check it first and handle it gracefully
+ if (!display_is_valid()) {
+ fprintf(stderr, "The Barrier GUI requires a display. Quitting...\n");
+ return 1;
+ }
+#endif
+#ifdef Q_OS_DARWIN
+ /* Workaround for QTBUG-40332 - "High ping when QNetworkAccessManager is instantiated" */
+ ::setenv ("QT_BEARER_POLL_TIMEOUT", "-1", 1);
+#endif
+ QCoreApplication::setOrganizationName("Debauchee");
+ QCoreApplication::setOrganizationDomain("github.com");
+ QCoreApplication::setApplicationName("Barrier");
+
+ QBarrierApplication app(argc, argv);
+
+#if defined(Q_OS_MAC)
+
+ if (app.applicationDirPath().startsWith("/Volumes/")) {
+ QMessageBox::information(
+ NULL, "Barrier",
+ "Please drag Barrier to the Applications folder, and open it from there.");
+ return 1;
+ }
+
+ if (!checkMacAssistiveDevices())
+ {
+ return 1;
+ }
+#endif
+
+ if (!waitForTray())
+ {
+ return -1;
+ }
+
+ QApplication::setQuitOnLastWindowClosed(false);
+
+ QSettings settings;
+ AppConfig appConfig (&settings);
+
+ app.switchTranslator(appConfig.language());
+
+ MainWindow mainWindow(settings, appConfig);
+ SetupWizard setupWizard(mainWindow, true);
+
+ if (appConfig.wizardShouldRun())
+ {
+ setupWizard.show();
+ }
+ else
+ {
+ mainWindow.open();
+ }
+
+ return app.exec();
+}
+
+int waitForTray()
+{
+ // on linux, the system tray may not be available immediately after logging in,
+ // so keep retrying but give up after a short time.
+ int trayAttempts = 0;
+ while (true)
+ {
+ if (QSystemTrayIcon::isSystemTrayAvailable())
+ {
+ break;
+ }
+
+ if (++trayAttempts > TRAY_RETRY_COUNT)
+ {
+ QMessageBox::critical(NULL, "Barrier",
+ QObject::tr("System tray is unavailable, don't close your window."));
+ return true;
+ }
+
+ QThreadImpl::msleep(TRAY_RETRY_WAIT);
+ }
+ return true;
+}
+
+#if defined(Q_OS_MAC)
+bool checkMacAssistiveDevices()
+{
+#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 // mavericks
+
+ // new in mavericks, applications are trusted individually
+ // with use of the accessibility api. this call will show a
+ // prompt which can show the security/privacy/accessibility
+ // tab, with a list of allowed applications. barrier should
+ // show up there automatically, but will be unchecked.
+
+ if (AXIsProcessTrusted()) {
+ return true;
+ }
+
+ const void* keys[] = { kAXTrustedCheckOptionPrompt };
+ const void* trueValue[] = { kCFBooleanTrue };
+ CFDictionaryRef options = CFDictionaryCreate(NULL, keys, trueValue, 1, NULL, NULL);
+
+ bool result = AXIsProcessTrustedWithOptions(options);
+ CFRelease(options);
+ return result;
+
+#else
+
+ // now deprecated in mavericks.
+ bool result = AXAPIEnabled();
+ if (!result) {
+ QMessageBox::information(
+ NULL, "Barrier",
+ "Please enable access to assistive devices "
+ "System Preferences -> Security & Privacy -> "
+ "Privacy -> Accessibility, then re-open Barrier.");
+ }
+ return result;
+
+#endif
+}
+#endif