Make error polling configurable

This commit is contained in:
Martchus 2017-01-12 22:38:36 +01:00
parent b2a66c806b
commit bbac12f9e9
8 changed files with 277 additions and 204 deletions

View File

@ -54,9 +54,6 @@ SyncthingConnection::SyncthingConnection(const QString &syncthingUrl, const QByt
m_keepPolling(false),
m_reconnecting(false),
m_lastEventId(0),
m_trafficPollTimer(),
m_devStatsPollTimer(),
m_autoReconnectTimer(),
m_autoReconnectTries(0),
m_totalIncomingTraffic(0),
m_totalOutgoingTraffic(0),
@ -80,6 +77,10 @@ SyncthingConnection::SyncthingConnection(const QString &syncthingUrl, const QByt
m_devStatsPollTimer.setTimerType(Qt::VeryCoarseTimer);
m_devStatsPollTimer.setSingleShot(true);
QObject::connect(&m_devStatsPollTimer, &QTimer::timeout, this, &SyncthingConnection::requestDeviceStatistics);
m_errorsPollTimer.setInterval(30000);
m_errorsPollTimer.setTimerType(Qt::VeryCoarseTimer);
m_errorsPollTimer.setSingleShot(true);
QObject::connect(&m_errorsPollTimer, &QTimer::timeout, this, &SyncthingConnection::requestErrors);
m_autoReconnectTimer.setTimerType(Qt::VeryCoarseTimer);
QObject::connect(&m_autoReconnectTimer, &QTimer::timeout, this, &SyncthingConnection::autoReconnect);
}
@ -731,6 +732,7 @@ bool SyncthingConnection::applySettings(SyncthingConnectionSettings &connectionS
setTrafficPollInterval(connectionSettings.trafficPollInterval);
setDevStatsPollInterval(connectionSettings.devStatsPollInterval);
setErrorsPollInterval(connectionSettings.errorsPollInterval);
setAutoReconnectInterval(connectionSettings.reconnectInterval);
return reconnectRequired;
@ -941,7 +943,7 @@ void SyncthingConnection::readConnections()
m_lastConnectionsUpdate = DateTime::gmtNow();
// since there seems no event for this data, just request every 2 seconds
// since there seems no event for this data, keep polling
if(m_keepPolling && m_trafficPollTimer.interval()) {
m_trafficPollTimer.start();
}
@ -1043,7 +1045,7 @@ void SyncthingConnection::readDeviceStatistics()
}
++index;
}
// since there seems no event for this data, just request every minute
// since there seems no event for this data, keep polling
if(m_keepPolling && m_devStatsPollTimer.interval()) {
m_devStatsPollTimer.start();
}
@ -1095,15 +1097,15 @@ void SyncthingConnection::readErrors()
emit error(tr("Unable to parse errors: ") + jsonError.errorString(), SyncthingErrorCategory::Parsing, QNetworkReply::NoError);
}
// since there seems no event for this data, just request every thirty seconds, FIXME: make interval configurable
if(m_keepPolling) {
QTimer::singleShot(30000, Qt::VeryCoarseTimer, this, SLOT(requestErrors()));
// since there seems no event for this data, keep polling
if(m_keepPolling && m_errorsPollTimer.interval()) {
m_errorsPollTimer.start();
}
break;
} case QNetworkReply::OperationCanceledError:
return; // intended, not an error
default:
emit error(tr("Unable to request errors: ") + reply->errorString(), SyncthingErrorCategory::OverallConnection, reply->error());
emit error(tr("Unable to request errors: ") + reply->errorString(), SyncthingErrorCategory::SpecificRequest, reply->error());
}
}
@ -1529,6 +1531,7 @@ void SyncthingConnection::setStatus(SyncthingStatus status)
// don't consider synchronization finished in this this case
m_devStatsPollTimer.stop();
m_trafficPollTimer.stop();
m_errorsPollTimer.stop();
m_syncedDirs.clear();
break;
default:

View File

