feat(studio): run nitro scans in the background with cancel-re-attach and nightly auto-clean

This commit is contained in:
openhands committed 2026-09-19 13:41:14 +02:00
1 parent 9d571e0c29
commit 6c53f4680c
14 files changed
+1547 -303

No files matched your search

+72
View File
@@ -6503,6 +6503,78 @@
},
"admin": {
"studio": {
"nitroCleanup": {
"alreadyRunning": "Er draait al een scan — de resultaten volgen als die klaar is.",
"ageUnknown": "leeftijd onbekend",
"ageBelow": "< 1d",
"scanButton": "Furniture assets scannen",
"scanningAssets": "Assets scannen…",
"cancelButton": "Annuleren",
"deleteSelected": "{count} geselecteerd verwijderen",
"deleting": "Verwijderen…",
"redownloadBroken": "Opnieuw downloaden",
"redownloading": "Opnieuw downloaden…",
"autoClean": "Oude fakes opschonen",
"cleaning": "Opschonen…",
"exportManifest": "Manifest exporteren",
"exporting": "Exporteren…",
"phaseStems": "Furniture stems laden…",
"phaseReaddir": "Asset-mappen lezen…",
"phaseValidate": ".nitro-bundles valideren…",
"phaseScanning": "Scannen…",
"scanProgressFiles": "{count} bestanden",
"repairProgress": "ok {ok}, mislukt {failed}",
"attachedNotice": "De scan draait op de achtergrond verder — resultaten verschijnen als die klaar is.",
"sessionCancelled": "Scan geannuleerd.",
"onlyOldLabel": "Alleen bestanden ouder dan",
"onlyOldAgeLabel": "Minimumleeftijd in dagen om te tonen",
"onlyOldToggle": "Recente bestanden verbergen",
"daysLabel": "dagen",
"autoAgeLabel": "Minimumleeftijd in dagen voor opruimen",
"loadingResult": "Scanresultaat laden…",
"scannedStat": "asset-bestanden gescand",
"cachedNotice": "(in cache — mappen ongewijzigd)",
"fakeStat": "Fake-nitros (geen overeenkomend item)",
"brokenStat": "Kapotte nitros (niet parseerbaar)",
"groupEmpty": "Niets gevonden",
"selectedCount": "{count} geselecteerd",
"copiesBadge": "{count} kopieën",
"groupFakeLabel": "Fake-nitros",
"groupFakeDescription": "Deze bestanden matchen geen enkel item in items_base — overblijfselen van verwijderde of hernoemde furniture.",
"groupBrokenLabel": "Kapotte nitros",
"groupBrokenDescription": "Deze bestanden horen bij een item maar kunnen niet als geldige Nitro-bundle worden gelezen.",
"groupSwfLabel": "Verweesde SWFs",
"groupSwfDescription": ".swf-bestanden die geen enkel item in items_base matchen.",
"groupIconLabel": "Verweesde iconen",
"groupIconDescription": "Icoonbestanden die geen enkel item in items_base matchen.",
"warningText": "Een kapotte .nitro verwijderen laat het item in de database achter zonder bundle — download het liever opnieuw, of laat de catalogaudit het later opnieuw ophalen. Database-rijen worden door deze tool nooit verwijderd.",
"onlyAssetsTouched": "Alleen asset-bestanden worden aangeraakt — FurnitureData.json en database-rijen blijven intact.",
"emptyHint": "Scan elke furni-assetmap om fake- en kapotte nitro-bundles plus verweesde SWFs en iconen te vinden. Verwijder ze, download de kapotte opnieuw of ruim oude overblijfselen automatisch op.",
"noResult": "Nog geen scanresultaat — start eerst een furniture-assetscan.",
"scanFailed": "De scan is mislukt.",
"confirmDeleteTitle": "{count} assetbestand(en) verwijderen?",
"confirmDeleteDescription": "De bestanden worden uit elke map verwijderd (publiek + gespiegelde gamedata). Database-rijen worden nooit aangeraakt.",
"confirmDeleteLabel": "Verwijderen",
"confirmRepairTitle": "{count} kapotte .nitro-bundles opnieuw downloaden?",
"confirmRepairDescription": "De bundles worden opnieuw opgehaald van de geconfigureerde nitro-bronnen en over elke map geschreven (publiek + gespiegelde gamedata).",
"confirmRepairLabel": "Opnieuw downloaden",
"confirmAutoCleanTitle": "Fake-nitros ouder dan {days} dag(en) automatisch opruimen?",
"confirmAutoCleanDescription": "Alleen fake .nitro-bestanden (geen overeenkomend item) ouder dan de drempel worden verwijderd. Kapotte bundles en recente bestanden worden nooit aangeraakt.",
"confirmAutoCleanLabel": "Opschonen",
"toastDeletePartial": "{copies} kopie(ën) verwijderd, maar sommige bestanden konden niet worden verwijderd",
"toastDeleteDone": "{copies} bestandskopie(ën) verwijderd ({deleted} bestand(en))",
"toastRepairDone": "{count} .nitro-bundle(s) gerepareerd",
"toastRepairFailed": "Geen enkele bundle kon worden opgehaald ({failed} mislukt)",
"toastRepairCancelled": "Herstel geannuleerd",
"toastAutoCleanDone": "{deleted} oude fake .nitro-bestand(en) opgeruimd ({copies} kopieën). {recent} recente en {broken} kapotte overgeslagen.",
"toastAutoCleanNothing": "Niets oud genoeg om te verwijderen ({recent} recente en {broken} kapotte overgeslagen)",
"toastManifestDownload": "Scanmanifest gedownload",
"historyTitle": "Opruimgeschiedenis",
"historyScheduled": "gepland",
"historyManual": "handmatig",
"historyEntry": "{deleted} verwijderd ({copies} kopieën); {recent} recente en {broken} kapotte overgeslagen",
"historyErrors": "{count} fouten"
},
"importDiagnostics": {
"attempts": "Bestandsdiagnostiek",
"preliminary": "Voorafgaande controle van adressen; inhoud wordt tijdens import gevalideerd.",