'Release', 'nav' => 'Release', 'eyebrow' => 'Release-Pipeline', 'heading' => 'Release-Steuerung', 'subtitle' => 'Release Candidate auf Staging schneiden — nur auf der Dev-Instanz.', 'dev_instance' => 'Dev-Instanz', 'current' => 'Aktuelle Version', 'channel' => 'Kanal', 'source' => 'Quelle', // option tiles 'choose' => 'Release Candidate schneiden', 'kind_continue' => 'Nächster RC', 'kind_patch' => 'Patch', 'kind_minor' => 'Minor', 'kind_major' => 'Major', 'tile_rc' => 'RC-Tag', 'hint' => 'Schneidet einen RC-Tag und pusht ihn nach Gitea → Mirror → CI → Staging.', // running / result 'running_title' => 'Release läuft', 'running' => 'Release Candidate :target wird geschnitten und gepusht …', 'in_progress' => 'läuft', 'staged' => 'Release Candidate :tag gepusht → Mirror → CI → Staging.', 'staged_label' => 'Zuletzt gepusht:', 'failed' => 'Release fehlgeschlagen: :reason', // pipeline rail (Tag → Mirror → CI; build readiness of a release candidate) 'pipeline' => 'Pipeline', 'pipe_sub_gitea' => 'Quelle · Tag wird hier erzeugt', 'pipe_sub_mirror' => 'Automatischer Push-Mirror', 'pipe_sub_ci' => 'Tests laufen', 'no_rc_running' => 'Kein Release Candidate in Arbeit.', 'state_done' => 'fertig', 'state_running' => 'läuft …', 'state_failed' => 'fehlgeschlagen', 'state_pending' => 'ausstehend', 'state_unknown' => 'unbekannt', // confirm modal (R5) 'confirm_title' => 'Release Candidate auf Staging schneiden?', 'confirm_body' => 'Schneidet einen Release Candidate von :target, taggt ihn und pusht nach Gitea → Mirror → CI → Staging. Der Tag ist unwiderruflich.', 'confirm_action' => 'Release Candidate schneiden', // errors '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?', // publish + yank (B2) 'publish' => 'Veröffentlichen', 'deploy_public' => 'Deploy to Public (:tag)', 'promote_stable' => 'Promote to Stable (:v)', 'publish_hint' => 'Löst einen GitHub-Workflow aus, der die Version ins öffentliche Repo befördert.', 'public_confirm_title' => 'Release Candidate öffentlich machen?', 'public_confirm_body' => 'Befördert :tag ins öffentliche Repo (clusev/clusev).', 'public_action' => 'Veröffentlichen', 'public_dispatched' => 'Public-Promotion ausgelöst: :tag.', 'stable_confirm_title' => 'Als Stable freigeben?', 'stable_confirm_body' => 'Finalisiert den Release Candidate als stabile :v im öffentlichen Stable-Kanal.', 'stable_action' => 'Stable freigeben', 'stable_dispatched' => 'Stable-Promotion ausgelöst: :v.', 'promote_failed' => 'Auslösen fehlgeschlagen — Token-Scope (Actions: Write) prüfen.', 'yank_title' => 'Public-Release zurückziehen', 'yank' => 'Yank', 'yank_empty' => 'Keine Public-Tags ladbar.', 'yank_unknown' => 'Dieser Tag ist nicht (mehr) public.', 'yank_confirm_title' => 'Release zurückziehen?', 'yank_confirm_body' => 'Löscht den Tag :tag auf clusev/clusev — Nutzer bekommen ihn nicht mehr angeboten. Die History bleibt.', 'yank_action' => 'Zurückziehen', 'yank_dispatched' => 'Yank ausgelöst: :tag.', ];