feat(transcribe): English UI default, language switcher (NO/UK/PL), fix 504 timeout

- Default UI language to English; lang switcher (EN/NO/UK/PL) persisted in localStorage
- Rename 'rettssak/tingrett' preset to 'Mediation / legal meeting' — court recording is illegal
- Add Ukrainian (uk) and Polish (pl) as selectable audio transcription languages
- TRANSCRIBE_I18N translation object drives all status messages, labels, and trace text
- Apache ProxyTimeout raised to 1800s on server (was 300s — caused 504 on large files)
- set_time_limit(0) + ignore_user_abort(true) in api/transcribe.php
- applyTranscribeI18n() patches data-i18n / data-i18n-placeholder / data-i18n-aria attrs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 22:47:32 +02:00
parent 26f4e2231b
commit c77efa241c
4 changed files with 405 additions and 70 deletions
+36
View File
@@ -1300,6 +1300,42 @@ p {
margin-bottom: 0.35rem;
}
/* ─── UI Language switcher ────────────────────────────────────────────────── */
.lang-switcher {
display: flex;
align-items: center;
gap: 0.375rem;
padding-bottom: 0.625rem;
margin-bottom: 0.25rem;
border-bottom: 1px solid var(--line);
}
.lang-btn {
background: var(--bg);
border: 1px solid var(--line);
border-radius: 9999px;
color: var(--muted);
cursor: pointer;
font-size: 0.7rem;
font-weight: 600;
letter-spacing: 0.03em;
padding: 0.2rem 0.55rem;
transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.lang-btn:hover {
background: var(--soft-teal);
border-color: var(--teal);
color: var(--teal);
}
.lang-btn.is-active {
background: var(--teal);
border-color: var(--teal);
color: #fff;
}
.vocab-btn {
font-size: 0.78rem;
padding: 0.2rem 0.6rem;