feat(release): localized strings + audit labels for staging releases

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat/v1-foundation
boban 2026-06-22 23:56:09 +02:00
parent 76c1d46d12
commit c696950f25
5 changed files with 47 additions and 1 deletions

View File

@ -35,7 +35,7 @@ class AuditEvent extends Model
/** Actions that record a failure or security event — surfaced with a warning style. */
private const ERROR_ACTIONS = [
'auth.login_failed', 'auth.2fa_failed', 'auth.ip_banned',
'fail2ban.ban', 'wg.action-failed',
'fail2ban.ban', 'wg.action-failed', 'deploy.staging_release_failed',
];
/**

View File

@ -40,6 +40,8 @@ return [
'auth.ip_unbanned' => 'IP-Sperre aufgehoben',
'auth.protection_updated' => 'Anmeldeschutz geändert',
'deploy.update_request' => 'Update angefordert',
'deploy.staging_release' => 'Staging-Release angefordert',
'deploy.staging_release_failed' => 'Staging-Release fehlgeschlagen',
'fail2ban.ban' => 'fail2ban: IP gesperrt',
'fail2ban.unban' => 'fail2ban: IP entsperrt',
'fail2ban.configure' => 'fail2ban konfiguriert',

21
lang/de/release.php Normal file
View File

@ -0,0 +1,21 @@
<?php
return [
'title' => 'Release',
'nav' => 'Release',
'heading' => 'Release-Steuerung',
'subtitle' => 'Beta auf Staging schneiden — nur auf der Dev-Instanz.',
'current' => 'Aktuelle Version',
'continue_beta' => 'Nächste Beta (:v)',
'bump_patch' => 'Patch-Beta (:v)',
'bump_minor' => 'Minor-Beta (:v)',
'bump_major' => 'Major-Beta (:v)',
'hint' => 'Schneidet einen Beta-Tag und pusht ihn nach Gitea → Mirror → CI → Staging.',
'running' => 'Beta :target wird geschnitten und gepusht …',
'staged' => 'Beta :tag gepusht → Mirror → CI → Staging.',
'failed' => 'Release fehlgeschlagen: :reason',
'invalid_target' => 'Ungültige Ziel-Version.',
'throttled' => 'Zu viele Versuche — in :seconds s erneut.',
'write_failed' => 'Anfrage konnte nicht geschrieben werden (Signal-Ordner nicht beschreibbar).',
'no_host_response' => 'Keine Antwort vom Host. Läuft der Release-Watcher?',
];

View File

@ -40,6 +40,8 @@ return [
'auth.ip_unbanned' => 'IP ban lifted',
'auth.protection_updated' => 'Login protection changed',
'deploy.update_request' => 'Update requested',
'deploy.staging_release' => 'Staging release requested',
'deploy.staging_release_failed' => 'Staging release failed',
'fail2ban.ban' => 'fail2ban: IP banned',
'fail2ban.unban' => 'fail2ban: IP unbanned',
'fail2ban.configure' => 'fail2ban configured',

21
lang/en/release.php Normal file
View File

@ -0,0 +1,21 @@
<?php
return [
'title' => 'Release',
'nav' => 'Release',
'heading' => 'Release control',
'subtitle' => 'Cut a staging beta — dev instance only.',
'current' => 'Current version',
'continue_beta' => 'Next beta (:v)',
'bump_patch' => 'Patch beta (:v)',
'bump_minor' => 'Minor beta (:v)',
'bump_major' => 'Major beta (:v)',
'hint' => 'Cuts a beta tag and pushes it to Gitea → mirror → CI → staging.',
'running' => 'Cutting and pushing beta :target …',
'staged' => 'Beta :tag pushed → mirror → CI → staging.',
'failed' => 'Release failed: :reason',
'invalid_target' => 'Invalid target version.',
'throttled' => 'Too many attempts — retry in :seconds s.',
'write_failed' => 'Could not write the request (signal directory not writable).',
'no_host_response' => 'No response from the host. Is the release watcher running?',
];