[Imapsync] Add parallel imapsync support

This commit is contained in:
FreddleSpl0it
2026-07-17 19:31:09 +02:00
parent 06a2a14c55
commit 496c3a51ac
13 changed files with 521 additions and 36 deletions
+15 -4
View File
@@ -397,7 +397,12 @@
"logo_dark_label": "Invertiert für den Darkmode",
"logo_normal_label": "Normal",
"user_link": "Nutzer-Link",
"filter": "Filter"
"filter": "Filter",
"syncjobs": "Sync Jobs",
"syncjob_max_parallel": "Max. parallele Sync-Prozesse",
"syncjob_max_parallel_info": "Wie viele Sync-Jobs gleichzeitig laufen dürfen.",
"syncjob_max_kb_per_second": "Bandbreiten-Limit pro Prozess (KB/s)",
"syncjob_max_kb_per_second_info": "0 = unbegrenzt. Kappt jeden Sync-Prozess; ein per-Job-Wert wird hierdurch begrenzt. Gesamt ≈ dieser Wert × parallele Prozesse."
},
"danger": {
"access_denied": "Zugriff verweigert oder unvollständige/ungültige Daten",
@@ -559,7 +564,8 @@
"imapsync_source_oauth_endpoint_invalid": "Ungültige OAuth2-Endpoint-URL",
"imapsync_source_oauth_extra_invalid": "OAuth2-Extra-Parameter müssen gültiges JSON sein",
"imapsync_source_invalid": "Ungültige Daten der Sync-Quelle",
"imapsync_source_oauth_invalid": "Ungültige OAuth2-Konfiguration"
"imapsync_source_oauth_invalid": "Ungültige OAuth2-Konfiguration",
"imapsync_max_parallel_invalid": "Anzahl paralleler Prozesse muss mindestens 1 sein"
},
"datatables": {
"collapse_all": "Alle Einklappen",
@@ -1188,7 +1194,9 @@
"imapsync_source_added": "Sync-Quelle %s wurde hinzugefügt",
"imapsync_source_modified": "Sync-Quelle %s wurde gespeichert",
"imapsync_source_deleted": "Sync-Quelle %s wurde gelöscht",
"imapsync_source_token_refreshed": "OAuth-Token für %s wurde erneuert"
"imapsync_source_token_refreshed": "OAuth-Token für %s wurde erneuert",
"max_parallel_saved": "Sync-Job-Einstellungen gespeichert",
"imapsync_order_updated": "Sync-Job auf Position %s verschoben"
},
"tfa": {
"authenticators": "Authentikatoren",
@@ -1282,7 +1290,10 @@
"timeout2": "Timeout für Verbindung zum lokalen Host",
"maxbytespersecond": "Max. Übertragungsrate in Bytes/s (0 für unlimitiert)",
"custom_params": "Eigene Parameter",
"custom_params_hint": "Richtig: --param=xy, falsch: --param xy"
"custom_params_hint": "Richtig: --param=xy, falsch: --param xy",
"order_id": "Position",
"order_id_hint": "Kleinere Position läuft zuerst; Ändern sortiert die globale Warteschlange um.",
"set_position": "Position setzen"
},
"user": {
"action": "Aktion",
+15 -4
View File
@@ -397,7 +397,12 @@
"user_quicklink": "Hide Quicklink to User Login Page",
"validate_license_now": "Validate GUID against license server",
"verify": "Verify",
"yes": "✓"
"yes": "✓",
"syncjobs": "Sync jobs",
"syncjob_max_parallel": "Max. parallel sync processes",
"syncjob_max_parallel_info": "How many sync jobs may run at the same time.",
"syncjob_max_kb_per_second": "Bandwidth limit per process (KB/s)",
"syncjob_max_kb_per_second_info": "0 = unlimited. Caps every sync process; a per-job value is capped by this. Total ≈ this × max parallel."
},
"danger": {
"access_denied": "Access denied or invalid form data",
@@ -559,7 +564,8 @@
"imapsync_source_oauth_endpoint_invalid": "Invalid OAuth2 endpoint URL",
"imapsync_source_oauth_extra_invalid": "OAuth2 extra parameters must be valid JSON",
"imapsync_source_invalid": "Invalid sync source data",
"imapsync_source_oauth_invalid": "Invalid OAuth2 configuration"
"imapsync_source_oauth_invalid": "Invalid OAuth2 configuration",
"imapsync_max_parallel_invalid": "Parallel process count must be at least 1"
},
"datatables": {
"collapse_all": "Collapse All",
@@ -1195,7 +1201,9 @@
"imapsync_source_added": "Sync source %s has been added",
"imapsync_source_modified": "Sync source %s has been saved",
"imapsync_source_deleted": "Sync source %s has been deleted",
"imapsync_source_token_refreshed": "OAuth token for %s has been refreshed"
"imapsync_source_token_refreshed": "OAuth token for %s has been refreshed",
"max_parallel_saved": "Sync job settings saved",
"imapsync_order_updated": "Sync job moved to position %s"
},
"tfa": {
"authenticators": "Authenticators",
@@ -1289,7 +1297,10 @@
"timeout2": "Timeout for connection to local host",
"maxbytespersecond": "Max. bytes per second <br><small>(0 = unlimited)</small>",
"custom_params": "Custom parameters",
"custom_params_hint": "Right: --param=xy, wrong: --param xy"
"custom_params_hint": "Right: --param=xy, wrong: --param xy",
"order_id": "Position",
"order_id_hint": "Lower position runs first; setting it re-sorts the global queue.",
"set_position": "Set position"
},
"user": {
"action": "Action",