release: harden archive recovery and lifecycle for v2.0.63
Corroborate CRC failures across extraction backends, retry only implicated multipart volumes, and distinguish corruption, missing volumes, I/O failures, and wrong passwords across native, Zip4j, and JBinding paths. Make disk retries generation-safe, preserve selective run scopes and cooldowns, protect shared output files during cleanup, validate manual extraction batches atomically, and restore interrupted integrity work safely. Prioritize active package operations in the UI, strengthen extraction IPC validation, compile the JVM sidecar before release builds, and verify shipped JVM resources byte-for-byte in every Windows artifact.
This commit is contained in:
@@ -49,6 +49,35 @@ describe("renderer localization", () => {
|
||||
expect(translateUiText(english, "de")).toBe(german);
|
||||
});
|
||||
|
||||
it.each([
|
||||
["CRC-Check läuft", "CRC check running"],
|
||||
["Entpacken - Ausstehend", "Extracting - Pending"],
|
||||
["Entpacken - Warten auf Parts", "Extracting - Waiting for parts"],
|
||||
["Archive stabilisieren...", "Stabilizing archives..."],
|
||||
["Entpacken vorbereiten...", "Preparing extraction..."],
|
||||
["Entpacken wird neu gestartet...", "Restarting extraction..."],
|
||||
["Nested Entpacken...", "Nested extraction..."],
|
||||
["Umbenennen...", "Renaming..."],
|
||||
["Tonspur...", "Audio track..."],
|
||||
["Aufräumen...", "Cleaning up..."],
|
||||
["Verschiebe Videos...", "Moving videos..."]
|
||||
])("translates package runtime state %s in both directions", (german, english) => {
|
||||
expect(translateUiText(german, "en")).toBe(english);
|
||||
expect(translateUiText(english, "de")).toBe(german);
|
||||
});
|
||||
|
||||
it.each([
|
||||
["Entpacken - 42%", "Extracting - 42%"],
|
||||
["Passwort gefunden", "Password found"],
|
||||
["Passwort knacken: 50% (2/4)", "Cracking password: 50% (2/4)"],
|
||||
["Entpacken (1/3) - Nächstes Archiv...", "Extracting (1/3) - Next archive..."]
|
||||
])("translates compact runtime text %s for visible and attribute surfaces", (german, english) => {
|
||||
expect(translateUiText(german, "en")).toBe(english);
|
||||
expect(translateUiText(english, "de")).toBe(german);
|
||||
expect(translateUiText(`Bereit · ${german}`, "en")).toBe(`Ready · ${english}`);
|
||||
expect(translateUiText(`Ready · ${english}`, "de")).toBe(`Bereit · ${german}`);
|
||||
});
|
||||
|
||||
it("translates the complete history surface including status values", () => {
|
||||
const translations = new Map([
|
||||
["Alle Einträge", "All entries"],
|
||||
|
||||
Reference in New Issue
Block a user