1
0
Fork 0
mirror of https://github.com/syncthing/syncthing-android.git synced 2024-12-02 01:01:17 +00:00

Don't crash if config got corrupted and inform the user (#295)

* Fix crash notification reason is off-screen (fixes #294)

* Indicate a broken config on the welcome wizard (fixes #293)

* SyncthingService must stop if the config got corrupted (fixes #292)

* Show crash notification extraInfo below notification title (fixes #294)

* Fix NPE when config elements gui, options are missing (fixes #291)

* Updated de translation

* Update en translation

* Updated translations

* Remove debug log
This commit is contained in:
Catfriend1 2019-01-31 23:17:42 +01:00 committed by GitHub
parent 1bdc8fe6ec
commit a30163ea1e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 59 additions and 84 deletions

View file

@ -97,21 +97,6 @@ public class FirstStartActivity extends AppCompatActivity {
mRunningOnTV = Util.isRunningOnTV(this); mRunningOnTV = Util.isRunningOnTV(this);
Log.d(TAG, mRunningOnTV ? "Running on a TV Device" : "Running on a non-TV Device"); Log.d(TAG, mRunningOnTV ? "Running on a TV Device" : "Running on a non-TV Device");
/**
* Check if a valid config exists that can be read and parsed.
*/
Boolean configParseable = false;
Boolean configExists = Constants.getConfigFile(this).exists();
if (configExists) {
ConfigXml configParseTest = new ConfigXml(this);
try {
configParseTest.loadConfig();
configParseable = true;
} catch (ConfigXml.OpenConfigException e) {
Log.d(TAG, "Failed to parse existing config. Will show key generation slide ...");
}
}
/** /**
* Check if prerequisites to run the app are still in place. * Check if prerequisites to run the app are still in place.
* If anything mandatory is missing, the according welcome slide(s) will be shown. * If anything mandatory is missing, the according welcome slide(s) will be shown.
@ -119,7 +104,7 @@ public class FirstStartActivity extends AppCompatActivity {
Boolean showSlideStoragePermission = !haveStoragePermission(); Boolean showSlideStoragePermission = !haveStoragePermission();
Boolean showSlideIgnoreDozePermission = !haveIgnoreDozePermission(); Boolean showSlideIgnoreDozePermission = !haveIgnoreDozePermission();
Boolean showSlideLocationPermission = !haveLocationPermission(); Boolean showSlideLocationPermission = !haveLocationPermission();
Boolean showSlideKeyGeneration = !configExists || !configParseable; Boolean showSlideKeyGeneration = !checkForParseableConfig();
/** /**
* If we don't have to show slides for mandatory prerequisites, * If we don't have to show slides for mandatory prerequisites,
@ -583,10 +568,33 @@ public class FirstStartActivity extends AppCompatActivity {
return; return;
} }
TextView keygenStatus = (TextView) firstStartActivity.findViewById(R.id.key_generation_status); TextView keygenStatus = (TextView) firstStartActivity.findViewById(R.id.key_generation_status);
if (!firstStartActivity.checkForParseableConfig()) {
keygenStatus.setText(firstStartActivity.getString(R.string.config_read_failed));
return;
}
keygenStatus.setText(firstStartActivity.getString(R.string.key_generation_success)); keygenStatus.setText(firstStartActivity.getString(R.string.key_generation_success));
Button nextButton = (Button) firstStartActivity.findViewById(R.id.btn_next); Button nextButton = (Button) firstStartActivity.findViewById(R.id.btn_next);
nextButton.setVisibility(View.VISIBLE); nextButton.setVisibility(View.VISIBLE);
nextButton.requestFocus(); nextButton.requestFocus();
} }
} }
private Boolean checkForParseableConfig() {
/**
* Check if a valid config exists that can be read and parsed.
*/
Boolean configExists = Constants.getConfigFile(this).exists();
if (!configExists) {
return false;
}
Boolean configParseable = false;
ConfigXml configParseTest = new ConfigXml(this);
try {
configParseTest.loadConfig();
configParseable = true;
} catch (ConfigXml.OpenConfigException e) {
Log.d(TAG, "Failed to parse existing config. Will show key generation slide ...");
}
return configParseable;
}
} }

View file

@ -192,7 +192,7 @@ public class NotificationHandler {
Intent intent = new Intent(mContext, LogActivity.class); Intent intent = new Intent(mContext, LogActivity.class);
Notification n = getNotificationBuilder(mInfoChannel) Notification n = getNotificationBuilder(mInfoChannel)
.setContentTitle(mContext.getString(title, extraInfo)) .setContentTitle(mContext.getString(title, extraInfo))
.setContentText(mContext.getString(R.string.notification_crash_text)) .setContentText(mContext.getString(R.string.notification_crash_text, extraInfo))
.setSmallIcon(R.drawable.ic_stat_notify) .setSmallIcon(R.drawable.ic_stat_notify)
.setContentIntent(PendingIntent.getActivity(mContext, 0, intent, 0)) .setContentIntent(PendingIntent.getActivity(mContext, 0, intent, 0))
.setAutoCancel(true) .setAutoCancel(true)

View file

@ -428,10 +428,11 @@ public class SyncthingService extends Service {
try { try {
configXml.loadConfig(); configXml.loadConfig();
} catch (ConfigXml.OpenConfigException e) { } catch (ConfigXml.OpenConfigException e) {
mNotificationHandler.showCrashedNotification(R.string.config_read_failed, "applyCustomRunConditions:ConfigXml.OpenConfigException"); mNotificationHandler.showCrashedNotification(R.string.config_read_failed, "applyCustomRunConditions:OpenConfigException");
synchronized (mStateLock) { synchronized (mStateLock) {
onServiceStateChange(State.ERROR); onServiceStateChange(State.ERROR);
} }
stopSelf();
return; return;
} }
@ -508,10 +509,11 @@ public class SyncthingService extends Service {
try { try {
mConfig.loadConfig(); mConfig.loadConfig();
} catch (ConfigXml.OpenConfigException e) { } catch (ConfigXml.OpenConfigException e) {
mNotificationHandler.showCrashedNotification(R.string.config_read_failed, "ConfigXml.OpenConfigException"); mNotificationHandler.showCrashedNotification(R.string.config_read_failed, "launchStartupTask:OpenConfigException");
synchronized (mStateLock) { synchronized (mStateLock) {
onServiceStateChange(State.ERROR); onServiceStateChange(State.ERROR);
} }
stopSelf();
return; return;
} }

View file

@ -255,6 +255,9 @@ public class ConfigXml {
/* Section - GUI */ /* Section - GUI */
Element gui = getGuiElement(); Element gui = getGuiElement();
if (gui == null) {
throw new OpenConfigException();
}
// Platform-specific: Force REST API and Web UI access to use TLS 1.2 or not. // Platform-specific: Force REST API and Web UI access to use TLS 1.2 or not.
Boolean forceHttps = Constants.osSupportsTLS12(); Boolean forceHttps = Constants.osSupportsTLS12();
@ -293,6 +296,9 @@ public class ConfigXml {
// https://github.com/syncthing/syncthing/issues/4348 // https://github.com/syncthing/syncthing/issues/4348
Element options = (Element) mConfig.getDocumentElement() Element options = (Element) mConfig.getDocumentElement()
.getElementsByTagName("options").item(0); .getElementsByTagName("options").item(0);
if (options == null) {
throw new OpenConfigException();
}
changed = setConfigElement(options, "weakHashSelectionMethod", "never") || changed; changed = setConfigElement(options, "weakHashSelectionMethod", "never") || changed;
/* Dismiss "fsWatcherNotification" according to https://github.com/syncthing/syncthing-android/pull/1051 */ /* Dismiss "fsWatcherNotification" according to https://github.com/syncthing/syncthing-android/pull/1051 */

View file

@ -200,6 +200,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Изчакване на потребителския интерфейс</string> <string name="web_gui_loading">Изчакване на потребителския интерфейс</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -208,7 +209,6 @@
<string name="category_run_conditions">Условия на работа</string> <string name="category_run_conditions">Условия на работа</string>
<string name="category_behaviour">Поведение</string> <string name="category_behaviour">Поведение</string>
<string name="category_syncthing_options">Настройки на Syncthing</string> <string name="category_syncthing_options">Настройки на Syncthing</string>
<string name="category_debug">Дебъг</string>
<string name="category_experimental">Експериментални</string> <string name="category_experimental">Експериментални</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->

View file

@ -44,10 +44,6 @@
<string name="ignore">Ignora</string> <string name="ignore">Ignora</string>
<!-- MainActivity -->
<!-- Exception dialog message --> <!-- Exception dialog message -->
<string name="exception_known_bug_notice">S\'ha trobat un error conegut que encara no està resolt. Vegeu %1$s/%2$s per més informació. Siusplau doneu una descripció precisa del que ha passat amb antelació.</string> <string name="exception_known_bug_notice">S\'ha trobat un error conegut que encara no està resolt. Vegeu %1$s/%2$s per més informació. Siusplau doneu una descripció precisa del que ha passat amb antelació.</string>
@ -320,7 +316,6 @@
<string name="category_behaviour">Comportament</string> <string name="category_behaviour">Comportament</string>
<string name="category_syncthing_options">Opcions del Syncthing</string> <string name="category_syncthing_options">Opcions del Syncthing</string>
<string name="category_backup">Importa i Exporta</string> <string name="category_backup">Importa i Exporta</string>
<string name="category_debug">Depuració</string>
<string name="category_experimental">Experimental</string> <string name="category_experimental">Experimental</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -331,8 +326,6 @@
<string name="run_on_mobile_data_summary">Executa quan el dispositiu es connecti a través de la xarxa de dades mòbils. Advertència: Si sincronitzeu gran quantitat de dades podríeu consumir un volum important del pla de dades del vostre operador mòbil.</string> <string name="run_on_mobile_data_summary">Executa quan el dispositiu es connecti a través de la xarxa de dades mòbils. Advertència: Si sincronitzeu gran quantitat de dades podríeu consumir un volum important del pla de dades del vostre operador mòbil.</string>
<string name="run_on_wifi_title">Executa amb Wi-Fi</string> <string name="run_on_wifi_title">Executa amb Wi-Fi</string>
<string name="run_on_wifi_summary">Executa quan el dispositiu es connecti a una xarxa Wi-Fi.</string>
<string name="run_on_metered_wifi_title">Executa amb Wi-Fi mesurada</string> <string name="run_on_metered_wifi_title">Executa amb Wi-Fi mesurada</string>
<string name="run_on_metered_wifi_summary">Executa quan el dispositiu estigui connectat a una xarxa Wi-Fi mesurada, com ara una zona amb cobertura o un ancoratge. Advertència: Si sincronitzeu gran quantitat de dades podríeu consumir un volum important del pla de dades del vostre operador mòbil.</string> <string name="run_on_metered_wifi_summary">Executa quan el dispositiu estigui connectat a una xarxa Wi-Fi mesurada, com ara una zona amb cobertura o un ancoratge. Advertència: Si sincronitzeu gran quantitat de dades podríeu consumir un volum important del pla de dades del vostre operador mòbil.</string>
@ -610,7 +603,6 @@
<string name="reason_mobile_data_disallowed">El Syncthing no té permís per funcionar amb connexions de dades mòbils.</string> <string name="reason_mobile_data_disallowed">El Syncthing no té permís per funcionar amb connexions de dades mòbils.</string>
<string name="reason_on_mobile_data">El Syncthing està funcionant perquè les dades mòbils estan actives.</string> <string name="reason_on_mobile_data">El Syncthing està funcionant perquè les dades mòbils estan actives.</string>
<string name="reason_not_on_mobile_data">El Syncthing pot funcionar amb connexions de dades mòbils però les dades mòbils no estan connectades.</string> <string name="reason_not_on_mobile_data">El Syncthing pot funcionar amb connexions de dades mòbils però les dades mòbils no estan connectades.</string>
<string name="reason_wifi_disallowed">El Syncthing no té permís per funcionar amb WiFi.</string>
<!-- SyncthingService --> <!-- SyncthingService -->
@ -640,8 +632,6 @@
<string name="notification_crash_title">El Syncthing s\'ha bloquejat %1$s</string> <string name="notification_crash_title">El Syncthing s\'ha bloquejat %1$s</string>
<string name="notification_crash_text">Feu clic per veure els registres</string>
<string name="notifications_persistent_channel">El Syncthing està actiu</string> <string name="notifications_persistent_channel">El Syncthing està actiu</string>
<string name="notification_persistent_waiting_channel">Vigilant les condicions d\'execució</string> <string name="notification_persistent_waiting_channel">Vigilant les condicions d\'execució</string>
<string name="notifications_other_channel">Altres notificacions</string> <string name="notifications_other_channel">Altres notificacions</string>

View file

@ -212,6 +212,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Čeká se na Syncthing GUI</string> <string name="web_gui_loading">Čeká se na Syncthing GUI</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -220,7 +221,6 @@
<string name="category_run_conditions">Podmínky spuštění</string> <string name="category_run_conditions">Podmínky spuštění</string>
<string name="category_behaviour">Chování</string> <string name="category_behaviour">Chování</string>
<string name="category_syncthing_options">Nastavení Syncthing</string> <string name="category_syncthing_options">Nastavení Syncthing</string>
<string name="category_debug">Ladění</string>
<string name="category_experimental">Experimentální</string> <string name="category_experimental">Experimentální</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -427,8 +427,6 @@
<string name="notification_crash_title">Syncthing spadl %1$s</string> <string name="notification_crash_title">Syncthing spadl %1$s</string>
<string name="notification_crash_text">Pro prohlížení logů klikněte</string>
<string name="notifications_other_channel">Ostatní upozornění</string> <string name="notifications_other_channel">Ostatní upozornění</string>
<!-- RestApi --> <!-- RestApi -->

View file

@ -208,6 +208,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Venter på GUI</string> <string name="web_gui_loading">Venter på GUI</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -216,7 +217,6 @@
<string name="category_run_conditions">Kør betingelser</string> <string name="category_run_conditions">Kør betingelser</string>
<string name="category_behaviour">Adfærd</string> <string name="category_behaviour">Adfærd</string>
<string name="category_syncthing_options">Syncthing Muligheder</string> <string name="category_syncthing_options">Syncthing Muligheder</string>
<string name="category_debug">Debug</string>
<string name="category_experimental">Eksperimentalt</string> <string name="category_experimental">Eksperimentalt</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -407,8 +407,6 @@
<string name="notification_crash_title">Syncthing crashede %1$s</string> <string name="notification_crash_title">Syncthing crashede %1$s</string>
<string name="notification_crash_text">Klik for at se logs</string>
<!-- RestApi --> <!-- RestApi -->

View file

@ -740,7 +740,7 @@ Bitte melden Sie auftretende Probleme via GitHub.</string>
<string name="notification_crash_title">Syncthing ist abgestürzt (Exit-Code %1$s)</string> <string name="notification_crash_title">Syncthing ist abgestürzt (Exit-Code %1$s)</string>
<string name="notification_crash_text">Klicken um Logs anzuzeigen</string> <string name="notification_crash_text">Klicke für Logs (%1$s)</string>
<string name="notifications_persistent_channel">Syncthing läuft</string> <string name="notifications_persistent_channel">Syncthing läuft</string>
<string name="notification_persistent_waiting_channel">Laufkonditionen werden überwacht</string> <string name="notification_persistent_waiting_channel">Laufkonditionen werden überwacht</string>

View file

@ -208,6 +208,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Αναμονή για το GUI</string> <string name="web_gui_loading">Αναμονή για το GUI</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -216,7 +217,6 @@
<string name="category_run_conditions">Συνθήκες εκτέλεσης</string> <string name="category_run_conditions">Συνθήκες εκτέλεσης</string>
<string name="category_behaviour">Συμπεριφορά</string> <string name="category_behaviour">Συμπεριφορά</string>
<string name="category_syncthing_options">Επιλογές Syncthing</string> <string name="category_syncthing_options">Επιλογές Syncthing</string>
<string name="category_debug">Αποσφαλμάτωση</string>
<string name="category_experimental">Πειραματικά</string> <string name="category_experimental">Πειραματικά</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -417,8 +417,6 @@
<string name="notification_crash_title">Το Syncthing κατέρρευσε %1$s</string> <string name="notification_crash_title">Το Syncthing κατέρρευσε %1$s</string>
<string name="notification_crash_text">Πατήστε για να δείτε την καταγραφή συμβάντων</string>
<string name="notifications_other_channel">Άλλες ειδοποιήσεις</string> <string name="notifications_other_channel">Άλλες ειδοποιήσεις</string>
<!-- RestApi --> <!-- RestApi -->

View file

@ -190,6 +190,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Esperando por la Interfaz</string> <string name="web_gui_loading">Esperando por la Interfaz</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->

View file

@ -208,7 +208,6 @@
<string name="category_run_conditions">Condiciones de ejecución</string> <string name="category_run_conditions">Condiciones de ejecución</string>
<string name="category_behaviour">Comportamiento</string> <string name="category_behaviour">Comportamiento</string>
<string name="category_syncthing_options">Opciones de Syncthing</string> <string name="category_syncthing_options">Opciones de Syncthing</string>
<string name="category_debug">Depuración</string>
<string name="category_experimental">Experimental</string> <string name="category_experimental">Experimental</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -383,8 +382,6 @@
<string name="notification_crash_title">Syncthing se ha estrellado %1$s</string> <string name="notification_crash_title">Syncthing se ha estrellado %1$s</string>
<string name="notification_crash_text">Haga clic para ver los registros</string>
<!-- RestApi --> <!-- RestApi -->

View file

@ -212,6 +212,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Käyttöliittymä käynnistyy</string> <string name="web_gui_loading">Käyttöliittymä käynnistyy</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -220,7 +221,6 @@
<string name="category_run_conditions">Käyntiehdot</string> <string name="category_run_conditions">Käyntiehdot</string>
<string name="category_behaviour">Käyttäytyminen</string> <string name="category_behaviour">Käyttäytyminen</string>
<string name="category_syncthing_options">Syncthing asetukset</string> <string name="category_syncthing_options">Syncthing asetukset</string>
<string name="category_debug">Vianhaku</string>
<string name="category_experimental">Kokeellinen</string> <string name="category_experimental">Kokeellinen</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->

View file

@ -237,7 +237,6 @@
<string name="category_run_conditions">Conditions d\'exécution</string> <string name="category_run_conditions">Conditions d\'exécution</string>
<string name="category_behaviour">Comportement</string> <string name="category_behaviour">Comportement</string>
<string name="category_syncthing_options">Options Syncthing</string> <string name="category_syncthing_options">Options Syncthing</string>
<string name="category_debug">Debug</string>
<string name="category_experimental">Expérimental</string> <string name="category_experimental">Expérimental</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -482,8 +481,6 @@
<string name="notification_crash_title">Syncthing s\'est planté %1$s</string> <string name="notification_crash_title">Syncthing s\'est planté %1$s</string>
<string name="notification_crash_text">Cliquer pour voir les journaux</string>
<string name="notifications_persistent_channel">Syncthing en marche</string> <string name="notifications_persistent_channel">Syncthing en marche</string>
<string name="notification_persistent_waiting_channel">Surveillance des conditions de fonctionnement</string> <string name="notification_persistent_waiting_channel">Surveillance des conditions de fonctionnement</string>
<string name="notifications_other_channel">Autres notifications</string> <string name="notifications_other_channel">Autres notifications</string>

View file

@ -225,6 +225,7 @@ Az összesített statisztika nyilvánosan elérhető a https://data.syncthing.ne
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Várakozás a grafikus felületre</string> <string name="web_gui_loading">Várakozás a grafikus felületre</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -233,7 +234,6 @@ Az összesített statisztika nyilvánosan elérhető a https://data.syncthing.ne
<string name="category_run_conditions">Futás feltételei</string> <string name="category_run_conditions">Futás feltételei</string>
<string name="category_behaviour">Viselkedés</string> <string name="category_behaviour">Viselkedés</string>
<string name="category_syncthing_options">Syncthing opciók</string> <string name="category_syncthing_options">Syncthing opciók</string>
<string name="category_debug">Hibakeresés</string>
<string name="category_experimental">Kísérleti</string> <string name="category_experimental">Kísérleti</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -471,8 +471,6 @@ VIGYÁZAT! Más alkalmazások kiolvashatják a backupból a titkos kulcsot, és
<string name="notification_crash_title">A Syncthing összeomlott %1$s</string> <string name="notification_crash_title">A Syncthing összeomlott %1$s</string>
<string name="notification_crash_text">Koppints a naplók megtekintéséhez</string>
<string name="notifications_persistent_channel">Syncthing aktív</string> <string name="notifications_persistent_channel">Syncthing aktív</string>
<string name="notification_persistent_waiting_channel">Futási feltételek monitorozása</string> <string name="notification_persistent_waiting_channel">Futási feltételek monitorozása</string>
<string name="notifications_other_channel">További értesítések</string> <string name="notifications_other_channel">További értesítések</string>

View file

@ -202,6 +202,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Memuat GUI</string> <string name="web_gui_loading">Memuat GUI</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -210,7 +211,6 @@
<string name="category_run_conditions">Syarat Operasi</string> <string name="category_run_conditions">Syarat Operasi</string>
<string name="category_behaviour">Perilaku</string> <string name="category_behaviour">Perilaku</string>
<string name="category_syncthing_options">Opsi Syncthing</string> <string name="category_syncthing_options">Opsi Syncthing</string>
<string name="category_debug">Debug</string>
<string name="category_experimental">Ujicoba</string> <string name="category_experimental">Ujicoba</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->

View file

@ -234,7 +234,6 @@
<string name="category_run_conditions">Condizioni di funzionamento</string> <string name="category_run_conditions">Condizioni di funzionamento</string>
<string name="category_behaviour">Comportamento</string> <string name="category_behaviour">Comportamento</string>
<string name="category_syncthing_options">Opzioni di Syncthing</string> <string name="category_syncthing_options">Opzioni di Syncthing</string>
<string name="category_debug">Debug</string>
<string name="category_experimental">Sperimentale</string> <string name="category_experimental">Sperimentale</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -479,8 +478,6 @@
<string name="notification_crash_title">Syncthing è andato in crash %1$s</string> <string name="notification_crash_title">Syncthing è andato in crash %1$s</string>
<string name="notification_crash_text">Clicca per visualizzare i log</string>
<string name="notifications_persistent_channel">Syncthing attivo</string> <string name="notifications_persistent_channel">Syncthing attivo</string>
<string name="notification_persistent_waiting_channel">Monitoraggio delle condizioni di esecuzione</string> <string name="notification_persistent_waiting_channel">Monitoraggio delle condizioni di esecuzione</string>
<string name="notifications_other_channel">Altre notifiche</string> <string name="notifications_other_channel">Altre notifiche</string>

View file

@ -218,7 +218,6 @@
<string name="category_run_conditions">実行条件</string> <string name="category_run_conditions">実行条件</string>
<string name="category_behaviour">動作</string> <string name="category_behaviour">動作</string>
<string name="category_syncthing_options">同期オプション</string> <string name="category_syncthing_options">同期オプション</string>
<string name="category_debug">デバッグ</string>
<string name="category_experimental">実験的</string> <string name="category_experimental">実験的</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -416,8 +415,6 @@
<string name="notification_crash_title">Syncthing がクラッシュしました %1$s</string> <string name="notification_crash_title">Syncthing がクラッシュしました %1$s</string>
<string name="notification_crash_text">クリックしてログを表示</string>
<string name="notifications_other_channel">他の通知</string> <string name="notifications_other_channel">他の通知</string>
<!-- RestApi --> <!-- RestApi -->

View file

@ -207,6 +207,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">GUI를 기다리는 중</string> <string name="web_gui_loading">GUI를 기다리는 중</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -215,7 +216,6 @@
<string name="category_run_conditions">작동 상태</string> <string name="category_run_conditions">작동 상태</string>
<string name="category_behaviour">동작</string> <string name="category_behaviour">동작</string>
<string name="category_syncthing_options">Syncthing 옵션 </string> <string name="category_syncthing_options">Syncthing 옵션 </string>
<string name="category_debug">디버그</string>
<string name="category_experimental">실험적인 기능</string> <string name="category_experimental">실험적인 기능</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -413,8 +413,6 @@
<string name="notification_crash_title">Syncthing이 충돌하였습니다. %1$s</string> <string name="notification_crash_title">Syncthing이 충돌하였습니다. %1$s</string>
<string name="notification_crash_text">클릭해서 로그 보기</string>
<string name="notifications_other_channel">기타 알림</string> <string name="notifications_other_channel">기타 알림</string>
<!-- RestApi --> <!-- RestApi -->

View file

@ -193,6 +193,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Venter på GUI</string> <string name="web_gui_loading">Venter på GUI</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->

View file

@ -256,7 +256,6 @@
<string name="category_run_conditions">Uitvoervoorwaarden</string> <string name="category_run_conditions">Uitvoervoorwaarden</string>
<string name="category_behaviour">Gedrag</string> <string name="category_behaviour">Gedrag</string>
<string name="category_syncthing_options">Syncthing-opties</string> <string name="category_syncthing_options">Syncthing-opties</string>
<string name="category_debug">Debug</string>
<string name="category_experimental">Experimenteel</string> <string name="category_experimental">Experimenteel</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -501,8 +500,6 @@
<string name="notification_crash_title">Syncthing is gecrasht %1$s</string> <string name="notification_crash_title">Syncthing is gecrasht %1$s</string>
<string name="notification_crash_text">Tik om logboeken te bekijken</string>
<string name="notifications_persistent_channel">Syncthing is actief</string> <string name="notifications_persistent_channel">Syncthing is actief</string>
<string name="notification_persistent_waiting_channel">Uitvoervoorwaarden controleren</string> <string name="notification_persistent_waiting_channel">Uitvoervoorwaarden controleren</string>
<string name="notifications_other_channel">Overige meldingen</string> <string name="notifications_other_channel">Overige meldingen</string>

View file

@ -193,6 +193,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Venter på grafisk grensesnitt</string> <string name="web_gui_loading">Venter på grafisk grensesnitt</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->

View file

@ -212,6 +212,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Oczekiwanie na interfejs użytkownika</string> <string name="web_gui_loading">Oczekiwanie na interfejs użytkownika</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -220,7 +221,6 @@
<string name="category_run_conditions">Warunki działania</string> <string name="category_run_conditions">Warunki działania</string>
<string name="category_behaviour">Zachowanie</string> <string name="category_behaviour">Zachowanie</string>
<string name="category_syncthing_options">Ustawienia Syncthing</string> <string name="category_syncthing_options">Ustawienia Syncthing</string>
<string name="category_debug">Diagnozowanie błędów</string>
<string name="category_experimental">Eksperymentalne</string> <string name="category_experimental">Eksperymentalne</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -427,8 +427,6 @@
<string name="notification_crash_title">Syncthing spadło z rowerka %1$s</string> <string name="notification_crash_title">Syncthing spadło z rowerka %1$s</string>
<string name="notification_crash_text">Dotknij, by zobaczyć logi</string>
<string name="notifications_other_channel">Inne powiadomienia</string> <string name="notifications_other_channel">Inne powiadomienia</string>
<!-- RestApi --> <!-- RestApi -->

View file

@ -225,6 +225,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Aguardando a interface web</string> <string name="web_gui_loading">Aguardando a interface web</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -233,7 +234,6 @@
<string name="category_run_conditions">Condições de execução</string> <string name="category_run_conditions">Condições de execução</string>
<string name="category_behaviour">Comportamento</string> <string name="category_behaviour">Comportamento</string>
<string name="category_syncthing_options">Opções do Syncthing</string> <string name="category_syncthing_options">Opções do Syncthing</string>
<string name="category_debug">Depuração</string>
<string name="category_experimental">Configurações experimentais</string> <string name="category_experimental">Configurações experimentais</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -458,8 +458,6 @@
<string name="notification_crash_title">O Syncthing fechou inesperadamente %1$s</string> <string name="notification_crash_title">O Syncthing fechou inesperadamente %1$s</string>
<string name="notification_crash_text">Clique para ver os logs</string>
<string name="notifications_persistent_channel">Syncthing ativado</string> <string name="notifications_persistent_channel">Syncthing ativado</string>
<string name="notification_persistent_waiting_channel">Monitorando condições de execução</string> <string name="notification_persistent_waiting_channel">Monitorando condições de execução</string>
<string name="notifications_other_channel">Outras notificações</string> <string name="notifications_other_channel">Outras notificações</string>

View file

@ -202,6 +202,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Aguardando a interface web</string> <string name="web_gui_loading">Aguardando a interface web</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -210,7 +211,6 @@
<string name="category_run_conditions">Condições de execução</string> <string name="category_run_conditions">Condições de execução</string>
<string name="category_behaviour">Comportamento</string> <string name="category_behaviour">Comportamento</string>
<string name="category_syncthing_options">Opções do Syncthing</string> <string name="category_syncthing_options">Opções do Syncthing</string>
<string name="category_debug">Depuração</string>
<string name="category_experimental">Experimental</string> <string name="category_experimental">Experimental</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->

View file

@ -252,7 +252,6 @@
<string name="category_run_conditions">Condiții de rulare</string> <string name="category_run_conditions">Condiții de rulare</string>
<string name="category_behaviour">Comportament</string> <string name="category_behaviour">Comportament</string>
<string name="category_syncthing_options">Opțiuni Syncthing</string> <string name="category_syncthing_options">Opțiuni Syncthing</string>
<string name="category_debug">Depanare</string>
<string name="category_experimental">Experimental</string> <string name="category_experimental">Experimental</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->
@ -517,8 +516,6 @@
<string name="notification_crash_title">Syncthing s-a oprit neașteptat %1$s</string> <string name="notification_crash_title">Syncthing s-a oprit neașteptat %1$s</string>
<string name="notification_crash_text">Atingeți pentru a vedea jurnalele de erori</string>
<string name="notifications_persistent_channel">Syncthing este activ</string> <string name="notifications_persistent_channel">Syncthing este activ</string>
<string name="notification_persistent_waiting_channel">Monitorizare condiții rulare</string> <string name="notification_persistent_waiting_channel">Monitorizare condiții rulare</string>
<string name="notifications_other_channel">Alte notificări</string> <string name="notifications_other_channel">Alte notificări</string>

View file

@ -43,10 +43,6 @@
<string name="ignore">Игнорировать</string> <string name="ignore">Игнорировать</string>
<!-- MainActivity -->
<!-- Exception dialog message --> <!-- Exception dialog message -->
<string name="exception_known_bug_notice">Была встречена найденная ошибка, которая ещё не была решена. Больше информации в %1$s/%2$s. Пожалуйста, оставьте нам точное описание произошедшего перед этим.</string> <string name="exception_known_bug_notice">Была встречена найденная ошибка, которая ещё не была решена. Больше информации в %1$s/%2$s. Пожалуйста, оставьте нам точное описание произошедшего перед этим.</string>
@ -539,7 +535,7 @@
<string name="notification_crash_title">Syncthing завершился из-за сбоя %1$s</string> <string name="notification_crash_title">Syncthing завершился из-за сбоя %1$s</string>
<string name="notification_crash_text">Нажмите для просмотра логов</string> <string name="notification_crash_text">Нажмите для просмотра логов (%1$s)</string>
<string name="notifications_persistent_channel">Syncthing работает</string> <string name="notifications_persistent_channel">Syncthing работает</string>
<string name="notification_persistent_waiting_channel">Отслеживание условий работы</string> <string name="notification_persistent_waiting_channel">Отслеживание условий работы</string>

View file

@ -177,6 +177,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Čakám na GUI</string> <string name="web_gui_loading">Čakám na GUI</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->

View file

@ -615,7 +615,7 @@
<string name="notification_crash_title">Syncthing har kraschat %1$s</string> <string name="notification_crash_title">Syncthing har kraschat %1$s</string>
<string name="notification_crash_text">Klicka för att visa loggar</string> <string name="notification_crash_text">Klicka för att visa loggar (%1$s)</string>
<string name="notifications_persistent_channel">Syncthing är aktiv</string> <string name="notifications_persistent_channel">Syncthing är aktiv</string>
<string name="notification_persistent_waiting_channel">Övervakar körvillkor</string> <string name="notification_persistent_waiting_channel">Övervakar körvillkor</string>

View file

@ -198,6 +198,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Arayüz Bekleniyor</string> <string name="web_gui_loading">Arayüz Bekleniyor</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -206,7 +207,6 @@
<string name="category_run_conditions">Çalışma Koşulları</string> <string name="category_run_conditions">Çalışma Koşulları</string>
<string name="category_behaviour">Davranış</string> <string name="category_behaviour">Davranış</string>
<string name="category_syncthing_options">Syncthing Seçenekleri</string> <string name="category_syncthing_options">Syncthing Seçenekleri</string>
<string name="category_debug">Hata ayıklama</string>
<string name="category_experimental">Deneysel</string> <string name="category_experimental">Deneysel</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->

View file

@ -164,6 +164,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Очікую на веб-інтерфейс</string> <string name="web_gui_loading">Очікую на веб-інтерфейс</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->
@ -171,7 +172,6 @@
<string name="category_run_conditions">Умови запуску</string> <string name="category_run_conditions">Умови запуску</string>
<string name="category_syncthing_options">Опції Syncthing</string> <string name="category_syncthing_options">Опції Syncthing</string>
<string name="category_debug">Відладка</string>
<string name="category_experimental">Експериментальне</string> <string name="category_experimental">Експериментальне</string>
<!-- Preference screen - Run conditions --> <!-- Preference screen - Run conditions -->

View file

@ -190,6 +190,7 @@
<!-- Text for WebGuiActivity loading view --> <!-- Text for WebGuiActivity loading view -->
<string name="web_gui_loading">Đang chờ GUI</string> <string name="web_gui_loading">Đang chờ GUI</string>
<!-- SettingsFragment --> <!-- SettingsFragment -->

View file

@ -582,7 +582,7 @@
<string name="notification_crash_title">Syncthing 已崩溃 %1$s</string> <string name="notification_crash_title">Syncthing 已崩溃 %1$s</string>
<string name="notification_crash_text">点击查看日志</string> <string name="notification_crash_text">点击查看日志 (%1$s)</string>
<string name="notifications_persistent_channel">Syncthing 運行。</string> <string name="notifications_persistent_channel">Syncthing 運行。</string>
<string name="notification_persistent_waiting_channel">监控正在运行的规则中</string> <string name="notification_persistent_waiting_channel">监控正在运行的规则中</string>

View file

@ -414,7 +414,7 @@
<string name="notification_crash_title">Syncthing 已經當機 %1$s</string> <string name="notification_crash_title">Syncthing 已經當機 %1$s</string>
<string name="notification_crash_text">觸碰檢視日誌</string> <string name="notification_crash_text">觸碰檢視日誌 (%1$s)</string>
<string name="notifications_other_channel">其他通知</string> <string name="notifications_other_channel">其他通知</string>

View file

@ -756,7 +756,7 @@ Please report any problems you encounter via Github.</string>
<string name="notification_crash_title">Syncthing has crashed (exit code %1$s)</string> <string name="notification_crash_title">Syncthing has crashed (exit code %1$s)</string>
<string name="notification_crash_text">Click to view logs</string> <string name="notification_crash_text">Click for logs (%1$s)</string>
<string name="notifications_persistent_channel">Syncthing active</string> <string name="notifications_persistent_channel">Syncthing active</string>
<string name="notification_persistent_waiting_channel">Monitoring run conditions</string> <string name="notification_persistent_waiting_channel">Monitoring run conditions</string>