@ -91,6 +91,8 @@ public:
void setTrafficPollInterval(int trafficPollInterval);
int devStatsPollInterval() const;
void setDevStatsPollInterval(int devStatsPollInterval);
int errorsPollInterval() const;
void setErrorsPollInterval(int errorsPollInterval);
int autoReconnectInterval() const;
unsigned int autoReconnectTries() const;
void setAutoReconnectInterval(int interval);
@ -204,6 +206,7 @@ private:
int m_lastEventId;
QTimer m_trafficPollTimer;
QTimer m_devStatsPollTimer;
QTimer m_errorsPollTimer;
QTimer m_autoReconnectTimer;
unsigned int m_autoReconnectTries;
QString m_configDir;
@ -364,6 +367,27 @@ inline void SyncthingConnection::setDevStatsPollInterval(int devStatsPollInterva
m_devStatsPollTimer.setInterval(devStatsPollInterval);
}
/*!
* \brief Returns the interval for polling Syncthing errors (which currently can not be received via event API) in milliseconds.
* \remarks Default value is 30000 milliseconds.
*/
inline int SyncthingConnection::errorsPollInterval() const
{
return m_errorsPollTimer.interval();
}
/*!
* \brief Sets the interval for polling Syncthing errors (which currently can not be received via event API) in milliseconds.
* \remarks Default value is 30000 milliseconds.
*/
inline void SyncthingConnection::setErrorsPollInterval(int errorPollInterval)
{
if(!errorPollInterval) {
m_errorsPollTimer.stop();
}
m_errorsPollTimer.setInterval(errorPollInterval);
}
/*!
* \brief Returns the reconnect interval in milliseconds.
* \remarks Default value is 0 which indicates disabled auto-reconnect.

View File

@ -18,6 +18,7 @@ struct LIB_SYNCTHING_CONNECTOR_EXPORT SyncthingConnectionSettings {
QByteArray apiKey;
int trafficPollInterval = 2000;
int devStatsPollInterval = 60000;
int errorsPollInterval = 30000;
int reconnectInterval = 0;
QString httpsCertPath;
QList<QSslError> expectedSslErrors;

View File

@ -63,6 +63,7 @@ void restore()
connectionSettings->apiKey = settings.value(QStringLiteral("apiKey")).toByteArray();
connectionSettings->trafficPollInterval = settings.value(QStringLiteral("trafficPollInterval"), connectionSettings->trafficPollInterval).toInt();
connectionSettings->devStatsPollInterval = settings.value(QStringLiteral("devStatsPollInterval"), connectionSettings->devStatsPollInterval).toInt();
connectionSettings->errorsPollInterval = settings.value(QStringLiteral("errorsPollInterval"), connectionSettings->errorsPollInterval).toInt();
connectionSettings->reconnectInterval = settings.value(QStringLiteral("reconnectInterval"), connectionSettings->reconnectInterval).toInt();
connectionSettings->httpsCertPath = settings.value(QStringLiteral("httpsCertPath")).toString();
if(!connectionSettings->loadHttpsCert()) {
@ -138,6 +139,7 @@ void save()
settings.setValue(QStringLiteral("apiKey"), connectionSettings->apiKey);
settings.setValue(QStringLiteral("trafficPollInterval"), connectionSettings->trafficPollInterval);
settings.setValue(QStringLiteral("devStatsPollInterval"), connectionSettings->devStatsPollInterval);
settings.setValue(QStringLiteral("errorsPollInterval"), connectionSettings->errorsPollInterval);
settings.setValue(QStringLiteral("reconnectInterval"), connectionSettings->reconnectInterval);
settings.setValue(QStringLiteral("httpsCertPath"), connectionSettings->httpsCertPath);
}

View File

@ -100,6 +100,16 @@
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="instanceNoteIcon">
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="instanceNoteLabel">
<property name="sizePolicy">
@ -240,31 +250,6 @@
</property>
</widget>
</item>
<item row="15" column="0">
<widget class="QLabel" name="statusTextLabel">
<property name="text">
<string>Status</string>
</property>
</widget>
</item>
<item row="15" column="1">
<widget class="QLabel" name="statusLabel">
<property name="text">
<string>disconnected</string>
</property>
</widget>
</item>
<item row="18" column="1">
<widget class="QPushButton" name="connectPushButton">
<property name="text">
<string>Apply connection settings and try to reconnect with the currently selected config</string>
</property>
<property name="icon">
<iconset theme="view-refresh" resource="../resources/icons.qrc">
<normaloff>:/icons/hicolor/scalable/actions/view-refresh.svg</normaloff>:/icons/hicolor/scalable/actions/view-refresh.svg</iconset>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QLabel" name="pollLabel">
<property name="text">
@ -276,18 +261,14 @@
</widget>
</item>
<item row="13" column="1">
<layout class="QHBoxLayout" name="pollHorizontalLayout">
<property name="spacing">
<layout class="QGridLayout" name="gridLayout">
<property name="horizontalSpacing">
<number>10</number>
</property>
<item>
<widget class="QLabel" name="pollTrafficLabel">
<property name="text">
<string>Traffic</string>
</property>
</widget>
</item>
<item>
<property name="verticalSpacing">
<number>0</number>
</property>
<item row="0" column="1">
<widget class="QSpinBox" name="pollTrafficSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -306,21 +287,28 @@
</property>
</widget>
</item>
<item>
<widget class="Line" name="line3">
<property name="orientation">
<enum>Qt::Vertical</enum>
<item row="0" column="0">
<widget class="QLabel" name="pollTrafficLabel">
<property name="text">
<string>Traffic</string>
</property>
</widget>
</item>
<item>
<item row="0" column="3">
<widget class="QLabel" name="pollDevStatsLabel">
<property name="text">
<string>Device statistics</string>
</property>
</widget>
</item>
<item>
<item row="0" column="2">
<widget class="Line" name="line3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QSpinBox" name="pollDevStatsSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -339,21 +327,40 @@
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Vertical</enum>
<item row="1" column="0">
<widget class="QLabel" name="pollErrorsLabel">
<property name="text">
<string>Errors</string>
</property>
</widget>
</item>
<item>
<item row="1" column="1">
<widget class="QSpinBox" name="pollErrorsSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string> ms</string>
</property>
<property name="minimum">
<number>100</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLabel" name="reconnectLabel">
<property name="text">
<string>Reconnect</string>
</property>
</widget>
</item>
<item>
<item row="1" column="4">
<widget class="QSpinBox" name="reconnectSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -372,15 +379,37 @@
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="instanceNoteIcon">
<property name="minimumSize">
<size>
<width>32</width>
<height>32</height>
</size>
<item row="14" column="0">
<widget class="QLabel" name="statusTextLabel">
<property name="text">
<string>Status</string>
</property>
</widget>
</item>
<item row="14" column="1">
<widget class="QLabel" name="statusLabel">
<property name="text">
<string>disconnected</string>
</property>
</widget>
</item>
<item row="17" column="1">
<widget class="QPushButton" name="connectPushButton">
<property name="text">
<string>Apply connection settings and try to reconnect with the currently selected config</string>
</property>
<property name="icon">
<iconset theme="view-refresh" resource="../resources/icons.qrc">
<normaloff>:/icons/hicolor/scalable/actions/view-refresh.svg</normaloff>:/icons/hicolor/scalable/actions/view-refresh.svg</iconset>
</property>
</widget>
</item>

View File

@ -137,6 +137,7 @@ bool ConnectionOptionPage::showConnectionSettings(int index)
ui()->certPathSelection->lineEdit()->setText(connectionSettings.httpsCertPath);
ui()->pollTrafficSpinBox->setValue(connectionSettings.trafficPollInterval);
ui()->pollDevStatsSpinBox->setValue(connectionSettings.devStatsPollInterval);
ui()->pollErrorsSpinBox->setValue(connectionSettings.errorsPollInterval);
ui()->reconnectSpinBox->setValue(connectionSettings.reconnectInterval);
m_currentIndex = index;
} else {
@ -162,6 +163,7 @@ bool ConnectionOptionPage::cacheCurrentSettings(bool applying)
connectionSettings.httpsCertPath = ui()->certPathSelection->lineEdit()->text();
connectionSettings.trafficPollInterval = ui()->pollTrafficSpinBox->value();
connectionSettings.devStatsPollInterval = ui()->pollDevStatsSpinBox->value();
connectionSettings.errorsPollInterval = ui()->pollErrorsSpinBox->value();
connectionSettings.reconnectInterval = ui()->reconnectSpinBox->value();
if(!connectionSettings.loadHttpsCert()) {
const QString errorMessage = QCoreApplication::translate("QtGui::ConnectionOptionPage", "Unable to load specified certificate \"%1\".").arg(connectionSettings.httpsCertPath);
@ -740,7 +742,7 @@ SettingsDialog::SettingsDialog(Data::SyncthingConnection *connection, QWidget *p
categoryModel()->setCategories(categories);
resize(850, 600);
resize(860, 620);
setWindowTitle(tr("Settings") + QStringLiteral(" - " APP_NAME));
setWindowIcon(QIcon::fromTheme(QStringLiteral("preferences-other"), QIcon(QStringLiteral(":/icons/hicolor/scalable/apps/preferences-other.svg"))));

View File

@ -127,22 +127,22 @@
<translation>Tray-Icon beim Starten der Desktopumgebung automatisch starten</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="361"/>
<location filename="../gui/settingsdialog.cpp" line="363"/>
<source>This is achieved by adding a *.desktop file under &lt;i&gt;~/.config/autostart&lt;/i&gt; so the setting only affects the current user.</source>
<translation>Durch das Hinzufügen einer *.desktop-Datei unter &lt;i&gt;~/.config/autostart&lt;/i&gt; realisiert - betrifft also nur den aktuellen Benutzer.</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="363"/>
<location filename="../gui/settingsdialog.cpp" line="365"/>
<source>This is achieved by adding a registry key under &lt;i&gt;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/i&gt; so the setting only affects the current user. Note that the startup entry is invalidated when moving &lt;i&gt;syncthingtray.exe&lt;/i&gt;.</source>
<translation>Durch das Hinzufügen eines Registry-Schlüssels unter &lt;i&gt;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/i&gt; realisiert - betrifft also nur den aktuellen Benutzer.</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="365"/>
<location filename="../gui/settingsdialog.cpp" line="367"/>
<source>This feature has not been implemented for your platform (yet).</source>
<translation>Diese Funktion wurde für die aktuelle Plattform nicht nicht implementiert.</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="452"/>
<location filename="../gui/settingsdialog.cpp" line="454"/>
<source>unable to modify startup entry</source>
<translation>Fehler beim aktualisieren des Auto-Start-Eintrags</translation>
</message>
@ -170,89 +170,95 @@
<translation>Sekundäre Konfiguration löschen</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="112"/>
<location filename="../gui/connectionoptionpage.ui" line="122"/>
<source>It is possible to save multiple configurations. This allows switching quickly between multiple Syncthing instances using the connection button in the right corner of the tray menu. The config label is an arbitrary name to identify a configuration and does not have to match the name of the corresponding Syncthing device.</source>
<translation>Es ist möglich, mehrere Konfigurationen zu speichern. Zwischen diesen kann anschließend über das Verbindungsmenü rechts oben im Tray schnell hin- und hergewechselt werden. Der Name der Konfiguration muss nicht mit dem Namen des entsprechenden Syncthing-Gerätes übereinstimmen.</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="135"/>
<location filename="../gui/connectionoptionpage.ui" line="145"/>
<source>Syncthing URL</source>
<translation></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="145"/>
<location filename="../gui/connectionoptionpage.ui" line="155"/>
<source>Authentication</source>
<translation>Authentifizierung</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="158"/>
<location filename="../gui/connectionoptionpage.ui" line="168"/>
<source>User</source>
<translation>Benutzername</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="175"/>
<location filename="../gui/connectionoptionpage.ui" line="185"/>
<source>Password</source>
<translation>Passwort</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="192"/>
<location filename="../gui/connectionoptionpage.ui" line="202"/>
<source>API key</source>
<translation>API-Schlüssel</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="202"/>
<location filename="../gui/connectionoptionpage.ui" line="212"/>
<source>HTTPS certificate</source>
<translation>HTTPS-Zertifikat</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="222"/>
<location filename="../gui/connectionoptionpage.ui" line="232"/>
<source>Insert values from local Syncthing configuration</source>
<translation>Werte aus lokaler Syncthing-Konfiguration einfügen</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="246"/>
<location filename="../gui/connectionoptionpage.ui" line="333"/>
<source>Errors</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="394"/>
<source>Status</source>
<translation></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="253"/>
<location filename="../gui/connectionoptionpage.ui" line="401"/>
<source>disconnected</source>
<translation>getrennt</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="260"/>
<location filename="../gui/connectionoptionpage.ui" line="408"/>
<source>Apply connection settings and try to reconnect with the currently selected config</source>
<translation>Verbindungseinstellungen übernehmen und mit neuen Einstellungen verbinden</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="271"/>
<location filename="../gui/connectionoptionpage.ui" line="256"/>
<source>Poll interval</source>
<translation>Abfrageintervall</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="286"/>
<location filename="../gui/connectionoptionpage.ui" line="293"/>
<source>Traffic</source>
<translation></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="299"/>
<location filename="../gui/connectionoptionpage.ui" line="332"/>
<location filename="../gui/connectionoptionpage.ui" line="368"/>
<location filename="../gui/connectionoptionpage.ui" line="280"/>
<location filename="../gui/connectionoptionpage.ui" line="320"/>
<location filename="../gui/connectionoptionpage.ui" line="346"/>
<location filename="../gui/connectionoptionpage.ui" line="375"/>
<source> ms</source>
<translation></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="319"/>
<location filename="../gui/connectionoptionpage.ui" line="300"/>
<source>Device statistics</source>
<translation>Gerätestatistiken</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="352"/>
<location filename="../gui/connectionoptionpage.ui" line="359"/>
<source>Reconnect</source>
<translation>Verbindungsveruch</translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="365"/>
<location filename="../gui/connectionoptionpage.ui" line="372"/>
<source>no</source>
<translation>nicht neu verbinden</translation>
</message>
@ -272,12 +278,12 @@
<translation>Fehler beim Auslesen der Syncthing-Konfigurationsdatei.</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="167"/>
<location filename="../gui/settingsdialog.cpp" line="169"/>
<source>Unable to load specified certificate &quot;%1&quot;.</source>
<translation>Fehler beim Auslesen des angegebenen Zertifikats: %1</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="191"/>
<location filename="../gui/settingsdialog.cpp" line="193"/>
<source>Instance %1</source>
<translation>Instanz %1</translation>
</message>
@ -384,13 +390,13 @@
<translation>Log folgen</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="534"/>
<location filename="../gui/settingsdialog.cpp" line="536"/>
<source>Syncthing exited with exit code %1
</source>
<translation>Syncthing wurde mit dem Statuscode %1 beendet</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="537"/>
<location filename="../gui/settingsdialog.cpp" line="539"/>
<source>Syncthing crashed with exit code %1
</source>
<translation>Syncthing ist mit dem Statuscode %1 abgestürzt</translation>
@ -444,7 +450,7 @@
<translation>Methode die von Qt verwendet wird (kann vom QPA-Plugin überschrieben werden)</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="263"/>
<location filename="../gui/settingsdialog.cpp" line="265"/>
<source>Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe.</source>
<translation>Benachrichtigungen via D-Bus wurden eingestellt, aber es scheint kein Daemon zu laufen der den Dienst bereitstellt.</translation>
</message>
@ -452,22 +458,22 @@
<context>
<name>QtGui::SettingsDialog</name>
<message>
<location filename="../gui/settingsdialog.cpp" line="718"/>
<location filename="../gui/settingsdialog.cpp" line="720"/>
<source>Tray</source>
<translation></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="724"/>
<location filename="../gui/settingsdialog.cpp" line="726"/>
<source>Web view</source>
<translation>Weboberfläche</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="730"/>
<location filename="../gui/settingsdialog.cpp" line="732"/>
<source>Startup</source>
<translation>Starten</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="744"/>
<location filename="../gui/settingsdialog.cpp" line="746"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
@ -508,8 +514,8 @@
<location filename="../gui/systemdoptionpage.ui" line="99"/>
<location filename="../gui/systemdoptionpage.ui" line="154"/>
<location filename="../gui/systemdoptionpage.ui" line="231"/>
<location filename="../gui/settingsdialog.cpp" line="642"/>
<location filename="../gui/settingsdialog.cpp" line="657"/>
<location filename="../gui/settingsdialog.cpp" line="644"/>
<location filename="../gui/settingsdialog.cpp" line="659"/>
<source>unknown</source>
<translation>unbekannt</translation>
</message>
@ -543,7 +549,7 @@
<translation>Stoppen</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="622"/>
<location filename="../gui/settingsdialog.cpp" line="624"/>
<source>specified unit is either inactive or doesn&apos;t exist</source>
<translation>angegebene Unit ist entweder nicht geladen oder existiert nicht</translation>
</message>
@ -551,133 +557,133 @@
<context>
<name>QtGui::TrayIcon</name>
<message>
<location filename="../gui/trayicon.cpp" line="44"/>
<location filename="../gui/trayicon.cpp" line="50"/>
<source> - internal error</source>
<translation> - interner Fehler</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="45"/>
<location filename="../gui/trayicon.cpp" line="51"/>
<source>Syncthing notification</source>
<translation>Syncthing-Benachrichtigung</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="50"/>
<location filename="../gui/trayicon.cpp" line="56"/>
<source>Web UI</source>
<translation>Weboberfäche</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="51"/>
<location filename="../gui/trayicon.cpp" line="57"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="52"/>
<location filename="../gui/trayicon.cpp" line="58"/>
<source>Rescan all</source>
<translation>Alle neu scannen</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="55"/>
<location filename="../gui/trayicon.cpp" line="61"/>
<source>About</source>
<translation>Über Syncthing Tray</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="57"/>
<location filename="../gui/trayicon.cpp" line="63"/>
<source>Close</source>
<translation>Beenden</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="139"/>
<location filename="../gui/trayicon.cpp" line="149"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="155"/>
<location filename="../gui/trayicon.cpp" line="165"/>
<source>Syncthing notification - click to dismiss</source>
<translation>Neue Syncthing-Benachrichtigung</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="173"/>
<location filename="../gui/trayicon.cpp" line="183"/>
<source>Not connected to Syncthing - trying to reconnect every %1 ms</source>
<translation>Nicht mit Syncthing verbunden - versuche alle %1 ms zu verbinden</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="176"/>
<location filename="../gui/trayicon.cpp" line="186"/>
<source>Not connected to Syncthing</source>
<translation>Nicht mit Syncthing verbunden</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="62"/>
<location filename="../gui/trayicon.cpp" line="185"/>
<location filename="../gui/trayicon.cpp" line="68"/>
<location filename="../gui/trayicon.cpp" line="199"/>
<source>Disconnected from Syncthing</source>
<translation>Verbindung zu Syncthing getrennt</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="53"/>
<location filename="../gui/trayicon.cpp" line="59"/>
<source>Log</source>
<translation></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="63"/>
<location filename="../gui/trayicon.cpp" line="69"/>
<source>Try to reconnect</source>
<translation>Versuche Verbindung wieder herzustellen</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="65"/>
<location filename="../gui/trayicon.cpp" line="71"/>
<source>Dismiss</source>
<translation>Ignorieren</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="65"/>
<location filename="../gui/trayicon.cpp" line="71"/>
<source>Show</source>
<translation>Zeigen</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="191"/>
<location filename="../gui/trayicon.cpp" line="205"/>
<source>Reconnecting ...</source>
<translation>Neu verbinden ...</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="200"/>
<location filename="../gui/trayicon.cpp" line="214"/>
<source>Synchronization is ongoing but at least one directory is out of sync</source>
<translation>Synchronisiert, aber mind. ein Verzeichnis hat Fehler</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="203"/>
<location filename="../gui/trayicon.cpp" line="217"/>
<source>At least one directory is out of sync</source>
<translation>Mind. ein Verzeichnis hat Fehler</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="207"/>
<location filename="../gui/trayicon.cpp" line="221"/>
<source>Notifications available</source>
<translation>Es gibt neue Benachrichtigungen</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="212"/>
<location filename="../gui/trayicon.cpp" line="226"/>
<source>Syncthing is idling</source>
<translation>Syncthing ist im Leerlauf</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="216"/>
<location filename="../gui/trayicon.cpp" line="230"/>
<source>Syncthing is scanning</source>
<translation>Syncthing scannt</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="220"/>
<location filename="../gui/trayicon.cpp" line="234"/>
<source>At least one device is paused</source>
<translation>Mind. ein Gerät ist pausiert</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="224"/>
<location filename="../gui/trayicon.cpp" line="238"/>
<source>Synchronization is ongoing</source>
<translation>Syncthing synchronisiert</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="242"/>
<location filename="../gui/trayicon.cpp" line="256"/>
<source>Synchronization of %1 complete</source>
<translation>%1 wurde synchronisiert</translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="249"/>
<location filename="../gui/trayicon.cpp" line="263"/>
<source>Synchronization of the following devices complete:
</source>
<translation>Folgende Verzeichnisse wurden synchronisiert:
@ -710,7 +716,7 @@
</message>
<message>
<location filename="../gui/traywidget.ui" line="113"/>
<location filename="../gui/traywidget.cpp" line="515"/>
<location filename="../gui/traywidget.cpp" line="521"/>
<source>Start</source>
<translation>Starten</translation>
</message>
@ -742,7 +748,7 @@
<message>
<location filename="../gui/traywidget.ui" line="250"/>
<location filename="../gui/traywidget.ui" line="270"/>
<location filename="../gui/traywidget.cpp" line="476"/>
<location filename="../gui/traywidget.cpp" line="481"/>
<source>unknown</source>
<translation>unbekannt</translation>
</message>
@ -871,17 +877,17 @@ For &lt;i&gt;all&lt;/i&gt; notifications, checkout the log</source>
<translation>Mind. ein Gerät ist pausiert, klicke um fortzusetzen</translation>
</message>
<message>
<location filename="../gui/traywidget.cpp" line="423"/>
<location filename="../gui/traywidget.cpp" line="428"/>
<source>The directory &lt;i&gt;%1&lt;/i&gt; does not exist on the local machine.</source>
<translation>Das Verzeichnis &lt;i&gt;%i&lt;/i&gt; existiert nicht (lokal).</translation>
</message>
<message>
<location filename="../gui/traywidget.cpp" line="432"/>
<location filename="../gui/traywidget.cpp" line="437"/>
<source>The file &lt;i&gt;%1&lt;/i&gt; does not exist on the local machine.</source>
<translation>Die Datei &lt;i&gt;%1&lt;/i&gt; existiert nicht (lokal).</translation>
</message>
<message>
<location filename="../gui/traywidget.cpp" line="511"/>
<location filename="../gui/traywidget.cpp" line="517"/>
<source>Stop</source>
<translation>Stoppen</translation>
</message>
@ -898,7 +904,7 @@ For &lt;i&gt;all&lt;/i&gt; notifications, checkout the log</source>
<name>QtGui::WebViewOptionPage</name>
<message>
<location filename="../gui/webviewoptionpage.ui" line="14"/>
<location filename="../gui/settingsdialog.cpp" line="678"/>
<location filename="../gui/settingsdialog.cpp" line="680"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
@ -928,7 +934,7 @@ For &lt;i&gt;all&lt;/i&gt; notifications, checkout the log</source>
<translation>Lasse Weboberfläche im Hintgergrund weiter offen, wenn Fenster nicht offen</translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="680"/>
<location filename="../gui/settingsdialog.cpp" line="682"/>
<source>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.</source>
<translation>Syncthing Tray wurde nicht mit Unterstützung für die eingebaute Anzeige der Weboberfläche unter Verwendung von Qt WebKit oder Qt WebEngine gebaut.
@ -938,7 +944,7 @@ Die Weboberfläche wird stattdessen im Standardwebrowser geöffnet.</translation
<context>
<name>Settings::restore</name>
<message>
<location filename="../application/settings.cpp" line="69"/>
<location filename="../application/settings.cpp" line="70"/>
<source>Unable to load certificate &quot;%1&quot; when restoring settings.</source>
<translation>Fehler beim laden des Zertifikats &quot;%1&quot; beim wiederherstellen der Einstellungen.</translation>
</message>

View File

@ -127,22 +127,22 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="361"/>
<location filename="../gui/settingsdialog.cpp" line="363"/>
<source>This is achieved by adding a *.desktop file under &lt;i&gt;~/.config/autostart&lt;/i&gt; so the setting only affects the current user.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="363"/>
<location filename="../gui/settingsdialog.cpp" line="365"/>
<source>This is achieved by adding a registry key under &lt;i&gt;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/i&gt; so the setting only affects the current user. Note that the startup entry is invalidated when moving &lt;i&gt;syncthingtray.exe&lt;/i&gt;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="365"/>
<location filename="../gui/settingsdialog.cpp" line="367"/>
<source>This feature has not been implemented for your platform (yet).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="452"/>
<location filename="../gui/settingsdialog.cpp" line="454"/>
<source>unable to modify startup entry</source>
<translation type="unfinished"></translation>
</message>
@ -170,89 +170,95 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="112"/>
<location filename="../gui/connectionoptionpage.ui" line="122"/>
<source>It is possible to save multiple configurations. This allows switching quickly between multiple Syncthing instances using the connection button in the right corner of the tray menu. The config label is an arbitrary name to identify a configuration and does not have to match the name of the corresponding Syncthing device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="135"/>
<location filename="../gui/connectionoptionpage.ui" line="145"/>
<source>Syncthing URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="145"/>
<location filename="../gui/connectionoptionpage.ui" line="155"/>
<source>Authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="158"/>
<location filename="../gui/connectionoptionpage.ui" line="168"/>
<source>User</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="175"/>
<location filename="../gui/connectionoptionpage.ui" line="185"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="192"/>
<location filename="../gui/connectionoptionpage.ui" line="202"/>
<source>API key</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="202"/>
<location filename="../gui/connectionoptionpage.ui" line="212"/>
<source>HTTPS certificate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="222"/>
<location filename="../gui/connectionoptionpage.ui" line="232"/>
<source>Insert values from local Syncthing configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="246"/>
<location filename="../gui/connectionoptionpage.ui" line="333"/>
<source>Errors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="394"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="253"/>
<location filename="../gui/connectionoptionpage.ui" line="401"/>
<source>disconnected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="260"/>
<location filename="../gui/connectionoptionpage.ui" line="408"/>
<source>Apply connection settings and try to reconnect with the currently selected config</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="271"/>
<location filename="../gui/connectionoptionpage.ui" line="256"/>
<source>Poll interval</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="286"/>
<location filename="../gui/connectionoptionpage.ui" line="293"/>
<source>Traffic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="299"/>
<location filename="../gui/connectionoptionpage.ui" line="332"/>
<location filename="../gui/connectionoptionpage.ui" line="368"/>
<location filename="../gui/connectionoptionpage.ui" line="280"/>
<location filename="../gui/connectionoptionpage.ui" line="320"/>
<location filename="../gui/connectionoptionpage.ui" line="346"/>
<location filename="../gui/connectionoptionpage.ui" line="375"/>
<source> ms</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="319"/>
<location filename="../gui/connectionoptionpage.ui" line="300"/>
<source>Device statistics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="352"/>
<location filename="../gui/connectionoptionpage.ui" line="359"/>
<source>Reconnect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/connectionoptionpage.ui" line="365"/>
<location filename="../gui/connectionoptionpage.ui" line="372"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
@ -272,12 +278,12 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="167"/>
<location filename="../gui/settingsdialog.cpp" line="169"/>
<source>Unable to load specified certificate &quot;%1&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="191"/>
<location filename="../gui/settingsdialog.cpp" line="193"/>
<source>Instance %1</source>
<translation type="unfinished"></translation>
</message>
@ -384,13 +390,13 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="534"/>
<location filename="../gui/settingsdialog.cpp" line="536"/>
<source>Syncthing exited with exit code %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="537"/>
<location filename="../gui/settingsdialog.cpp" line="539"/>
<source>Syncthing crashed with exit code %1
</source>
<translation type="unfinished"></translation>
@ -444,7 +450,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="263"/>
<location filename="../gui/settingsdialog.cpp" line="265"/>
<source>Configured to use D-Bus notifications but D-Bus notification daemon seems unavailabe.</source>
<translation type="unfinished"></translation>
</message>
@ -452,22 +458,22 @@
<context>
<name>QtGui::SettingsDialog</name>
<message>
<location filename="../gui/settingsdialog.cpp" line="718"/>
<location filename="../gui/settingsdialog.cpp" line="720"/>
<source>Tray</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="724"/>
<location filename="../gui/settingsdialog.cpp" line="726"/>
<source>Web view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="730"/>
<location filename="../gui/settingsdialog.cpp" line="732"/>
<source>Startup</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="744"/>
<location filename="../gui/settingsdialog.cpp" line="746"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
@ -508,8 +514,8 @@
<location filename="../gui/systemdoptionpage.ui" line="99"/>
<location filename="../gui/systemdoptionpage.ui" line="154"/>
<location filename="../gui/systemdoptionpage.ui" line="231"/>
<location filename="../gui/settingsdialog.cpp" line="642"/>
<location filename="../gui/settingsdialog.cpp" line="657"/>
<location filename="../gui/settingsdialog.cpp" line="644"/>
<location filename="../gui/settingsdialog.cpp" line="659"/>
<source>unknown</source>
<translation type="unfinished"></translation>
</message>
@ -541,7 +547,7 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="622"/>
<location filename="../gui/settingsdialog.cpp" line="624"/>
<source>specified unit is either inactive or doesn&apos;t exist</source>
<translation type="unfinished"></translation>
</message>
@ -549,133 +555,133 @@
<context>
<name>QtGui::TrayIcon</name>
<message>
<location filename="../gui/trayicon.cpp" line="44"/>
<location filename="../gui/trayicon.cpp" line="50"/>
<source> - internal error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="45"/>
<location filename="../gui/trayicon.cpp" line="51"/>
<source>Syncthing notification</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="50"/>
<location filename="../gui/trayicon.cpp" line="56"/>
<source>Web UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="51"/>
<location filename="../gui/trayicon.cpp" line="57"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="52"/>
<location filename="../gui/trayicon.cpp" line="58"/>
<source>Rescan all</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="55"/>
<location filename="../gui/trayicon.cpp" line="61"/>
<source>About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="57"/>
<location filename="../gui/trayicon.cpp" line="63"/>
<source>Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="139"/>
<location filename="../gui/trayicon.cpp" line="149"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="155"/>
<location filename="../gui/trayicon.cpp" line="165"/>
<source>Syncthing notification - click to dismiss</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="173"/>
<location filename="../gui/trayicon.cpp" line="183"/>
<source>Not connected to Syncthing - trying to reconnect every %1 ms</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="176"/>
<location filename="../gui/trayicon.cpp" line="186"/>
<source>Not connected to Syncthing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="62"/>
<location filename="../gui/trayicon.cpp" line="185"/>
<location filename="../gui/trayicon.cpp" line="68"/>
<location filename="../gui/trayicon.cpp" line="199"/>
<source>Disconnected from Syncthing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="53"/>
<location filename="../gui/trayicon.cpp" line="59"/>
<source>Log</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="63"/>
<location filename="../gui/trayicon.cpp" line="69"/>
<source>Try to reconnect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="65"/>
<location filename="../gui/trayicon.cpp" line="71"/>
<source>Dismiss</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="65"/>
<location filename="../gui/trayicon.cpp" line="71"/>
<source>Show</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="191"/>
<location filename="../gui/trayicon.cpp" line="205"/>
<source>Reconnecting ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="200"/>
<location filename="../gui/trayicon.cpp" line="214"/>
<source>Synchronization is ongoing but at least one directory is out of sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="203"/>
<location filename="../gui/trayicon.cpp" line="217"/>
<source>At least one directory is out of sync</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="207"/>
<location filename="../gui/trayicon.cpp" line="221"/>
<source>Notifications available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="212"/>
<location filename="../gui/trayicon.cpp" line="226"/>
<source>Syncthing is idling</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="216"/>
<location filename="../gui/trayicon.cpp" line="230"/>
<source>Syncthing is scanning</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="220"/>
<location filename="../gui/trayicon.cpp" line="234"/>
<source>At least one device is paused</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="224"/>
<location filename="../gui/trayicon.cpp" line="238"/>
<source>Synchronization is ongoing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="242"/>
<location filename="../gui/trayicon.cpp" line="256"/>
<source>Synchronization of %1 complete</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/trayicon.cpp" line="249"/>
<location filename="../gui/trayicon.cpp" line="263"/>
<source>Synchronization of the following devices complete:
</source>
<translation type="unfinished"></translation>
@ -707,7 +713,7 @@
</message>
<message>
<location filename="../gui/traywidget.ui" line="113"/>
<location filename="../gui/traywidget.cpp" line="515"/>
<location filename="../gui/traywidget.cpp" line="521"/>
<source>Start</source>
<translation type="unfinished"></translation>
</message>
@ -739,7 +745,7 @@
<message>
<location filename="../gui/traywidget.ui" line="250"/>
<location filename="../gui/traywidget.ui" line="270"/>
<location filename="../gui/traywidget.cpp" line="476"/>
<location filename="../gui/traywidget.cpp" line="481"/>
<source>unknown</source>
<translation type="unfinished"></translation>
</message>
@ -867,17 +873,17 @@ For &lt;i&gt;all&lt;/i&gt; notifications, checkout the log</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/traywidget.cpp" line="423"/>
<location filename="../gui/traywidget.cpp" line="428"/>
<source>The directory &lt;i&gt;%1&lt;/i&gt; does not exist on the local machine.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/traywidget.cpp" line="432"/>
<location filename="../gui/traywidget.cpp" line="437"/>
<source>The file &lt;i&gt;%1&lt;/i&gt; does not exist on the local machine.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/traywidget.cpp" line="511"/>
<location filename="../gui/traywidget.cpp" line="517"/>
<source>Stop</source>
<translation type="unfinished"></translation>
</message>
@ -894,7 +900,7 @@ For &lt;i&gt;all&lt;/i&gt; notifications, checkout the log</source>
<name>QtGui::WebViewOptionPage</name>
<message>
<location filename="../gui/webviewoptionpage.ui" line="14"/>
<location filename="../gui/settingsdialog.cpp" line="678"/>
<location filename="../gui/settingsdialog.cpp" line="680"/>
<source>General</source>
<translation type="unfinished"></translation>
</message>
@ -924,7 +930,7 @@ For &lt;i&gt;all&lt;/i&gt; notifications, checkout the log</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/settingsdialog.cpp" line="680"/>
<location filename="../gui/settingsdialog.cpp" line="682"/>
<source>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.</source>
<translation type="unfinished"></translation>
@ -933,7 +939,7 @@ The Web UI will be opened in the default web browser instead.</source>
<context>
<name>Settings::restore</name>
<message>
<location filename="../application/settings.cpp" line="69"/>
<location filename="../application/settings.cpp" line="70"/>
<source>Unable to load certificate &quot;%1&quot; when restoring settings.</source>
<translation type="unfinished"></translation>
</message>