diff --git a/CMakeLists.txt b/CMakeLists.txt index 4fc499c..c7cbb29 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ set(META_VERSION_MAJOR 1) set(META_VERSION_MINOR 4) set(META_VERSION_PATCH 0) set(META_RELEASE_DATE "2023-03-07") -set(META_SOVERSION 5) +set(META_SOVERSION 6) set(META_ADD_DEFAULT_CPP_UNIT_TEST_APPLICATION ON) project(${META_PROJECT_NAME}) diff --git a/README.md b/README.md index 3f1950f..f8e801e 100644 --- a/README.md +++ b/README.md @@ -506,6 +506,8 @@ It is possible to turn on logging of the underlying library by setting environme * `SYNCTHING_PORT`: override the port of the Syncthing test instance spawned when running tests * `SYNCTHINGTRAY_SYSTEMD_USER_UNIT`: override the name of the systemd user-unit checked by the wizard's setup detection +* `SYNCTHINGWIDGETS_CHROMIUM_BASED_BROWSER`: override the path of the Chromium-based browser to open + Syncthing in app mode * `LIB_SYNCTHING_CONNECTOR_USE_DEPRECATED_ROUTES`: change whether to use deprecated routes (enabled by default for compatibility with older Syncthing versions, set to `0` to change the behavior) diff --git a/plasmoid/lib/settingsdialog.cpp b/plasmoid/lib/settingsdialog.cpp index da9c0a0..5d6a4d5 100644 --- a/plasmoid/lib/settingsdialog.cpp +++ b/plasmoid/lib/settingsdialog.cpp @@ -132,15 +132,17 @@ SettingsDialog::SettingsDialog(Plasmoid::SyncthingApplet &applet) categories << category; // most startup options don't make much sense for a Plasmoid, so merge webview with startup - auto *const webViewPage = new WebViewOptionPage; - webViewPage->widget()->setWindowTitle(QCoreApplication::translate("Plasmoid::SettingsDialog", "Web view")); + auto *const generalWebViewPage = new GeneralWebViewOptionPage; + generalWebViewPage->widget()->setWindowTitle(QCoreApplication::translate("Plasmoid::SettingsDialog", "General web view settings")); + auto *const builtinWebViewPage = new BuiltinWebViewOptionPage; + builtinWebViewPage->widget()->setWindowTitle(QCoreApplication::translate("Plasmoid::SettingsDialog", "Built-in web view")); #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD auto *const systemdPage = new SystemdOptionPage; #endif category = new OptionCategory; category->setDisplayName(QCoreApplication::translate("Plasmoid::SettingsDialog", "Extras")); - category->assignPages({ webViewPage + category->assignPages({ generalWebViewPage, builtinWebViewPage #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD , systemdPage diff --git a/plasmoid/lib/syncthingapplet.cpp b/plasmoid/lib/syncthingapplet.cpp index d6c55a7..e1930fe 100644 --- a/plasmoid/lib/syncthingapplet.cpp +++ b/plasmoid/lib/syncthingapplet.cpp @@ -84,9 +84,7 @@ SyncthingApplet::SyncthingApplet(QObject *parent, const QVariantList &data) , m_settingsDlg(nullptr) , m_wizard(nullptr) , m_imageProvider(nullptr) -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW , m_webViewDlg(nullptr) -#endif , m_currentConnectionConfig(-1) , m_hasInternalErrors(false) , m_initialized(false) @@ -417,22 +415,19 @@ void SyncthingApplet::concludeWizard(const QString &errorMessage) void SyncthingApplet::showWebUI() { + auto *const dlg = QtGui::showWebUI(m_connection.syncthingUrl(), currentConnectionConfig(), m_webViewDlg); #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW - if (Settings::values().webView.disabled) { -#endif - QDesktopServices::openUrl(m_connection.syncthingUrl()); -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW - } else { - if (!m_webViewDlg) { - m_webViewDlg = new WebViewDialog; - if (const auto *connectionConfig = currentConnectionConfig()) { - m_webViewDlg->applySettings(*connectionConfig, true); - } - connect(m_webViewDlg, &WebViewDialog::destroyed, this, &SyncthingApplet::handleWebViewDeleted); - } - m_webViewDlg->show(); - m_webViewDlg->activateWindow(); + if (!dlg) { + return; } + if (!m_webViewDlg) { + m_webViewDlg = dlg; + connect(m_webViewDlg, &WebViewDialog::destroyed, this, &SyncthingApplet::handleWebViewDeleted); + } + m_webViewDlg->show(); + m_webViewDlg->activateWindow(); +#else + Q_UNUSED(dlg) #endif } @@ -588,12 +583,10 @@ void SyncthingApplet::handleAboutDialogDeleted() m_aboutDlg = nullptr; } -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW void SyncthingApplet::handleWebViewDeleted() { m_webViewDlg = nullptr; } -#endif void SyncthingApplet::handleNewNotification(DateTime when, const QString &msg) { diff --git a/plasmoid/lib/syncthingapplet.h b/plasmoid/lib/syncthingapplet.h index d378afc..34c7973 100644 --- a/plasmoid/lib/syncthingapplet.h +++ b/plasmoid/lib/syncthingapplet.h @@ -35,7 +35,11 @@ class IconManager; } // namespace Data namespace QtGui { +#ifdef SYNCTHINGWIDGETS_NO_WEBVIEW +using WebViewDialog = void; +#else class WebViewDialog; +#endif class Wizard; } // namespace QtGui @@ -181,9 +185,7 @@ private Q_SLOTS: void handleDirStatisticsChanged(); void handleErrorsCleared(); void handleAboutDialogDeleted(); -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW void handleWebViewDeleted(); -#endif void handleNewNotification(CppUtilities::DateTime when, const QString &msg); void handleSystemdServiceError(const QString &context, const QString &name, const QString &message); #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD @@ -222,9 +224,7 @@ private: QtGui::DBusStatusNotifier m_dbusNotifier; std::vector m_notifications; QtForkAwesome::QuickImageProvider *m_imageProvider; -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW QtGui::WebViewDialog *m_webViewDlg; -#endif int m_currentConnectionConfig; bool m_hasInternalErrors; bool m_initialized; diff --git a/plasmoid/translations/syncthingplasmoid_de_DE.ts b/plasmoid/translations/syncthingplasmoid_de_DE.ts index f1c153d..d0f66bb 100644 --- a/plasmoid/translations/syncthingplasmoid_de_DE.ts +++ b/plasmoid/translations/syncthingplasmoid_de_DE.ts @@ -274,11 +274,20 @@ - Web view - Weboberfläche + General web view settings + Allgemeine Webanzeigeneinstellungen - + + Built-in web view + Eingebaute Webanzeige + + + Web view + Weboberfläche + + + Extras @@ -299,22 +308,22 @@ Plasmoid::SyncthingApplet - + About Über Syncthing Plasmoid - + New notifications Neue Benachrichtigungen - + Unable to establish connection to Syncthing. Verbindung zu Syncthing kann nicht hergestellt werden. - + D-Bus error - unable to D-Bus-Fehler bei Aktion diff --git a/plasmoid/translations/syncthingplasmoid_en_US.ts b/plasmoid/translations/syncthingplasmoid_en_US.ts index 3b7b0fd..a6aca3c 100644 --- a/plasmoid/translations/syncthingplasmoid_en_US.ts +++ b/plasmoid/translations/syncthingplasmoid_en_US.ts @@ -212,11 +212,16 @@ - Web view + General web view settings - + + Built-in web view + + + + Extras @@ -237,22 +242,22 @@ Plasmoid::SyncthingApplet - + About - + New notifications - + Unable to establish connection to Syncthing. - + D-Bus error - unable to diff --git a/syncthingwidgets/CMakeLists.txt b/syncthingwidgets/CMakeLists.txt index 9c2f9dd..214bbbe 100644 --- a/syncthingwidgets/CMakeLists.txt +++ b/syncthingwidgets/CMakeLists.txt @@ -51,7 +51,8 @@ set(WIDGETS_UI_FILES settings/autostartoptionpage.ui settings/launcheroptionpage.ui settings/systemdoptionpage.ui - settings/webviewoptionpage.ui + settings/generalwebviewoptionpage.ui + settings/builtinwebviewoptionpage.ui settings/mainconfigwizardpage.ui settings/autostartwizardpage.ui settings/applywizardpage.ui) diff --git a/syncthingwidgets/settings/webviewoptionpage.ui b/syncthingwidgets/settings/builtinwebviewoptionpage.ui similarity index 77% rename from syncthingwidgets/settings/webviewoptionpage.ui rename to syncthingwidgets/settings/builtinwebviewoptionpage.ui index 393556f..cbc0f96 100644 --- a/syncthingwidgets/settings/webviewoptionpage.ui +++ b/syncthingwidgets/settings/builtinwebviewoptionpage.ui @@ -1,7 +1,7 @@ - QtGui::WebViewOptionPage - + QtGui::BuiltinWebViewOptionPage + 0 @@ -9,7 +9,7 @@ - General + Built-in web view @@ -17,27 +17,13 @@ - - - Usage - - - - - - - Disable web view (open regular web browser instead) - - - - Zoom factor - + QAbstractSpinBox::PlusMinus @@ -53,14 +39,14 @@ - + Hiding - + Keep web view running when currently not shown diff --git a/syncthingwidgets/settings/generalwebviewoptionpage.ui b/syncthingwidgets/settings/generalwebviewoptionpage.ui new file mode 100644 index 0000000..d41fd36 --- /dev/null +++ b/syncthingwidgets/settings/generalwebviewoptionpage.ui @@ -0,0 +1,52 @@ + + + QtGui::GeneralWebViewOptionPage + + + + 0 + 0 + + + + General + + + + + + + + + Open Syncthing's UI via + + + + + + Syncthing Tray's built-in web view + + + + + + + Tab in the default web browser + + + + + + + Chromium-based browser in "app mode" + + + + + + + + + + + diff --git a/syncthingwidgets/settings/settings.cpp b/syncthingwidgets/settings/settings.cpp index 9d99c4c..805d365 100644 --- a/syncthingwidgets/settings/settings.cpp +++ b/syncthingwidgets/settings/settings.cpp @@ -410,7 +410,11 @@ bool restore() #if defined(SYNCTHINGWIDGETS_USE_WEBENGINE) || defined(SYNCTHINGWIDGETS_USE_WEBKIT) settings.beginGroup(QStringLiteral("webview")); auto &webView = v.webView; - webView.disabled = settings.value(QStringLiteral("disabled"), webView.disabled).toBool(); + if (auto mode = settings.value(QStringLiteral("mode")); mode.isValid()) { + webView.mode = static_cast(mode.toInt()); + } else if (auto disabled = settings.value(QStringLiteral("disabled")); disabled.isValid()) { + webView.mode = disabled.toBool() ? WebView::Mode::Browser : WebView::Mode::Builtin; + } webView.zoomFactor = settings.value(QStringLiteral("zoomFactor"), webView.zoomFactor).toDouble(); webView.geometry = settings.value(QStringLiteral("geometry")).toByteArray(); webView.keepRunning = settings.value(QStringLiteral("keepRunning"), webView.keepRunning).toBool(); @@ -529,7 +533,8 @@ bool save() #if defined(SYNCTHINGWIDGETS_USE_WEBENGINE) || defined(SYNCTHINGWIDGETS_USE_WEBKIT) settings.beginGroup(QStringLiteral("webview")); const auto &webView = v.webView; - settings.setValue(QStringLiteral("disabled"), webView.disabled); + settings.setValue(QStringLiteral("mode"), static_cast(webView.mode)); + settings.setValue(QStringLiteral("disabled"), webView.mode == WebView::Mode::Browser); settings.setValue(QStringLiteral("zoomFactor"), webView.zoomFactor); settings.setValue(QStringLiteral("geometry"), webView.geometry); settings.setValue(QStringLiteral("keepRunning"), webView.keepRunning); diff --git a/syncthingwidgets/settings/settings.h b/syncthingwidgets/settings/settings.h index 9e3ac07..a75559f 100644 --- a/syncthingwidgets/settings/settings.h +++ b/syncthingwidgets/settings/settings.h @@ -141,14 +141,16 @@ struct SYNCTHINGWIDGETS_EXPORT Systemd { }; #endif -#if defined(SYNCTHINGWIDGETS_USE_WEBENGINE) || defined(SYNCTHINGWIDGETS_USE_WEBKIT) struct SYNCTHINGWIDGETS_EXPORT WebView { - bool disabled = false; + enum class Mode { Builtin, Browser, Command }; + Mode mode; + QString customCommand; +#if defined(SYNCTHINGWIDGETS_USE_WEBENGINE) || defined(SYNCTHINGWIDGETS_USE_WEBKIT) double zoomFactor = 1.0; QByteArray geometry; bool keepRunning = true; -}; #endif +}; struct SYNCTHINGWIDGETS_EXPORT Settings { bool firstLaunch = false; @@ -173,9 +175,7 @@ struct SYNCTHINGWIDGETS_EXPORT Settings { #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD Systemd systemd; #endif -#if defined(SYNCTHINGWIDGETS_USE_WEBENGINE) || defined(SYNCTHINGWIDGETS_USE_WEBKIT) WebView webView; -#endif QtUtilities::QtSettings qt; void apply(Data::SyncthingNotifier ¬ifier) const; diff --git a/syncthingwidgets/settings/settingsdialog.cpp b/syncthingwidgets/settings/settingsdialog.cpp index 26e3c20..82280a7 100644 --- a/syncthingwidgets/settings/settingsdialog.cpp +++ b/syncthingwidgets/settings/settingsdialog.cpp @@ -26,7 +26,8 @@ #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD #include "ui_systemdoptionpage.h" #endif -#include "ui_webviewoptionpage.h" +#include "ui_builtinwebviewoptionpage.h" +#include "ui_generalwebviewoptionpage.h" // use meta-data of syncthingtray application here #include "resources/../../tray/resources/config.h" @@ -1368,45 +1369,91 @@ void SystemdOptionPage::updateColors() } #endif -// WebViewOptionPage -WebViewOptionPage::WebViewOptionPage(QWidget *parentWidget) - : WebViewOptionPageBase(parentWidget) +// GeneralWebViewOptionPage +GeneralWebViewOptionPage::GeneralWebViewOptionPage(QWidget *parentWidget) + : GeneralWebViewOptionPageBase(parentWidget) { } -WebViewOptionPage::~WebViewOptionPage() +GeneralWebViewOptionPage::~GeneralWebViewOptionPage() +{ +} + +QWidget *GeneralWebViewOptionPage::setupWidget() +{ + auto *const widget = GeneralWebViewOptionPageBase::setupWidget(); +#ifdef SYNCTHINGWIDGETS_NO_WEBVIEW + ui()->builtinRadioButton->setEnabled(false); +#endif + return widget; +} + +bool GeneralWebViewOptionPage::apply() +{ + auto &webView = values().webView; + if (ui()->builtinRadioButton->isChecked()) { + webView.mode = ::Settings::WebView::Mode::Builtin; + } else if (ui()->browserRadioButton->isChecked()) { + webView.mode = ::Settings::WebView::Mode::Browser; + } else if (ui()->appModeRadioButton->isChecked()) { + webView.mode = ::Settings::WebView::Mode::Command; + } + return true; +} + +void GeneralWebViewOptionPage::reset() +{ + const auto &webView = values().webView; + switch (webView.mode) { + case ::Settings::WebView::Mode::Builtin: + ui()->builtinRadioButton->setChecked(true); + break; + case ::Settings::WebView::Mode::Browser: + ui()->browserRadioButton->setChecked(true); + break; + case ::Settings::WebView::Mode::Command: + ui()->appModeRadioButton->setChecked(true); + break; + } +} + +// BuiltinWebViewOptionPage +BuiltinWebViewOptionPage::BuiltinWebViewOptionPage(QWidget *parentWidget) + : BuiltinWebViewOptionPageBase(parentWidget) +{ +} + +BuiltinWebViewOptionPage::~BuiltinWebViewOptionPage() { } #ifdef SYNCTHINGWIDGETS_NO_WEBVIEW -QWidget *WebViewOptionPage::setupWidget() +QWidget *BuiltinWebViewOptionPage::setupWidget() { auto *label = new QLabel; - label->setWindowTitle(QCoreApplication::translate("QtGui::WebViewOptionPage", "General")); + label->setWindowTitle(QCoreApplication::translate("QtGui::BuiltinWebViewOptionPage", "Built-in web view")); label->setAlignment(Qt::AlignCenter); - label->setText(QCoreApplication::translate("QtGui::WebViewOptionPage", + label->setText(QCoreApplication::translate("QtGui::BuiltinWebViewOptionPage", "Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit " "or Qt WebEngine.\nThe Web UI will be opened in the default web browser instead.")); return label; } #endif -bool WebViewOptionPage::apply() +bool BuiltinWebViewOptionPage::apply() { #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW auto &webView = values().webView; - webView.disabled = ui()->disableCheckBox->isChecked(); webView.zoomFactor = ui()->zoomDoubleSpinBox->value(); webView.keepRunning = ui()->keepRunningCheckBox->isChecked(); #endif return true; } -void WebViewOptionPage::reset() +void BuiltinWebViewOptionPage::reset() { #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW const auto &webView = values().webView; - ui()->disableCheckBox->setChecked(webView.disabled); ui()->zoomDoubleSpinBox->setValue(webView.zoomFactor); ui()->keepRunningCheckBox->setChecked(webView.keepRunning); #endif @@ -1443,7 +1490,7 @@ SettingsDialog::SettingsDialog(Data::SyncthingConnection *connection, QWidget *p category = new OptionCategory(this); category->setDisplayName(tr("Web view")); - category->assignPages({ new WebViewOptionPage }); + category->assignPages({ new GeneralWebViewOptionPage, new BuiltinWebViewOptionPage }); category->setIcon( QIcon::fromTheme(QStringLiteral("internet-web-browser"), QIcon(QStringLiteral(":/icons/hicolor/scalable/apps/internet-web-browser.svg")))); categories << category; @@ -1515,6 +1562,7 @@ INSTANTIATE_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, LauncherOptionPage) #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD INSTANTIATE_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, SystemdOptionPage) #endif +INSTANTIATE_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, GeneralWebViewOptionPage) #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW -INSTANTIATE_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, WebViewOptionPage) +INSTANTIATE_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, BuiltinWebViewOptionPage) #endif diff --git a/syncthingwidgets/settings/settingsdialog.h b/syncthingwidgets/settings/settingsdialog.h index 99b0467..24dbcc8 100644 --- a/syncthingwidgets/settings/settingsdialog.h +++ b/syncthingwidgets/settings/settingsdialog.h @@ -162,10 +162,11 @@ QMetaObject::Connection m_enabledChangedConn; END_DECLARE_OPTION_PAGE #endif +DECLARE_UI_FILE_BASED_OPTION_PAGE_CUSTOM_SETUP(GeneralWebViewOptionPage) #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW -DECLARE_UI_FILE_BASED_OPTION_PAGE(WebViewOptionPage) +DECLARE_UI_FILE_BASED_OPTION_PAGE(BuiltinWebViewOptionPage) #else -DECLARE_OPTION_PAGE(WebViewOptionPage) +DECLARE_OPTION_PAGE(BuiltinWebViewOptionPage) #endif class SYNCTHINGWIDGETS_EXPORT SettingsDialog : public QtUtilities::SettingsDialog { @@ -198,8 +199,9 @@ DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, LauncherOptionPage) #ifdef LIB_SYNCTHING_CONNECTOR_SUPPORT_SYSTEMD DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, SystemdOptionPage) #endif +DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, GeneralWebViewOptionPage) #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW -DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, WebViewOptionPage) +DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, BuiltinWebViewOptionPage) #endif #endif // SETTINGS_DIALOG_H diff --git a/syncthingwidgets/translations/syncthingwidgets_cs_CZ.ts b/syncthingwidgets/translations/syncthingwidgets_cs_CZ.ts index b261c30..fd2d142 100644 --- a/syncthingwidgets/translations/syncthingwidgets_cs_CZ.ts +++ b/syncthingwidgets/translations/syncthingwidgets_cs_CZ.ts @@ -9,6 +9,14 @@ + + QtGui + + + Unable to open Syncthing UI via "%1": %2 + + + QtGui::AppearanceOptionPage @@ -183,127 +191,127 @@ - + Apply - + Apply selected configuration - + Review the summary of the configuration changes before applying them - + Summary: - + Keep %1 %2 - + enabled - + disabled - + %1 %2 - + Enable - + Disable - + Keep connection and launcher configuration as-is - + Configure Syncthing Tray to use the currently running Syncthing instance - + Do <i>not</i> change how Syncthing is launched - + Start Syncthing via Syncthing Tray's launcher - + executable from PATH as separate process, "%1" - + built-in Syncthing library, "%1" - + Start Syncthing by enabling and starting its systemd unit - + Using user unit "%1" - + Using system unit "%1" - + systemd integration - + autostart of Syncthing Tray - + Further information: - + Click on "Show details from setup detection" for further details. - + If you want to do amendments, you can head back one or more steps. - + If you abort now, nothing will be changed. @@ -321,27 +329,27 @@ - + This is achieved by adding a *.desktop file under <i>~/.config/autostart</i> so the setting only affects the current user. - + This is achieved by adding a registry key under <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> so the setting only affects the current user. Note that the startup entry is invalidated when moving <i>syncthingtray.exe</i>. - + This is achieved by adding a *.plist file under <i>~/Library/LaunchAgents</i> so the setting only affects the current user. - + This feature has not been implemented for your platform (yet). - + unable to modify startup entry @@ -384,16 +392,46 @@ - + Configure autostart - + Select whether to start Syncthing Tray automatically + + QtGui::BuiltinWebViewOptionPage + + + Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. +The Web UI will be opened in the default web browser instead. + + + + + + Built-in web view + + + + + Zoom factor + + + + + Hiding + + + + + Keep web view running when currently not shown + + + QtGui::ConnectionOptionPage @@ -575,7 +613,7 @@ - + Auto-detected for local instance @@ -585,22 +623,22 @@ - + Select Syncthing config file - + Unable to parse the Syncthing config file. - + Unable to load specified certificate "%1". - + Instance %1 @@ -667,47 +705,47 @@ QtGui::DetectionWizardPage - + Checking current Syncthing setup - + Checking Syncthing configuration and whether Syncthing is already running or can be started … - + Check again - + Re-visit setup detection - + You might trigger checking the Syncthing setup again - + It looks like Syncthing has not been running on this system before as its configuration cannot be found. Is that correct? - + Yes, continue configuration - + No, let me select Syncthing's configuration file manually - + Select Syncthing's configuration file @@ -752,46 +790,74 @@ QtGui::FinalWizardPage - + Waiting for configuration wizard completed - + Changes are being applied - + Configuration wizard completed - + All changes have been applied - + <p>The configuration has been changed successfully. The way Syncthing Tray connects to and starts Syncthing has not changed, though. You may configure this manually in the settings.</p> - + <p>The configuration has been changed successfully. You can close the wizard and <a href="openSyncthing">open Syncthing</a> to pair remote devices and add folders for sharing. If you need further help, read the <a href="openDocs">documentation to get started</a>.</p><p>To initiate the pairing from another device, the device ID of this Syncthing device is displayed below.</p> - + Not all changes could be applied - + You may try to head back one or more steps and try again or finish the wizard and configure Syncthing Tray manually. + + QtGui::GeneralWebViewOptionPage + + + General + + + + + Open Syncthing's UI via + + + + + Syncthing Tray's built-in web view + + + + + Tab in the default web browser + + + + + Chromium-based browser in "app mode" + + + QtGui::IconsOptionPage @@ -868,47 +934,47 @@ QtGui::IconsOptionPageBase - + UI icons - + System icons - + These icon settings are used within Syncthing Tray's UI. - + These icon settings are used for the system tray icon and the notifications. - + Use same settings as for UI icons - + Colorful background with gradient (default) - + Transparent background and dark foreground (for bright themes) - + Transparent background and bright foreground (for dark themes) - + %1 px (scaled to %2 px) @@ -1037,7 +1103,7 @@ - + Stop launched instance @@ -1052,82 +1118,82 @@ - + %1-launcher - + Launch %1 when starting the tray icon - + %1 executable - + %1 log (interleaved stdout/stderr) - + Restore default - + Show Syncthing releases/downloads - + %1 exited with exit code %2 - + %1 crashed with exit code %2 - + failed to start (e.g. executable does not exist or not permission error) - + process crashed - + timeout error - + read error - + write error - + unknown process error - + An error occurred when running %1: %2 - + Kill launched instance @@ -1135,37 +1201,37 @@ QtGui::MainConfigWizardPage - + Select what configuration to apply - + Something when wrong when checking the Syncthing setup. - + Show details from setup detection - + Systemd - + <b>The Syncthing config could be located under "%1" but it seems invalid/incomplete.</b> Hence Syncthing is assumed to be not running. - + Looks like Syncthing is not running yet. You can launch it via %1. - + and @@ -1215,17 +1281,17 @@ - + Looks like Syncthing is already running and Syncthing Tray can be configured accordingly automatically. - + Syncthing Tray's launcher - + Looks like Syncthing is not running yet and needs to be installed before Syncthing Tray can be configured. @@ -1318,7 +1384,7 @@ - + Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe. @@ -1344,37 +1410,37 @@ QtGui::SettingsDialog - + Tray - + Web view - + Startup - + additional tool - + Extra launcher - + Settings - + Start wizard @@ -1535,8 +1601,8 @@ This dialog closes automatically when the process finally terminates. - - + + unknown @@ -1576,27 +1642,27 @@ This dialog closes automatically when the process finally terminates. - + Reload all unit files - + It is not possible to show the start/stop button for the systemd service and the internal launcher at the same time. The systemd service precedes. - + It is not possible to consider the systemd service and the internal launcher for reconnects at the same time. The systemd service precedes. - + specified unit is either inactive or doesn't exist - + since @@ -1621,120 +1687,80 @@ This dialog closes automatically when the process finally terminates. QtGui::WebViewDialog - + Syncthing - - QtGui::WebViewOptionPage - - - - General - - - - - Usage - - - - - Disable web view (open regular web browser instead) - - - - - Zoom factor - - - - - Hiding - - - - - Keep web view running when currently not shown - - - - - Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. -The Web UI will be opened in the default web browser instead. - - - QtGui::WelcomeWizardPage - + Welcome to Syncthing Tray - + It looks like you're launching Syncthing Tray for the first time. - + You must configure how to connect to Syncthing and how to launch Syncthing (if that's wanted) when using Syncthing Tray the first time. - + Wizard's start page - + This wizard will help you configuring Syncthing Tray. - + Start guided setup - + Allows to configure Syncthing Tray automatically for the local Syncthing instance and helps you starting Syncthing if wanted. - + Configure connection and launcher settings manually - + Head back to settings to configure connection and launcher manually - + Note that the connection settings allow importing URL, credentials and API-key from the local Syncthing configuration. - + Show Syncthing's documentation - + It contains general information about configuring Syncthing. - + Show Syncthing Tray's README - + It contains documentation about this GUI integration specifically. @@ -1742,192 +1768,192 @@ The Web UI will be opened in the default web browser instead. QtGui::Wizard - + Setup wizard - - + The internal launcher has not been initialized. - + The service handler has not been initialized. - + Unable to locate Syncthing config file. - + Located Syncthing config file: - + Syncthing config file looks ok. - + Syncthing config file looks invalid/incomplete. - + Syncthing configuration: - + Could connect to Syncthing under: - + Syncthing version: - + Syncthing device ID: - + Syncthing status: - + Additional Syncthing status info: - + Autostart: - + Currently %1 - + enabled - + disabled - + The Syncthing process exited prematurely. - + The Syncthing service stopped prematurely. - + Ran into timeout while waiting for Syncthing to create config file. Maybe Syncthing created its config file under an unexpected location. - + Checkout Syncthing's log for details. - + It can be accessed within the <a href="openLauncherSettings">launcher settings</a>. - + It is normally written to the system journal (and can be accessed via e.g. journalctl). - + API connection: - + API connection errors: - + State of user unit file "%1": - + State of system unit file "%1": - + Systemd: - + Could NOT connect to Syncthing under: - + No available - + Could test-launch Syncthing successfully, exit code: - + Syncthing version returned from test-launch: - + Unable to test-launch Syncthing: - + Built-in Syncthing available: - + yes - + no - + Launcher: - + Details from setup detection - @@ -1935,7 +1961,7 @@ The Web UI will be opened in the default web browser instead. Settings::Connection - + Backup of %1 (created by wizard) diff --git a/syncthingwidgets/translations/syncthingwidgets_de_DE.ts b/syncthingwidgets/translations/syncthingwidgets_de_DE.ts index 4a9bcf9..a7780cd 100644 --- a/syncthingwidgets/translations/syncthingwidgets_de_DE.ts +++ b/syncthingwidgets/translations/syncthingwidgets_de_DE.ts @@ -95,6 +95,11 @@ Settings Einstellungen + + + Unable to open Syncthing UI via "%1": %2 + Die Syncthing-Oberfläche konnte nicht via "%1" geöffnet werden: %2 + QtGui::AppearanceOptionPage @@ -278,52 +283,52 @@ Allgemein - + Apply Anwenden - + Apply selected configuration Ausgewählte Konfiguration anwenden - + Review the summary of the configuration changes before applying them Überprüfe die Zusammenfassung der Konfigurationsänderungen vor dem Anwenden - + Summary: Zusammenfassung: - + Keep %1 %2 Lasse %1 %2 - + enabled aktiviert - + disabled deaktiviert - + %1 %2 %1 %2 - + Enable Aktiviere - + Disable Deaktiviere @@ -332,77 +337,77 @@ Behalte vorhandene Verbindungs- und Startereinstellungen - + Keep connection and launcher configuration as-is Lasse vorhandene Verbindungs- und Startereinstellungen wie sie sind - + Configure Syncthing Tray to use the currently running Syncthing instance Konfiguriere Syncthing Tray die aktuell laufende Syncthing-Instanz zu verwenden - + Do <i>not</i> change how Syncthing is launched Verändere <i>nicht</i> wie Syncthing gestartet wird - + Start Syncthing via Syncthing Tray's launcher Starte Syncthing mit Syncthing Tray's Starter - + executable from PATH as separate process, "%1" führe die Syncthing-Binary vom PATH als externen Prozess aus, "%1" - + built-in Syncthing library, "%1" verwende eingebaute Syncthing-Bibliothek, "%1" - + Start Syncthing by enabling and starting its systemd unit Starte Syncthing durch Aktivieren und Starten der systemd-Unit - + Using user unit "%1" Verwende Benutzer-Unit "%1" - + Using system unit "%1" Verwende System-Unit "%1" - + systemd integration systemd-Integration - + autostart of Syncthing Tray Autostart von Syncthing Tray - + Further information: Weitere Informationen: - + Click on "Show details from setup detection" for further details. Klicke auf "Zeige Details der Einrichtungserkennung" für weitere Details. - + If you want to do amendments, you can head back one or more steps. Wenn du Änderungen vornehmen willst, kannst du einen order mehrere Schritte zurück gehen. - + If you abort now, nothing will be changed. Wenn du jetzt abbrichst, werden keine Änderungen vorgenommen. @@ -420,27 +425,27 @@ Tray-Icon beim Starten der Desktopumgebung automatisch starten - + This is achieved by adding a *.desktop file under <i>~/.config/autostart</i> so the setting only affects the current user. Durch das Hinzufügen einer *.desktop-Datei unter <i>~/.config/autostart</i> realisiert - betrifft also nur den aktuellen Benutzer. - + This is achieved by adding a registry key under <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> so the setting only affects the current user. Note that the startup entry is invalidated when moving <i>syncthingtray.exe</i>. Durch das Hinzufügen eines Registry-Schlüssels unter <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> realisiert - betrifft also nur den aktuellen Benutzer. - + This is achieved by adding a *.plist file under <i>~/Library/LaunchAgents</i> so the setting only affects the current user. Durch das Hinzufügen einer *.plist-Datei unter <i>~/Library/LaunchAgents</i> realisiert - betrifft also nur den aktuellen Benutzer. - + This feature has not been implemented for your platform (yet). Diese Funktion wurde für die aktuelle Plattform nicht nicht implementiert. - + unable to modify startup entry Fehler beim aktualisieren des Auto-Start-Eintrags @@ -487,16 +492,84 @@ Diese Einstellung betrifft Syncthing Tray. Wenn Syncthing über Syncthing Tray gestartet wird, wirkt sie sich jedoch auch auf Syncthing selbst aus. - + Configure autostart Konfiguriere den Autostart - + Select whether to start Syncthing Tray automatically Wähle, ob Syncthing Tray automatisch gestartet werden soll + + QtGui::BuiltinWebViewDialog + + General + Allgemein + + + Usage + Verwendung + + + Disable web view (open regular web browser instead) + Eingebaute Anzeige deaktivieren (stattdessen Standardbrowser verwenden) + + + Zoom factor + Zoom-Faktor + + + Hiding + Schließen + + + Keep web view running when currently not shown + Lasse Weboberfläche im Hintgergrund weiter offen, wenn Fenster nicht offen + + + Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. +The Web UI will be opened in the default web browser instead. + Syncthing Tray wurde nicht mit Unterstützung für die eingebaute Anzeige der Weboberfläche unter Verwendung von Qt WebKit oder Qt WebEngine gebaut. +Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet. + + + + QtGui::BuiltinWebViewOptionPage + + General + Allgemein + + + + Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. +The Web UI will be opened in the default web browser instead. + Syncthing Tray wurde nicht mit Unterstützung für die eingebaute Anzeige der Weboberfläche unter Verwendung von Qt WebKit oder Qt WebEngine gebaut. +Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet. + + + + + Built-in web view + Eingebaute Webanzeige + + + + Zoom factor + Zoom-Faktor + + + + Hiding + Schließen + + + + Keep web view running when currently not shown + Lasse Weboberfläche im Hintgergrund weiter offen, wenn Fenster nicht offen + + QtGui::ConnectionOptionPage @@ -678,7 +751,7 @@ nicht neu verbinden - + Auto-detected for local instance Kann für lokale Instanz automatisch ermittelt werden @@ -688,22 +761,22 @@ Konfigurationsdatei manuell wählen - + Select Syncthing config file Wähle die Syncthing-Konfigurationsdatei - + Unable to parse the Syncthing config file. Fehler beim Auslesen der Syncthing-Konfigurationsdatei. - + Unable to load specified certificate "%1". Fehler beim Auslesen des angegebenen Zertifikats: %1 - + Instance %1 Instanz %1 @@ -770,7 +843,7 @@ QtGui::DetectionWizardPage - + Checking current Syncthing setup Prüfe das aktuelle Syncthing-Setup @@ -779,42 +852,42 @@ Initialisierung … - + Checking Syncthing configuration and whether Syncthing is already running or can be started … Suche die Syncthing-Konfiguration und prüfe ob Syncthing bereits läuft oder gestartet werden kann … - + It looks like Syncthing has not been running on this system before as its configuration cannot be found. Is that correct? Es sieht so aus als wurde Syncthing auf dem System noch nicht ausgeführt, da die Syncthing-Konfiguration nicht gefunden werden konnte. Ist das richtig? - + Yes, continue configuration Ja, mache weiter mit der Konfiguration - + Check again Syncthing-Setup nochmals prüfen - + Re-visit setup detection Das Syncthing-Setup erneut überprüfen - + You might trigger checking the Syncthing setup again Du kannst das aktuelle Syncthing-Setup erneut überprüfen - + No, let me select Syncthing's configuration file manually Nein, Pfad der Syncthing-Konfiguration manuell wählen - + Select Syncthing's configuration file Wähle die Syncthing-Konfigurationsdatei @@ -862,32 +935,32 @@ QtGui::FinalWizardPage - + Waiting for configuration wizard completed Warte bis die Konfiguration abgeschlossen wurde - + Changes are being applied Änderungen werden angewendet - + Configuration wizard completed Der Konfigurationsassistent wurde abgeschlossen - + All changes have been applied Alle Änderungen wurden angewendet - + <p>The configuration has been changed successfully. The way Syncthing Tray connects to and starts Syncthing has not changed, though. You may configure this manually in the settings.</p> <p>Die Konfiguration wurde erfolgreich geändert. Wie sich Syncthing Tray mit Syncthing verbindet und wie Syncthing gestartet wird wurde jedoch nicht geändert. Du kannst das manuell in den Einstellungen konfigurieren.</p> - + <p>The configuration has been changed successfully. You can close the wizard and <a href="openSyncthing">open Syncthing</a> to pair remote devices and add folders for sharing. If you need further help, read the <a href="openDocs">documentation to get started</a>.</p><p>To initiate the pairing from another device, the device ID of this Syncthing device is displayed below.</p> <p>Die Konfiguration wurde erfolgreich geändert. Du kannst den Assistenten jetzt schließen und <a href="openSyncthing">Syncthing öffnen</a>, um entfernte Geräte hinzuzufügen und Verzeichnisse zu teilen. Für weitere Hilfe, lese die <a href="openDocs">Dokumentation für die Einrichtung von Syncthing</a>.</p><p>ID des aktuellen Geräts (um die Verbindung von einem anderen Gerät aus herzustellen):</p> @@ -896,16 +969,44 @@ Die Konfiguration wurde erfolgreich geändert. Du kannst den Assistenten jetzt schließen und <a href="openSyncthing">Syncthing öffnen</a>, um entfernte Geräte hinzuzufügen und Verzeichnisse zu teilen. Für weitere Hilfe, lese die <a href="openDocs">Dokumentation für die Einrichtung von Syncthing</a>. - + Not all changes could be applied Nicht alle Änderungen konnten angewendet werden - + You may try to head back one or more steps and try again or finish the wizard and configure Syncthing Tray manually. Du kannst einen oder mehrere Schritte zurück gehen, um es noch einmal zu versuchen. Alternativ kannst du den Assistenten auch schließen und Syncthing Tray manuell konfigurieren. + + QtGui::GeneralWebViewOptionPage + + + General + Allgemein + + + + Open Syncthing's UI via + Öffne die Syncthingoberfläche mit + + + + Syncthing Tray's built-in web view + der in Syncthing Tray eingebauten Webanzeige + + + + Tab in the default web browser + einem Tab im Standardwebbrowser + + + + Chromium-based browser in "app mode" + als "App" in einem auf Chromium basierenden Browser + + QtGui::IconsOptionPage @@ -982,7 +1083,7 @@ QtGui::IconsOptionPageBase - + UI icons UI-Icons @@ -991,7 +1092,7 @@ Diese Icon-Farben werden innerhalb der Oberfläche von Syncthing Tray verwendet. - + System icons System-Icons @@ -1004,37 +1105,37 @@ Die selben Farben wie für UI-Icons verwenden - + These icon settings are used within Syncthing Tray's UI. Diese Icon-Einstellungen werden innerhalb der Oberfläche von Syncthing Tray verwendet. - + These icon settings are used for the system tray icon and the notifications. Diese Icon-Einstellungen werden für das System-Tray-Icon und Benachrichtigungen verwendet. - + Use same settings as for UI icons Die selben Einstellungen wie für UI-Icons verwenden - + Colorful background with gradient (default) Hintergrund mit Farbverlauf (Standard) - + Transparent background and dark foreground (for bright themes) Transparenter Hintergrund und dunkler Vordergrund (für helle Themes) - + Transparent background and bright foreground (for dark themes) Transparenter Hintergrund und heller Vordergrund (für dunkle Themes) - + %1 px (scaled to %2 px) %1 px (skaliert zu %2 px) @@ -1180,7 +1281,7 @@ - + Stop launched instance Stoppen @@ -1195,12 +1296,12 @@ Log folgen - + %1-launcher %1-Starter - + Launch %1 when starting the tray icon Starte %1 beim Starten des Tray-Icons @@ -1209,72 +1310,72 @@ %1-Starter {1 ?} - + %1 executable Ausführbare Datei von %1 - + %1 log (interleaved stdout/stderr) Log von %1 (stdout/stderr) - + Restore default Auf Vorgabe zurücksetzen - + Show Syncthing releases/downloads Syncthing Releases/Downloads zeigen - + %1 exited with exit code %2 %1 wurde mit dem Statuscode %2 beendet - + %1 crashed with exit code %2 %1 ist mit dem Statuscode %2 abgestürzt - + failed to start (e.g. executable does not exist or not permission error) Start fehlgeschlagen (z. B. weil Programmdatei nicht existiert oder nicht ausführbar ist) - + process crashed Prozess ist abgestürzt - + timeout error Time-out - + read error Lesefehler - + write error Schreibfehler - + unknown process error unbekannter Fehler - + An error occurred when running %1: %2 Beim Ausführen von %1 ist ein Fehler aufgetreten: %2 - + Kill launched instance Töten @@ -1282,37 +1383,37 @@ QtGui::MainConfigWizardPage - + Select what configuration to apply Wähle, welche Einstellungen angewendet werden sollen - + Something when wrong when checking the Syncthing setup. Etwas ist beim Erkennen des Syncthing-Setups schiefgelaufen. - + Show details from setup detection Zeige Details der Einrichtungserkennung - + Systemd - + <b>The Syncthing config could be located under "%1" but it seems invalid/incomplete.</b> Hence Syncthing is assumed to be not running. <b>Die Syncthing-Konfiguration konnte unter "%1" gefunden werden, aber scheint ungültig/unvollständig zu sein.</b> Daher wird angenommen, dass Syncthing nicht läuft. - + Looks like Syncthing is not running yet. You can launch it via %1. Syncthing läuft noch nicht. Es kann mit %1 gestartet werden. - + and und @@ -1366,17 +1467,17 @@ nicht neu verbinden - + Looks like Syncthing is already running and Syncthing Tray can be configured accordingly automatically. Es sieht so aus, als würde Syncthing bereits laufen. Syncthing Tray kann automatisch konfiguriert werden, die laufende Syncthing-Instanz zu verwenden. - + Syncthing Tray's launcher Syncthing-Tray's Starter - + Looks like Syncthing is not running yet and needs to be installed before Syncthing Tray can be configured. Es sieht so aus, als würde Syncthing noch nicht laufen. Syncthing muss erst installiert werden, bevor Syncthing Tray konfiguriert werden kann. @@ -1473,7 +1574,7 @@ - + Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe. Benachrichtigungen via D-Bus wurden eingestellt, aber es scheint kein Daemon zu laufen der den Dienst bereitstellt. @@ -1499,12 +1600,12 @@ QtGui::SettingsDialog - + Web view - Weboberfläche + Webanzeige - + Startup Starten @@ -1513,27 +1614,27 @@ Zusatztool - + Tray - + Extra launcher Extra-Starter - + additional tool Zusatztool - + Settings Einstellungen - + Start wizard Einrichtungsassistenten öffnen @@ -1726,8 +1827,8 @@ Dieser Dialog schließt sich automatisch, wenn der Prozess beendet wird. - - + + unknown unbekannt @@ -1760,27 +1861,27 @@ Dieser Dialog schließt sich automatisch, wenn der Prozess beendet wird.Stoppen - + Reload all unit files Alle Unit-Dateien neu laden - + It is not possible to show the start/stop button for the systemd service and the internal launcher at the same time. The systemd service precedes. Es ist nicht möglich, den Start-/Stop-Button für den Systemd-Dienst und den internen Starter gleichzeitig anzugeigen. Wenn verfügbar, wird der Button den Systemd-Dienst kontrollieren. - + It is not possible to consider the systemd service and the internal launcher for reconnects at the same time. The systemd service precedes. Es ist nicht möglich, den Status des Systemd-Dienstes und den des internen Starters gleichzeitig für Verbindungsveruche einzubeziehen. Wenn verfügbar, wird der Status des Systemd-Dienstes verwendet. - + specified unit is either inactive or doesn't exist angegebene Unit entweder nicht geladen oder existiert nicht - + since seit @@ -1809,7 +1910,7 @@ Dieser Dialog schließt sich automatisch, wenn der Prozess beendet wird. QtGui::WebViewDialog - + Syncthing @@ -1817,42 +1918,28 @@ Dieser Dialog schließt sich automatisch, wenn der Prozess beendet wird. QtGui::WebViewOptionPage - - General - Allgemein + Allgemein - Usage - Verwendung + Verwendung - Disable web view (open regular web browser instead) - Eingebaute Anzeige deaktivieren (stattdessen Standardbrowser verwenden) + Eingebaute Anzeige deaktivieren (stattdessen Standardbrowser verwenden) - Zoom factor - Zoom-Faktor + Zoom-Faktor - Hiding - Schließen + Schließen - Keep web view running when currently not shown - Lasse Weboberfläche im Hintgergrund weiter offen, wenn Fenster nicht offen - - - - Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. -The Web UI will be opened in the default web browser instead. - Syncthing Tray wurde nicht mit Unterstützung für die eingebaute Anzeige der Weboberfläche unter Verwendung von Qt WebKit oder Qt WebEngine gebaut. -Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet. + Lasse Weboberfläche im Hintgergrund weiter offen, wenn Fenster nicht offen @@ -1866,12 +1953,12 @@ Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet.Es sieht so aus, als würdes du %1 zum erstem Mal starten. - + Welcome to Syncthing Tray Willkommen zu Syncthing Tray - + It looks like you're launching Syncthing Tray for the first time. Es sieht so aus, als würdes du Syncthing Tray zum erstem Mal starten. @@ -1880,57 +1967,57 @@ Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet.Vor der ersten Verwendung muss eingestellt werden, wie sich Syncthing Tray mit Syncthing verbinden soll und wie Syncthing gestartet werden soll (wenn gewünscht). Eine geführte/automatische Einrichtung ist noch in Arbeit, weshalb die manuelle Konfiguration im Moment die einzige Option ist. - + You must configure how to connect to Syncthing and how to launch Syncthing (if that's wanted) when using Syncthing Tray the first time. Vor der ersten Verwendung muss eingestellt werden, wie sich Syncthing Tray mit Syncthing verbinden soll und wie Syncthing gestartet werden soll (wenn gewünscht). - + Wizard's start page Startseite des Assistenten - + This wizard will help you configuring Syncthing Tray. Dieser Assistent kann helfen Syncthing Tray zu konfigurieren. - + Start guided setup Starte geführte Einrichtung - + Allows to configure Syncthing Tray automatically for the local Syncthing instance and helps you starting Syncthing if wanted. Ermöglicht es, Syncthing Tray automatisch für die lokale Syncthing-Instanz zu konfigurieren und Syncthing zu starten (wenn gewünscht). - + Configure connection and launcher settings manually Konfiguriere die Verbindungs- und Startereinstellungen manuell - + Head back to settings to configure connection and launcher manually Kehre zurück zum Einstellungs-Dialog, um die Verbindung und den Starter manuell zu konfigurieren - + Note that the connection settings allow importing URL, credentials and API-key from the local Syncthing configuration. Die Verbindungseinstellungen erlauben es die URL, Zugangsdaten und den API-Schlüssel der lokalen Instanz zu importieren. - + Show Syncthing's documentation Öffne die Syncthing-Dokumentation - + It contains general information about configuring Syncthing. Die Syncthing-Dokumentation enthält allgemeine Informationen über die Konfiguration von Syncthing. - + Show Syncthing Tray's README Öffne die RREADME von Syncthing Tray @@ -1939,7 +2026,7 @@ Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet.Öffne die RREADME von %1 - + It contains documentation about this GUI integration specifically. Die README ist die Dokumentation für diese GUI-Integration. @@ -1947,102 +2034,102 @@ Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet. QtGui::Wizard - + Setup wizard - Einrichtungsassistent - - + The internal launcher has not been initialized. Der Starter wurde nicht initialisiert. - + The service handler has not been initialized. Das Service-Management wurde nicht initialisiert. - + Unable to locate Syncthing config file. Die Syncthing-Konfigurationsdatei konnte nicht gefunden werden. - + Located Syncthing config file: Gefundene Syncthing-Konfigurationsdatei: - + Syncthing config file looks ok. Die Syncthing-Konfigurationsdatei sieht in Ordnung aus. - + Syncthing config file looks invalid/incomplete. Die Syncthing-Konfigurationsdatei sieht ungültig/unvollständig aus. - + Syncthing configuration: Syncthing-Konfiguration: - + Could connect to Syncthing under: Verbindung mit Syncthing konnte hergestellt werden unter: - + Syncthing version: Syncthing-Version: - + Syncthing device ID: Syncthing-Geräte-ID: - + Syncthing status: Syncthing-Status: - + Additional Syncthing status info: Zusätzliche Syncthing-Status-Information: - + Autostart: Auto-Start: - + Currently %1 Aktuell %1 - + enabled aktiviert - + disabled deaktiviert - + The Syncthing process exited prematurely. Der Syncthing-Prozess hat sich vorzeitig beendet. - + The Syncthing service stopped prematurely. Der Syncthing-Dienst has sich vorzeitig beendet. - + Ran into timeout while waiting for Syncthing to create config file. Maybe Syncthing created its config file under an unexpected location. Die Wartezeit, dass Syncthing eine Konfigurationsdatei anlegt, wurde überschritten. Vielleichtg hat Syncthing die Konfigurationsdatei an einem unerwarteten Ort angelegt. @@ -2051,92 +2138,92 @@ Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet.Die Wartezeit, dass Syncthing eine Konfigurationsdatei anlegt, wurde überschritten. Vielleichtg hat Syncthing die Konfigurationsdatei an einem unerwarteten Ort angelegt. - + Checkout Syncthing's log for details. Schaue in den Syncthing-Log für Details. - + It can be accessed within the <a href="openLauncherSettings">launcher settings</a>. Auf den Syncthing-Log kann über die <a href="openLauncherSettings">Starter-Einstellungen</a> zugegriffen werden. - + It is normally written to the system journal (and can be accessed via e.g. journalctl). Der Syncthing-Log wird normalerweise in das System-Journal geschrieben (auf das z. B. mittels "journalctl" zugegriffen werden kann). - + API connection: API-Verbindung: - + API connection errors: API-Verbindungsfehler: - + State of user unit file "%1": Status der Benutzer-Unit-Datei "%1": - + State of system unit file "%1": Status der System-Unit-Datei "%1": - + Systemd: Systemd: - + Could NOT connect to Syncthing under: Konnte sich NICHT mit Syncthing verbinden unter: - + No available Nicht verfügbar - + Could test-launch Syncthing successfully, exit code: Konnte Syncthing erfolgreich zum Test starten, Exit-Code: - + Syncthing version returned from test-launch: Syncthing-Version, die vom Test-Start zurückgegeben wurde: - + Unable to test-launch Syncthing: Kann Syncthing nicht test-starten: - + Built-in Syncthing available: Eingebaute Syncthing-Bibliothek ist verfügbar: - + yes ja - + no nein - + Launcher: Starter: - + Details from setup detection - Details der Einrichtungserkennung @@ -2144,7 +2231,7 @@ Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet. Settings::Connection - + Backup of %1 (created by wizard) Sicherung von %1 (vom Einrichtungsassistenten erstellt) diff --git a/syncthingwidgets/translations/syncthingwidgets_en_US.ts b/syncthingwidgets/translations/syncthingwidgets_en_US.ts index 37b6f53..2dc25ce 100644 --- a/syncthingwidgets/translations/syncthingwidgets_en_US.ts +++ b/syncthingwidgets/translations/syncthingwidgets_en_US.ts @@ -9,6 +9,14 @@ + + QtGui + + + Unable to open Syncthing UI via "%1": %2 + + + QtGui::AppearanceOptionPage @@ -183,127 +191,127 @@ - + Apply - + Apply selected configuration - + Review the summary of the configuration changes before applying them - + Summary: - + Keep %1 %2 - + enabled - + disabled - + %1 %2 - + Enable - + Disable - + Keep connection and launcher configuration as-is - + Configure Syncthing Tray to use the currently running Syncthing instance - + Do <i>not</i> change how Syncthing is launched - + Start Syncthing via Syncthing Tray's launcher - + executable from PATH as separate process, "%1" - + built-in Syncthing library, "%1" - + Start Syncthing by enabling and starting its systemd unit - + Using user unit "%1" - + Using system unit "%1" - + systemd integration - + autostart of Syncthing Tray - + Further information: - + Click on "Show details from setup detection" for further details. - + If you want to do amendments, you can head back one or more steps. - + If you abort now, nothing will be changed. @@ -321,27 +329,27 @@ - + This is achieved by adding a *.desktop file under <i>~/.config/autostart</i> so the setting only affects the current user. - + This is achieved by adding a registry key under <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> so the setting only affects the current user. Note that the startup entry is invalidated when moving <i>syncthingtray.exe</i>. - + This is achieved by adding a *.plist file under <i>~/Library/LaunchAgents</i> so the setting only affects the current user. - + This feature has not been implemented for your platform (yet). - + unable to modify startup entry @@ -384,16 +392,46 @@ - + Configure autostart - + Select whether to start Syncthing Tray automatically + + QtGui::BuiltinWebViewOptionPage + + + Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. +The Web UI will be opened in the default web browser instead. + + + + + + Built-in web view + + + + + Zoom factor + + + + + Hiding + + + + + Keep web view running when currently not shown + + + QtGui::ConnectionOptionPage @@ -575,7 +613,7 @@ - + Auto-detected for local instance @@ -585,22 +623,22 @@ - + Select Syncthing config file - + Unable to parse the Syncthing config file. - + Unable to load specified certificate "%1". - + Instance %1 @@ -667,47 +705,47 @@ QtGui::DetectionWizardPage - + Checking current Syncthing setup - + Checking Syncthing configuration and whether Syncthing is already running or can be started … - + Check again - + Re-visit setup detection - + You might trigger checking the Syncthing setup again - + It looks like Syncthing has not been running on this system before as its configuration cannot be found. Is that correct? - + Yes, continue configuration - + No, let me select Syncthing's configuration file manually - + Select Syncthing's configuration file @@ -751,46 +789,74 @@ QtGui::FinalWizardPage - + Waiting for configuration wizard completed - + Changes are being applied - + Configuration wizard completed - + All changes have been applied - + <p>The configuration has been changed successfully. The way Syncthing Tray connects to and starts Syncthing has not changed, though. You may configure this manually in the settings.</p> - + <p>The configuration has been changed successfully. You can close the wizard and <a href="openSyncthing">open Syncthing</a> to pair remote devices and add folders for sharing. If you need further help, read the <a href="openDocs">documentation to get started</a>.</p><p>To initiate the pairing from another device, the device ID of this Syncthing device is displayed below.</p> - + Not all changes could be applied - + You may try to head back one or more steps and try again or finish the wizard and configure Syncthing Tray manually. + + QtGui::GeneralWebViewOptionPage + + + General + + + + + Open Syncthing's UI via + + + + + Syncthing Tray's built-in web view + + + + + Tab in the default web browser + + + + + Chromium-based browser in "app mode" + + + QtGui::IconsOptionPage @@ -867,47 +933,47 @@ QtGui::IconsOptionPageBase - + UI icons - + System icons - + These icon settings are used within Syncthing Tray's UI. - + These icon settings are used for the system tray icon and the notifications. - + Use same settings as for UI icons - + Colorful background with gradient (default) - + Transparent background and dark foreground (for bright themes) - + Transparent background and bright foreground (for dark themes) - + %1 px (scaled to %2 px) @@ -1035,7 +1101,7 @@ - + Stop launched instance @@ -1050,82 +1116,82 @@ - + %1-launcher - + Launch %1 when starting the tray icon - + %1 executable - + %1 log (interleaved stdout/stderr) - + Restore default - + Show Syncthing releases/downloads - + %1 exited with exit code %2 - + %1 crashed with exit code %2 - + failed to start (e.g. executable does not exist or not permission error) - + process crashed - + timeout error - + read error - + write error - + unknown process error - + An error occurred when running %1: %2 - + Kill launched instance @@ -1133,37 +1199,37 @@ QtGui::MainConfigWizardPage - + Select what configuration to apply - + Something when wrong when checking the Syncthing setup. - + Show details from setup detection - + Systemd - + <b>The Syncthing config could be located under "%1" but it seems invalid/incomplete.</b> Hence Syncthing is assumed to be not running. - + Looks like Syncthing is not running yet. You can launch it via %1. - + and @@ -1213,17 +1279,17 @@ - + Looks like Syncthing is already running and Syncthing Tray can be configured accordingly automatically. - + Syncthing Tray's launcher - + Looks like Syncthing is not running yet and needs to be installed before Syncthing Tray can be configured. @@ -1316,7 +1382,7 @@ - + Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe. @@ -1342,37 +1408,37 @@ QtGui::SettingsDialog - + Tray - + Web view - + Startup - + additional tool - + Extra launcher - + Settings - + Start wizard @@ -1537,8 +1603,8 @@ This dialog closes automatically when the process finally terminates. - - + + unknown @@ -1578,27 +1644,27 @@ This dialog closes automatically when the process finally terminates. - + Reload all unit files - + It is not possible to show the start/stop button for the systemd service and the internal launcher at the same time. The systemd service precedes. - + It is not possible to consider the systemd service and the internal launcher for reconnects at the same time. The systemd service precedes. - + specified unit is either inactive or doesn't exist - + since @@ -1623,120 +1689,80 @@ This dialog closes automatically when the process finally terminates. QtGui::WebViewDialog - + Syncthing - - QtGui::WebViewOptionPage - - - - General - - - - - Usage - - - - - Disable web view (open regular web browser instead) - - - - - Zoom factor - - - - - Hiding - - - - - Keep web view running when currently not shown - - - - - Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. -The Web UI will be opened in the default web browser instead. - - - QtGui::WelcomeWizardPage - + Welcome to Syncthing Tray - + It looks like you're launching Syncthing Tray for the first time. - + You must configure how to connect to Syncthing and how to launch Syncthing (if that's wanted) when using Syncthing Tray the first time. - + Wizard's start page - + This wizard will help you configuring Syncthing Tray. - + Start guided setup - + Allows to configure Syncthing Tray automatically for the local Syncthing instance and helps you starting Syncthing if wanted. - + Configure connection and launcher settings manually - + Head back to settings to configure connection and launcher manually - + Note that the connection settings allow importing URL, credentials and API-key from the local Syncthing configuration. - + Show Syncthing's documentation - + It contains general information about configuring Syncthing. - + Show Syncthing Tray's README - + It contains documentation about this GUI integration specifically. @@ -1744,192 +1770,192 @@ The Web UI will be opened in the default web browser instead. QtGui::Wizard - + Setup wizard - - + The internal launcher has not been initialized. - + The service handler has not been initialized. - + Unable to locate Syncthing config file. - + Located Syncthing config file: - + Syncthing config file looks ok. - + Syncthing config file looks invalid/incomplete. - + Syncthing configuration: - + Could connect to Syncthing under: - + Syncthing version: - + Syncthing device ID: - + Syncthing status: - + Additional Syncthing status info: - + Autostart: - + Currently %1 - + enabled - + disabled - + The Syncthing process exited prematurely. - + The Syncthing service stopped prematurely. - + Ran into timeout while waiting for Syncthing to create config file. Maybe Syncthing created its config file under an unexpected location. - + Checkout Syncthing's log for details. - + It can be accessed within the <a href="openLauncherSettings">launcher settings</a>. - + It is normally written to the system journal (and can be accessed via e.g. journalctl). - + API connection: - + API connection errors: - + State of user unit file "%1": - + State of system unit file "%1": - + Systemd: - + Could NOT connect to Syncthing under: - + No available - + Could test-launch Syncthing successfully, exit code: - + Syncthing version returned from test-launch: - + Unable to test-launch Syncthing: - + Built-in Syncthing available: - + yes - + no - + Launcher: - + Details from setup detection - @@ -1937,7 +1963,7 @@ The Web UI will be opened in the default web browser instead. Settings::Connection - + Backup of %1 (created by wizard) diff --git a/syncthingwidgets/translations/syncthingwidgets_zh_CN.ts b/syncthingwidgets/translations/syncthingwidgets_zh_CN.ts index 854c682..35a4643 100644 --- a/syncthingwidgets/translations/syncthingwidgets_zh_CN.ts +++ b/syncthingwidgets/translations/syncthingwidgets_zh_CN.ts @@ -9,6 +9,14 @@ 未使用 libsyncthing 支持构建。 + + QtGui + + + Unable to open Syncthing UI via "%1": %2 + + + QtGui::AppearanceOptionPage @@ -191,127 +199,127 @@ 一般 - + Apply - + Apply selected configuration - + Review the summary of the configuration changes before applying them - + Summary: - + Keep %1 %2 - + enabled - + disabled - + %1 %2 - + Enable 启用 - + Disable 禁用 - + Keep connection and launcher configuration as-is - + Configure Syncthing Tray to use the currently running Syncthing instance - + Do <i>not</i> change how Syncthing is launched - + Start Syncthing via Syncthing Tray's launcher - + executable from PATH as separate process, "%1" - + built-in Syncthing library, "%1" - + Start Syncthing by enabling and starting its systemd unit - + Using user unit "%1" - + Using system unit "%1" - + systemd integration - + autostart of Syncthing Tray - + Further information: - + Click on "Show details from setup detection" for further details. - + If you want to do amendments, you can head back one or more steps. - + If you abort now, nothing will be changed. @@ -329,27 +337,27 @@ 桌面环境启动时启动托盘图标 - + This is achieved by adding a *.desktop file under <i>~/.config/autostart</i> so the setting only affects the current user. 这是通过在 <i>~/.config/autostart</i> 下添加 *.desktop 文件来实现的,因此该设置仅影响当前用户。 - + This is achieved by adding a registry key under <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> so the setting only affects the current user. Note that the startup entry is invalidated when moving <i>syncthingtray.exe</i>. 这是通过在 <i>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> 下添加注册表项来实现的,因此该设置仅影响当前用户。 请注意,移动 <i>syncthingtray.exe</i> 时启动项无效。 - + This is achieved by adding a *.plist file under <i>~/Library/LaunchAgents</i> so the setting only affects the current user. 这是通过在 <i>~/Library/LaunchAgents</i> 下添加 *.plist 文件来实现的,因此该设置仅影响当前用户。 - + This feature has not been implemented for your platform (yet). 此功能尚未为您的平台实现。 - + unable to modify startup entry 无法修改启动项 @@ -392,16 +400,51 @@ - + Configure autostart - + Select whether to start Syncthing Tray automatically + + QtGui::BuiltinWebViewOptionPage + + General + 一般 + + + + Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. +The Web UI will be opened in the default web browser instead. + Syncthing Tray 尚未使用 Qt WebKit 或 Qt WebEngine 构建支持网页视图。 +网页 UI 将改为在默认网页浏览器中打开。 + + + + + Built-in web view + + + + + Zoom factor + 缩放系数 + + + + Hiding + 隐藏 + + + + Keep web view running when currently not shown + 当前未显示时保持网页视图运行 + + QtGui::ConnectionOptionPage @@ -588,27 +631,27 @@ - + Auto-detected for local instance 本地实例自动检测 - + Select Syncthing config file 选择 Syncthing 配置文件 - + Unable to parse the Syncthing config file. 无法解析 Syncthing 配置文件。 - + Unable to load specified certificate "%1". 无法加载指定的证书 "%1"。 - + Instance %1 实例 %1 @@ -675,47 +718,47 @@ QtGui::DetectionWizardPage - + Checking current Syncthing setup - + Checking Syncthing configuration and whether Syncthing is already running or can be started … - + Check again - + Re-visit setup detection - + You might trigger checking the Syncthing setup again - + It looks like Syncthing has not been running on this system before as its configuration cannot be found. Is that correct? - + Yes, continue configuration - + No, let me select Syncthing's configuration file manually - + Select Syncthing's configuration file @@ -762,46 +805,74 @@ QtGui::FinalWizardPage - + Waiting for configuration wizard completed - + Changes are being applied - + Configuration wizard completed - + All changes have been applied - + <p>The configuration has been changed successfully. The way Syncthing Tray connects to and starts Syncthing has not changed, though. You may configure this manually in the settings.</p> - + <p>The configuration has been changed successfully. You can close the wizard and <a href="openSyncthing">open Syncthing</a> to pair remote devices and add folders for sharing. If you need further help, read the <a href="openDocs">documentation to get started</a>.</p><p>To initiate the pairing from another device, the device ID of this Syncthing device is displayed below.</p> - + Not all changes could be applied - + You may try to head back one or more steps and try again or finish the wizard and configure Syncthing Tray manually. + + QtGui::GeneralWebViewOptionPage + + + General + 一般 + + + + Open Syncthing's UI via + + + + + Syncthing Tray's built-in web view + + + + + Tab in the default web browser + + + + + Chromium-based browser in "app mode" + + + QtGui::IconsOptionPage @@ -878,47 +949,47 @@ QtGui::IconsOptionPageBase - + UI icons UI 图标 - + These icon settings are used within Syncthing Tray's UI. 这些图标设置在 Syncthing Tray 的 UI 中使用。 - + System icons 系统图标 - + These icon settings are used for the system tray icon and the notifications. 这些图标设置用于系统托盘图标和通知。 - + Use same settings as for UI icons 使用与 UI 图标相同的设置 - + Colorful background with gradient (default) 带渐变的彩色背景(默认) - + Transparent background and dark foreground (for bright themes) 透明背景和深色前景(适用于明亮的主题) - + Transparent background and bright foreground (for dark themes) 透明背景和明亮前景(用于深色主题) - + %1 px (scaled to %2 px) %1 像素(缩放到 %2 像素) @@ -1053,7 +1124,7 @@ - + Stop launched instance 停止启动的实例 @@ -1068,82 +1139,82 @@ 确保最新日志可见 - + %1-launcher %1-启动器 - + Launch %1 when starting the tray icon 启动托盘图标时启动 %1 - + %1 executable %1 可执行文件 - + %1 log (interleaved stdout/stderr) %1 日志(交错的标准输出/标准错误) - + Restore default 还原至默认 - + Show Syncthing releases/downloads 显示 Syncthing 发布/下载 - + %1 exited with exit code %2 %1 退出,退出代码为 %2 - + %1 crashed with exit code %2 %1 崩溃,退出代码为 %2 - + failed to start (e.g. executable does not exist or not permission error) 启动失败(例如可执行文件不存在或没有权限) - + process crashed 进程崩溃 - + timeout error 超时错误 - + read error 读取错误 - + write error 写入错误 - + unknown process error 未知进程错误 - + An error occurred when running %1: %2 运行 %1 时出错: %2 - + Kill launched instance 强制终止启动的实例 @@ -1151,37 +1222,37 @@ QtGui::MainConfigWizardPage - + Select what configuration to apply - + Something when wrong when checking the Syncthing setup. - + Show details from setup detection - + Systemd Systemd - + <b>The Syncthing config could be located under "%1" but it seems invalid/incomplete.</b> Hence Syncthing is assumed to be not running. - + Looks like Syncthing is not running yet. You can launch it via %1. - + and @@ -1235,17 +1306,17 @@ - + Looks like Syncthing is already running and Syncthing Tray can be configured accordingly automatically. - + Syncthing Tray's launcher - + Looks like Syncthing is not running yet and needs to be installed before Syncthing Tray can be configured. @@ -1342,7 +1413,7 @@ - + Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe. 配置为使用 DBus 通知,但 D-Bus 通知守护程序似乎不可用。 @@ -1368,37 +1439,37 @@ QtGui::SettingsDialog - + Tray 托盘 - + Web view 网页视图 - + Startup 启动 - + additional tool 附加工具 - + Extra launcher 额外启动器 - + Settings 设置 - + Start wizard @@ -1582,8 +1653,8 @@ This dialog closes automatically when the process finally terminates. - - + + unknown 未知 @@ -1618,27 +1689,27 @@ This dialog closes automatically when the process finally terminates. 禁用 - + Reload all unit files - + It is not possible to show the start/stop button for the systemd service and the internal launcher at the same time. The systemd service precedes. 无法同时显示 systemd 服务和内部启动器的启动/停止按钮。 systemd 服务优先。 - + It is not possible to consider the systemd service and the internal launcher for reconnects at the same time. The systemd service precedes. 无法同时考虑 systemd 服务和内部启动器进行重新连接。 systemd 服务优先。 - + specified unit is either inactive or doesn't exist 指定的单位不活动或不存在 - + since 自从 @@ -1667,7 +1738,7 @@ This dialog closes automatically when the process finally terminates. QtGui::WebViewDialog - + Syncthing Syncthing @@ -1675,113 +1746,105 @@ This dialog closes automatically when the process finally terminates. QtGui::WebViewOptionPage - - General - 一般 + 一般 - Usage - 用法 + 用法 - Disable web view (open regular web browser instead) - 禁用网页视图(改为打开默认网页浏览器) + 禁用网页视图(改为打开默认网页浏览器) - Zoom factor - 缩放系数 + 缩放系数 - Hiding - 隐藏 + 隐藏 - Keep web view running when currently not shown - 当前未显示时保持网页视图运行 + 当前未显示时保持网页视图运行 - Syncthing Tray has not been built with vieb view support utilizing either Qt WebKit or Qt WebEngine. The Web UI will be opened in the default web browser instead. - Syncthing Tray 尚未使用 Qt WebKit 或 Qt WebEngine 构建支持网页视图。 + Syncthing Tray 尚未使用 Qt WebKit 或 Qt WebEngine 构建支持网页视图。 网页 UI 将改为在默认网页浏览器中打开。 QtGui::WelcomeWizardPage - + Welcome to Syncthing Tray - + It looks like you're launching Syncthing Tray for the first time. - + You must configure how to connect to Syncthing and how to launch Syncthing (if that's wanted) when using Syncthing Tray the first time. - + Wizard's start page - + This wizard will help you configuring Syncthing Tray. - + Start guided setup - + Allows to configure Syncthing Tray automatically for the local Syncthing instance and helps you starting Syncthing if wanted. - + Configure connection and launcher settings manually - + Head back to settings to configure connection and launcher manually - + Note that the connection settings allow importing URL, credentials and API-key from the local Syncthing configuration. - + Show Syncthing's documentation - + It contains general information about configuring Syncthing. - + Show Syncthing Tray's README - + It contains documentation about this GUI integration specifically. @@ -1789,192 +1852,192 @@ The Web UI will be opened in the default web browser instead. QtGui::Wizard - + Setup wizard - - + The internal launcher has not been initialized. - + The service handler has not been initialized. - + Unable to locate Syncthing config file. - + Located Syncthing config file: - + Syncthing config file looks ok. - + Syncthing config file looks invalid/incomplete. - + Syncthing configuration: - + Could connect to Syncthing under: - + Syncthing version: - + Syncthing device ID: - + Syncthing status: - + Additional Syncthing status info: - + Autostart: - + Currently %1 - + enabled - + disabled - + The Syncthing process exited prematurely. - + The Syncthing service stopped prematurely. - + Ran into timeout while waiting for Syncthing to create config file. Maybe Syncthing created its config file under an unexpected location. - + Checkout Syncthing's log for details. - + It can be accessed within the <a href="openLauncherSettings">launcher settings</a>. - + It is normally written to the system journal (and can be accessed via e.g. journalctl). - + API connection: - + API connection errors: - + State of user unit file "%1": - + State of system unit file "%1": - + Systemd: - + Could NOT connect to Syncthing under: - + No available - + Could test-launch Syncthing successfully, exit code: - + Syncthing version returned from test-launch: - + Unable to test-launch Syncthing: - + Built-in Syncthing available: - + yes - + no - + Launcher: - + Details from setup detection - @@ -1982,7 +2045,7 @@ The Web UI will be opened in the default web browser instead. Settings::Connection - + Backup of %1 (created by wizard) diff --git a/syncthingwidgets/webview/webviewdialog.cpp b/syncthingwidgets/webview/webviewdialog.cpp index 392d205..75f7160 100644 --- a/syncthingwidgets/webview/webviewdialog.cpp +++ b/syncthingwidgets/webview/webviewdialog.cpp @@ -1,10 +1,20 @@ -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW #include "./webviewdialog.h" +#include "../settings/settings.h" + +#include "resources/config.h" + +#include + +#include +#include +#include +#include + +#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW #include "./webpage.h" #include "./webviewinterceptor.h" -#include "../settings/settings.h" - +#include #include #include @@ -149,3 +159,61 @@ bool WebViewDialog::eventFilter(QObject *watched, QEvent *event) } // namespace QtGui #endif // SYNCTHINGWIDGETS_NO_WEBVIEW + +namespace QtGui { + +/*! + * \brief Opens the specified \a url as "app" in a Chromium-based web browser. + * \todo Check for other Chromium-based browsers and use the Windows registry to find apps under Windows. + */ +static void openBrowserInAppMode(const QString &url) +{ + static const auto app = qEnvironmentVariable(PROJECT_VARNAME_UPPER "_CHROMIUM_BASED_BROWSER", QStringLiteral("chromium")); + auto *const process = new Data::SyncthingProcess(); + QObject::connect(process, &Data::SyncthingProcess::finished, process, &QObject::deleteLater); + QObject::connect(process, &Data::SyncthingProcess::errorOccurred, process, [process] { + auto messageBox = QMessageBox(); + messageBox.setWindowTitle(QStringLiteral("Syncthing")); + messageBox.setIcon(QMessageBox::Critical); + messageBox.setText(QCoreApplication::translate("QtGui", "Unable to open Syncthing UI via \"%1\": %2").arg(app, process->errorString())); + messageBox.exec(); + }); + process->setProcessChannelMode(QProcess::ForwardedChannels); + process->startSyncthing(app, QStringList{ QStringLiteral("--app=") + url }); +} + +/*! + * \brief Opens the Syncthing UI using the configured web view mode. + * \param url The URL of the Syncthing UI. + * \param settings The connection settings to be used (instead of the \a url) in case a WebViewDialog is used. Allowed to be nullptr. + * \param dlg An existing WebViewDialog that may be reused in case a WebViewDialog is used. + * \param parent The parent to use when creating a new WebViewDialog. Allowed to be nullptr (as usual with parents). + * \returns Returns the used WebViewDialog or nullptr if another method was used. + */ +WebViewDialog *showWebUI(const QString &url, const Data::SyncthingConnectionSettings *settings, WebViewDialog *dlg, QWidget *parent) +{ + switch (Settings::values().webView.mode) { +#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW + case Settings::WebView::Mode::Builtin: + if (!dlg) { + dlg = new WebViewDialog(parent); + } + if (settings) { + dlg->applySettings(*settings, true); + } + return dlg; +#else + Q_UNUSED(settings) + Q_UNUSED(dlg) + Q_UNUSED(parent) +#endif + case Settings::WebView::Mode::Command: + openBrowserInAppMode(url); + break; + default: + QDesktopServices::openUrl(url); + } + return nullptr; +} + +} // namespace QtGui diff --git a/syncthingwidgets/webview/webviewdialog.h b/syncthingwidgets/webview/webviewdialog.h index e3c3ed9..5b7569e 100644 --- a/syncthingwidgets/webview/webviewdialog.h +++ b/syncthingwidgets/webview/webviewdialog.h @@ -1,20 +1,21 @@ #ifndef WEBVIEW_DIALOG_H #define WEBVIEW_DIALOG_H + +#include "../global.h" + +#include + +QT_FORWARD_DECLARE_CLASS(QString) +QT_FORWARD_DECLARE_CLASS(QWidget) + #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW - #include "./webviewdefs.h" -#include "../settings/settings.h" - #include QT_FORWARD_DECLARE_CLASS(WEB_VIEW_PROVIDER) QT_FORWARD_DECLARE_CLASS(QWebEngineProfile) -namespace Settings { -struct ConnectionSettings; -} - namespace QtGui { class SYNCTHINGWIDGETS_EXPORT WebViewDialog : public QMainWindow { @@ -53,5 +54,16 @@ inline const Data::SyncthingConnectionSettings &WebViewDialog::connectionSetting } // namespace QtGui +#else // SYNCTHINGWIDGETS_NO_WEBVIEW +namespace QtGui { +using WebViewDialog = void; +} + #endif // SYNCTHINGWIDGETS_NO_WEBVIEW + +namespace QtGui { +SYNCTHINGWIDGETS_EXPORT WebViewDialog *showWebUI( + const QString &url, const Data::SyncthingConnectionSettings *settings, WebViewDialog *dlg = nullptr, QWidget *parent = nullptr); +} + #endif // WEBVIEW_DIALOG_H diff --git a/tray/application/main.cpp b/tray/application/main.cpp index b63d840..6eb6915 100644 --- a/tray/application/main.cpp +++ b/tray/application/main.cpp @@ -131,7 +131,7 @@ static void trigger(bool tray, bool webUi, bool wizard) } auto *const trayWidget = TrayWidget::instances().front(); if (webUi) { - trayWidget->showWebUi(); + trayWidget->showWebUI(); } if (tray) { trayWidget->showUsingPositioningSettings(); diff --git a/tray/gui/trayicon.cpp b/tray/gui/trayicon.cpp index 9dbd2a7..6f61d83 100644 --- a/tray/gui/trayicon.cpp +++ b/tray/gui/trayicon.cpp @@ -52,7 +52,7 @@ TrayIcon::TrayIcon(const QString &connectionConfig, QObject *parent) connect(m_contextMenu.addAction( QIcon::fromTheme(QStringLiteral("syncthing"), QIcon(QStringLiteral(":/icons/hicolor/scalable/status/syncthing-default.svg"))), tr("Open Syncthing")), - &QAction::triggered, &widget, &TrayWidget::showWebUi); + &QAction::triggered, &widget, &TrayWidget::showWebUI); connect(m_contextMenu.addAction( QIcon::fromTheme(QStringLiteral("preferences-other"), QIcon(QStringLiteral(":/icons/hicolor/scalable/apps/preferences-other.svg"))), tr("Settings")), @@ -102,7 +102,7 @@ TrayIcon::TrayIcon(const QString &connectionConfig, QObject *parent) connect(&m_dbusNotifier, &DBusStatusNotifier::dismissNotificationsRequested, &widget, &TrayWidget::dismissNotifications); connect(&m_dbusNotifier, &DBusStatusNotifier::showNotificationsRequested, &widget, &TrayWidget::showNotifications); connect(&m_dbusNotifier, &DBusStatusNotifier::errorDetailsRequested, this, &TrayIcon::showInternalErrorsDialog); - connect(&m_dbusNotifier, &DBusStatusNotifier::webUiRequested, &widget, &TrayWidget::showWebUi); + connect(&m_dbusNotifier, &DBusStatusNotifier::webUiRequested, &widget, &TrayWidget::showWebUI); connect(¬ifier, &SyncthingNotifier::connected, &m_dbusNotifier, &DBusStatusNotifier::hideDisconnect); #endif @@ -136,7 +136,7 @@ void TrayIcon::handleActivated(QSystemTrayIcon::ActivationReason reason) // can't catch that event on Plasma 5 anyways break; case QSystemTrayIcon::MiddleClick: - trayMenu().widget().showWebUi(); + trayMenu().widget().showWebUI(); break; case QSystemTrayIcon::Trigger: { trayMenu().showUsingPositioningSettings(); @@ -158,7 +158,7 @@ void TrayIcon::handleMessageClicked() showInternalErrorsDialog(); break; case TrayIconMessageClickedAction::ShowWebUi: - trayMenu().widget().showWebUi(); + trayMenu().widget().showWebUI(); break; } } diff --git a/tray/gui/traywidget.cpp b/tray/gui/traywidget.cpp index 7e0d41a..91b0dfc 100644 --- a/tray/gui/traywidget.cpp +++ b/tray/gui/traywidget.cpp @@ -72,9 +72,7 @@ TrayWidget::TrayWidget(TrayMenu *parent) : QWidget(parent) , m_menu(parent) , m_ui(new Ui::TrayWidget) -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW , m_webViewDlg(nullptr) -#endif , m_internalErrorsButton(nullptr) , m_notifier(m_connection) , m_dirModel(m_connection) @@ -194,7 +192,7 @@ TrayWidget::TrayWidget(TrayMenu *parent) // connect signals and slots connect(m_ui->statusPushButton, &QPushButton::clicked, this, &TrayWidget::changeStatus); connect(m_ui->aboutPushButton, &QPushButton::clicked, this, &TrayWidget::showAboutDialog); - connect(m_ui->webUiPushButton, &QPushButton::clicked, this, &TrayWidget::showWebUi); + connect(m_ui->webUiPushButton, &QPushButton::clicked, this, &TrayWidget::showWebUI); connect(m_ui->settingsPushButton, &QPushButton::clicked, this, &TrayWidget::showSettingsDialog); connect(&m_connection, &SyncthingConnection::statusChanged, this, &TrayWidget::handleStatusChanged); connect(&m_connection, &SyncthingConnection::trafficChanged, this, &TrayWidget::updateTraffic); @@ -278,7 +276,7 @@ void TrayWidget::showWizard() connect(s_wizard, &Wizard::destroyed, this, [] { s_wizard = nullptr; }); connect(s_wizard, &Wizard::settingsDialogRequested, this, &TrayWidget::showSettingsDialog); connect(s_wizard, &Wizard::openLauncherSettingsRequested, this, &TrayWidget::showLauncherSettings); - connect(s_wizard, &Wizard::openSyncthingRequested, this, &TrayWidget::showWebUi); + connect(s_wizard, &Wizard::openSyncthingRequested, this, &TrayWidget::showWebUI); connect(s_wizard, &Wizard::settingsChanged, this, &TrayWidget::applySettingsChangesFromWizard); } showDialog(s_wizard, centerWidgetAvoidingOverflow(s_wizard)); @@ -343,23 +341,20 @@ void TrayWidget::showAboutDialog() showDialog(s_aboutDlg); } -void TrayWidget::showWebUi() +void TrayWidget::showWebUI() { + auto *const dlg = QtGui::showWebUI(m_connection.syncthingUrl(), m_selectedConnection, m_webViewDlg, this); #ifndef SYNCTHINGWIDGETS_NO_WEBVIEW - if (Settings::values().webView.disabled) { -#endif - QDesktopServices::openUrl(m_connection.syncthingUrl()); -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW - } else { - if (!m_webViewDlg) { - m_webViewDlg = new WebViewDialog(this); - if (m_selectedConnection) { - m_webViewDlg->applySettings(*m_selectedConnection, true); - } - connect(m_webViewDlg, &WebViewDialog::destroyed, this, &TrayWidget::handleWebViewDeleted); - } - showDialog(m_webViewDlg); + if (!dlg) { + return; } + if (!m_webViewDlg) { + m_webViewDlg = dlg; + connect(m_webViewDlg, &WebViewDialog::destroyed, this, &TrayWidget::handleWebViewDeleted); + } + showDialog(m_webViewDlg); +#else + Q_UNUSED(dlg) #endif } @@ -890,12 +885,10 @@ Settings::Systemd::ServiceStatus TrayWidget::applySystemdSettings(bool reconnect } #endif -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW void TrayWidget::handleWebViewDeleted() { m_webViewDlg = nullptr; } -#endif void TrayWidget::handleNewNotification(DateTime when, const QString &msg) { diff --git a/tray/gui/traywidget.h b/tray/gui/traywidget.h index e27050e..54bc7a6 100644 --- a/tray/gui/traywidget.h +++ b/tray/gui/traywidget.h @@ -34,7 +34,11 @@ class AboutDialog; namespace QtGui { +#ifdef SYNCTHINGWIDGETS_NO_WEBVIEW +using WebViewDialog = void; +#else class WebViewDialog; +#endif class SettingsDialog; class Wizard; class TrayMenu; @@ -64,7 +68,7 @@ public Q_SLOTS: void showLauncherSettings(); void showWizard(); void showAboutDialog(); - void showWebUi(); + void showWebUI(); void showOwnDeviceId(); void showLog(); void showNotifications(); @@ -104,9 +108,7 @@ private Q_SLOTS: Settings::Systemd::ServiceStatus handleSystemdStatusChanged(); Settings::Systemd::ServiceStatus applySystemdSettings(bool reconnectRequired = false); #endif -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW void handleWebViewDeleted(); -#endif void handleNewNotification(CppUtilities::DateTime when, const QString &msg); void handleConnectionSelected(QAction *connectionAction); void concludeWizard(const QString &errorMessage = QString()); @@ -119,9 +121,7 @@ private: static SettingsDialog *s_settingsDlg; static Wizard *s_wizard; static QtUtilities::AboutDialog *s_aboutDlg; -#ifndef SYNCTHINGWIDGETS_NO_WEBVIEW WebViewDialog *m_webViewDlg; -#endif QFrame *m_cornerFrame; QPushButton *m_internalErrorsButton; Data::SyncthingConnection m_connection; diff --git a/tray/translations/syncthingtray_cs_CZ.ts b/tray/translations/syncthingtray_cs_CZ.ts index 303cc43..2a28768 100644 --- a/tray/translations/syncthingtray_cs_CZ.ts +++ b/tray/translations/syncthingtray_cs_CZ.ts @@ -162,20 +162,20 @@ - + About O Syncthing Tray - + Connect Připojit - - + + Start Spustit @@ -246,8 +246,8 @@ For <i>all</i> notifications, checkout the log - - + + New notifications Nová oznámení @@ -282,118 +282,118 @@ For <i>all</i> notifications, checkout the log Zahodit - + View own device ID Zobrazit identifikátor místního zařízení - + Restart Syncthing Restartovat Syncthing - + Show Syncthing log Zobrazit záznam událostí v Syncthing - + Rescan all directories Znovu proskenovat všechny složky - + Connection Spojení - + Show internal errors Zobrazit vnitřní chyby - + Quit Syncthing Tray Ukončit Syncthing Tray - + Do you really want to restart Syncthing? Opravdu chcete Syncthing restartovat? - + Not connected to Syncthing, click to connect Nepřipojeno k Syncthing, klikněte pro připojení se - + Unable to establish connection to Syncthing. - + Pause Pozastavit - + Syncthing is running, click to pause all devices Syncthing je spuštěné, kliknutím pozastavíte veškerá zařízení - + Continue Pokračovat - + At least one device is paused, click to resume Přinejmenším jedno zařízení je pozastaveno, kliknutím pokračujte - + The specified connection configuration <em>%1</em> is not defined and hence ignored. Zadané nastavení spojení <em>%1</em> není definováno a proto je ignorováno. - + The directory <i>%1</i> does not exist on the local machine. Adresář <i>%1</i> neexistuje místně. - + The containing directory <i>%1</i> does not exist on the local machine. Obsažený adresář <i>%1</i> neexistuje místně. - + Copy path Zkopírovat popis umístění - + Copy device ID - + Copy directory ID - - + + Stop Zastavit - + Stop Syncthing instance launched via tray icon Zastavit instanci Syncthing spuštěnou prostřednictvím ikony v oznamovací oblasti - + Start Syncthing with the built-in launcher configured in the settings Spustit Syncthing s vestavěným spouštěčem nastaveným v nastaveních diff --git a/tray/translations/syncthingtray_de_DE.ts b/tray/translations/syncthingtray_de_DE.ts index 147b3e0..461967b 100644 --- a/tray/translations/syncthingtray_de_DE.ts +++ b/tray/translations/syncthingtray_de_DE.ts @@ -162,20 +162,20 @@ - + About Über Syncthing Tray - + Connect Verbinden - - + + Start Starten @@ -250,8 +250,8 @@ For <i>all</i> notifications, checkout the log - - + + New notifications Neue Benachrichtigungen @@ -287,118 +287,118 @@ For <i>all</i> notifications, checkout the log Ignorieren - + View own device ID Eigene Geräte-ID anzeigen - + Restart Syncthing Syncthing neustarten - + Show Syncthing log Syncthing-Log zeigen - + Rescan all directories Alle Verzeichnisse neu scannen - + Connection Verbindung - + Show internal errors Interne Fehler - + Quit Syncthing Tray Syncthing Tray schließen - + Do you really want to restart Syncthing? Soll Syncthing wirklich neu gestartet werden? - + Not connected to Syncthing, click to connect Verbindung zu Syncthing getrennt, klicke um zu verbinden - + Unable to establish connection to Syncthing. Verbindung zu Syncthing kann nicht hergestellt werden. - + Pause Pausieren - + Syncthing is running, click to pause all devices Syncthing läuft, klicke um alle Geräte zu pausieren - + Continue Fortsetzen - + At least one device is paused, click to resume Mind. ein Gerät ist pausiert, klicke um fortzusetzen - + The specified connection configuration <em>%1</em> is not defined and hence ignored. Die angegebene Verbindungskonfiguration <em>%1</em> ist nicht definiert und wird daher ignoriert. - + The directory <i>%1</i> does not exist on the local machine. Das Verzeichnis <i>%1</i> existiert nicht lokal. - + The containing directory <i>%1</i> does not exist on the local machine. Das beinhaltende Verzeichnis <i>%1</i> existiert nicht lokal. - + Copy path Pfad kopieren - + Copy device ID Geräte-ID kopieren - + Copy directory ID Verzeichnis-ID kopieren - - + + Stop Stoppen - + Stop Syncthing instance launched via tray icon Stoppe Syncthing-Instanz, die mit dem internen Starter gestartet wurde - + Start Syncthing with the built-in launcher configured in the settings Starte Syncthing mit dem eingebauten Starter, der in den Einstellungen konfiguriert wird diff --git a/tray/translations/syncthingtray_en_US.ts b/tray/translations/syncthingtray_en_US.ts index 3d76625..8b57521 100644 --- a/tray/translations/syncthingtray_en_US.ts +++ b/tray/translations/syncthingtray_en_US.ts @@ -162,20 +162,20 @@ - + About - + Connect - - + + Start @@ -245,8 +245,8 @@ For <i>all</i> notifications, checkout the log - - + + New notifications @@ -281,118 +281,118 @@ For <i>all</i> notifications, checkout the log - + View own device ID - + Restart Syncthing - + Show Syncthing log - + Rescan all directories - + Connection - + Show internal errors - + Quit Syncthing Tray - + Do you really want to restart Syncthing? - + Not connected to Syncthing, click to connect - + Unable to establish connection to Syncthing. - + Pause - + Syncthing is running, click to pause all devices - + Continue - + At least one device is paused, click to resume - + The specified connection configuration <em>%1</em> is not defined and hence ignored. - + The directory <i>%1</i> does not exist on the local machine. - + The containing directory <i>%1</i> does not exist on the local machine. - + Copy path - + Copy device ID - + Copy directory ID - - + + Stop - + Stop Syncthing instance launched via tray icon - + Start Syncthing with the built-in launcher configured in the settings diff --git a/tray/translations/syncthingtray_zh_CN.ts b/tray/translations/syncthingtray_zh_CN.ts index 2e6b664..2a5882a 100644 --- a/tray/translations/syncthingtray_zh_CN.ts +++ b/tray/translations/syncthingtray_zh_CN.ts @@ -162,20 +162,20 @@ - + Connect 连接 - - + + Start 启动 - + About 关于 @@ -246,8 +246,8 @@ For <i>all</i> notifications, checkout the log - - + + New notifications 新通知 @@ -282,118 +282,118 @@ For <i>all</i> notifications, checkout the log 解除 - + View own device ID 查看本设备 ID - + Restart Syncthing 重启 Syncthing - + Show Syncthing log 显示 Syncthing 日志 - + Rescan all directories 重新扫描全部目录 - + Connection 连接 - + Show internal errors 显示内部错误 - + Quit Syncthing Tray 退出 Syncthing Tray - + Do you really want to restart Syncthing? 您真的想要重启 Syncthing 吗? - + Not connected to Syncthing, click to connect 未连接至 Syncthing,点击连接 - + Unable to establish connection to Syncthing. - + Pause 暂停 - + Syncthing is running, click to pause all devices Syncthing 运行中,点击暂停全部设备 - + Continue 继续 - + At least one device is paused, click to resume 至少有一个设备已暂停,点击恢复 - + The specified connection configuration <em>%1</em> is not defined and hence ignored. 指定的连接配置 <em>%1</em> 没有定义,因此被忽略。 - + The directory <i>%1</i> does not exist on the local machine. 本地设备上不存在目录 <i>%1</i>。 - + The containing directory <i>%1</i> does not exist on the local machine. 本地设备上不存在包含目录 <i>%1</i>。 - + Copy path 复制路径 - + Copy device ID 复制设备 ID - + Copy directory ID - - + + Stop 停止 - + Stop Syncthing instance launched via tray icon 停止通过托盘图标启动 Syncthing 实例 - + Start Syncthing with the built-in launcher configured in the settings 使用设置中配置的内置启动器启动 Syncthing