Finish an archive update in one go and translate Kantarci Reisen into Turkish

The request that swaps the files now ends with a plain page instead of running on through the
framework with old code in memory and new code on disk - that is what answered with a 500 after
a successful update. The page calls the second step itself with a one-time key: migrations,
clean-up, maintenance off, back to the system screen (ADR 112).

Turkish is complete in the fixed template texts and form messages. Two language switches on one
page get distinct landmark names. Kantarci Reisen gets a Turkish version of every page, the
header, footer, menu and enquiry form, with a DE · TR switch; the reset script applies it.
The DM Sans 600 files are needed after all and are committed with fonts.css.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
kantarciandClaude Opus 5.5 committed 2026-10-09 17:36:25 +02:00
1 parent 8aee38bde8
commit 47292c7266
14 files changed
+617 -11

No files matched your search

+4
View File
@@ -109,6 +109,10 @@ final class ArchiveUpdateTest extends TestCase
$offen = $this->updater()->pending();
self::assertNotNull($offen, 'Ohne Marke findet niemand mehr den zweiten Schritt.');
self::assertSame('1.1.0', $offen['fassung']);
// Mit dem Einmalschlüssel ruft die Zwischenseite den Abschluss selbst auf (ADR 112).
self::assertMatchesRegularExpression('/^[a-f0-9]{32}$/D', (string) ($offen['token'] ?? ''));
self::assertSame($offen['token'], $ergebnis['token']);
self::assertSame('1.1.0', $ergebnis['fassung']);
}
public function testNothingIsPendingBeforeAnUpdateAndAfterAFailedOne(): void