diff --git a/backend/analyze_videomae.go b/backend/analyze_videomae.go index d6a46d8..0716ec5 100644 --- a/backend/analyze_videomae.go +++ b/backend/analyze_videomae.go @@ -220,7 +220,7 @@ func applyVideoMAEPositionClipsForAnalyze( predictions, err := predictVideoMAEPositionClipsForAnalyze(ctx, clips) if err != nil { if ctx.Err() == nil { - appLogln("VideoMAE Clip-Analyse uebersprungen:", err) + appLogln("VideoMAE Clip-Analyse übersprungen:", err) } return highlightHits, positionEvidence } diff --git a/backend/build_deb.sh b/backend/build_deb.sh index 51fd3fb..69c257c 100644 --- a/backend/build_deb.sh +++ b/backend/build_deb.sh @@ -249,7 +249,7 @@ Beenden: nsfwapp-stop Desktop: - Der Launcher "NSFW App" startet das Backend und oeffnet https://localhost:9999. + Der Launcher "NSFW App" startet das Backend und öffnet https://localhost:9999. Per Rechtsklick auf "NSFW App" gibt es Aktionen fuer Frontend, Datenordner, Log und Beenden, sofern die Desktop-Umgebung Desktop Actions anzeigt. diff --git a/backend/dist/nsfwapp-linux-amd64 b/backend/dist/nsfwapp-linux-amd64 index 44c29a4..cfa7622 100644 Binary files a/backend/dist/nsfwapp-linux-amd64 and b/backend/dist/nsfwapp-linux-amd64 differ diff --git a/backend/dist/nsfwapp.exe b/backend/dist/nsfwapp.exe index 032b1ab..9fd9a97 100644 Binary files a/backend/dist/nsfwapp.exe and b/backend/dist/nsfwapp.exe differ diff --git a/backend/dist/nsfwapp_amd64.deb b/backend/dist/nsfwapp_amd64.deb index 72f184e..4797197 100644 Binary files a/backend/dist/nsfwapp_amd64.deb and b/backend/dist/nsfwapp_amd64.deb differ diff --git a/backend/settings_database_backup.go b/backend/settings_database_backup.go index f444b6e..81e707e 100644 --- a/backend/settings_database_backup.go +++ b/backend/settings_database_backup.go @@ -200,7 +200,7 @@ func settingsDatabaseBackupHandler(w http.ResponseWriter, r *http.Request) { f, err := os.Open(tmpPath) if err != nil { - http.Error(w, "Backup-Datei konnte nicht geoeffnet werden: "+err.Error(), http.StatusInternalServerError) + http.Error(w, "Backup-Datei konnte nicht geöffnet werden: "+err.Error(), http.StatusInternalServerError) return } defer f.Close() @@ -230,7 +230,7 @@ func settingsSQLiteDatabaseBackupHandler(w http.ResponseWriter, r *http.Request, db, err := sql.Open("sqlite", storeConfig.SQLitePath) if err != nil { - http.Error(w, "SQLite konnte nicht geoeffnet werden: "+err.Error(), http.StatusInternalServerError) + http.Error(w, "SQLite konnte nicht geöffnet werden: "+err.Error(), http.StatusInternalServerError) return } defer db.Close() @@ -252,7 +252,7 @@ func settingsSQLiteDatabaseBackupHandler(w http.ResponseWriter, r *http.Request, f, err := os.Open(tmpPath) if err != nil { - http.Error(w, "Backup-Datei konnte nicht geoeffnet werden: "+err.Error(), http.StatusInternalServerError) + http.Error(w, "Backup-Datei konnte nicht geöffnet werden: "+err.Error(), http.StatusInternalServerError) return } defer f.Close() diff --git a/backend/settings_database_migrate.go b/backend/settings_database_migrate.go index 6016e44..c9797ac 100644 --- a/backend/settings_database_migrate.go +++ b/backend/settings_database_migrate.go @@ -233,7 +233,7 @@ func settingsDatabaseMigrateHandler(w http.ResponseWriter, r *http.Request) { refreshedStore := NewModelStore(targetConfig) if err := refreshedStore.Load(); err != nil { - http.Error(w, "Ziel-Datenbank konnte nach Migration nicht geoeffnet werden: "+err.Error(), http.StatusInternalServerError) + http.Error(w, "Ziel-Datenbank konnte nach Migration nicht geöffnet werden: "+err.Error(), http.StatusInternalServerError) return } @@ -297,13 +297,13 @@ func migrateModelStoreData(sourceConfig, targetConfig ModelStoreConfig) (int64, source := NewModelStore(sourceConfig) if err := source.Load(); err != nil { - return 0, appErrorf("Quelle konnte nicht geoeffnet werden: %w", err) + return 0, appErrorf("Quelle konnte nicht geöffnet werden: %w", err) } defer source.Close() target := NewModelStore(targetConfig) if err := target.Load(); err != nil { - return 0, appErrorf("Ziel konnte nicht geoeffnet werden: %w", err) + return 0, appErrorf("Ziel konnte nicht geöffnet werden: %w", err) } defer target.Close() diff --git a/backend/training.go b/backend/training.go index 4314ec2..c77b792 100644 --- a/backend/training.go +++ b/backend/training.go @@ -2767,7 +2767,7 @@ func trainingRunJob(ctx context.Context, root string, count int) { } else if poseStatus != "failed" { poseStatus = "skipped_no_pose_data" poseOutput = fmt.Sprintf( - "YOLO26 Pose uebersprungen: zu wenige Skeleton-Beispiele. Train=%d, Val=%d. Benoetigt: mindestens %d Train und %d Val.", + "YOLO26 Pose übersprungen: zu wenige Skeleton-Beispiele. Train=%d, Val=%d. Benoetigt: mindestens %d Train und %d Val.", poseTrainCount, poseValCount, minPoseTrainCount, @@ -2865,7 +2865,7 @@ func trainingRunJob(ctx context.Context, root string, count int) { } else if videoMAEStatus != "failed" { videoMAEStatus = "skipped_no_videomae_data" videoMAEOutput = fmt.Sprintf( - "VideoMAE uebersprungen: zu wenige Clip-Beispiele. Train=%d, Val=%d. Benoetigt: mindestens %d Train und %d Val.", + "VideoMAE übersprungen: zu wenige Clip-Beispiele. Train=%d, Val=%d. Benoetigt: mindestens %d Train und %d Val.", videoMAETrainCount, videoMAEValCount, minVideoMAETrainCount, @@ -2905,7 +2905,7 @@ func trainingRunJob(ctx context.Context, root string, count int) { } else if poseStatus == "trained" && detectorStatus != "failed" { message = "Training abgeschlossen. YOLO26 Pose wurde trainiert." } else if poseStatus == "skipped_no_pose_data" && detectorStatus == "trained" { - message += " YOLO26 Pose wurde uebersprungen: zu wenige Skeleton-Beispiele." + message += " YOLO26 Pose wurde übersprungen: zu wenige Skeleton-Beispiele." } else if poseStatus == "failed" { if detectorStatus == "failed" { message += " YOLO26 Pose ist ebenfalls fehlgeschlagen." @@ -2925,7 +2925,7 @@ func trainingRunJob(ctx context.Context, root string, count int) { message += " VideoMAE wurde trainiert." } else if videoMAEStatus == "skipped_no_videomae_data" { if detectorStatus == "trained" || poseStatus == "trained" { - message += " VideoMAE wurde uebersprungen: zu wenige Clip-Beispiele." + message += " VideoMAE wurde übersprungen: zu wenige Clip-Beispiele." } } else if videoMAEStatus == "failed" { message += " VideoMAE ist fehlgeschlagen." diff --git a/frontend/src/components/ui/RecorderSettings.tsx b/frontend/src/components/ui/RecorderSettings.tsx index c64a20d..6d1393a 100644 --- a/frontend/src/components/ui/RecorderSettings.tsx +++ b/frontend/src/components/ui/RecorderSettings.tsx @@ -1351,7 +1351,7 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) { const ok = window.confirm( `Datenbank-Backup "${file.name}" wiederherstellen?\n\n` + - 'Das ueberschreibt die aktuelle Datenbank. Dieser Schritt kann nicht automatisch rueckgaengig gemacht werden.' + 'Das überschreibt die aktuelle Datenbank. Dieser Schritt kann nicht automatisch rueckgaengig gemacht werden.' ) if (!ok) return @@ -1414,7 +1414,7 @@ export default function RecorderSettings({ onAssetsGenerated }: Props) { const ok = window.confirm( `Aktive Datenbank von ${databaseTypeLabel(loadedDatabaseType)} nach ${databaseTypeLabel(databaseType)} migrieren?\n\n` + - 'Die Ziel-Datenbank wird mit den aktuellen Model-Daten ueberschrieben. Danach wird die App auf die Ziel-Datenbank umgestellt.' + 'Die Ziel-Datenbank wird mit den aktuellen Model-Daten überschrieben. Danach wird die App auf die Ziel-Datenbank umgestellt.' ) if (!ok) return