Die Medientabelle spricht durchgehend dieselbe Sprache

Die Tonzeile nahm bereits die Formulierung vom Server, die Videozeile baute
ihren Text weiter selbst — "240p (H264)" neben "AAC · Mono", zwei
Schreibweisen in derselben Tabelle untereinander. Die gemessene Auflösung
wandert in den Tooltip, wo sie hingehört: 1040 ist keine Stufe, sondern ein
beschnittenes Bild.

Dazu: ein Spurtitel, der nur die Sprache wiederholt, fällt weg. "Deutsch ·
AAC · Mono · ‚Deutsch'" sagt dasselbe zweimal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-04 13:19:21 +02:00
co-authored by Claude Opus 5
parent 632d3efa35
commit 228c318ad2
3 changed files with 41 additions and 6 deletions
+11 -4
View File
@@ -108,10 +108,17 @@ public static class Benennung
if (Codec(codec) is { } c) teile.Add(c);
if (Kanaele(kanaele) is { } k) teile.Add(k);
// Der Titel aus der Datei nur, wenn er etwas hinzufügt — „SoundHandler"
// ist kein Name, sondern ein Rest aus dem Umpacken.
if (titel is { Length: > 0 } && !Nichtssagend.Contains(titel.Trim()))
teile.Add($"„{titel.Trim()}“");
// **Der Titel nur, wenn er etwas hinzufügt.** „SoundHandler" ist kein
// Name, sondern ein Rest aus dem Umpacken. Und ein Titel, der bloss
// die Sprache wiederholt, ergibt „Deutsch · AAC · Mono · ‚Deutsch'".
var blank = titel?.Trim();
if (blank is { Length: > 0 }
&& !Nichtssagend.Contains(blank)
&& !string.Equals(blank, Sprache(sprache), StringComparison.OrdinalIgnoreCase)
&& !string.Equals(blank, sprache?.Trim(), StringComparison.OrdinalIgnoreCase))
{
teile.Add($"„{blank}“");
}
return teile.Count > 0 ? string.Join(" · ", teile) : "Tonspur";
}
@@ -83,3 +83,22 @@ public class BenennungTests
public void Die_ganze_Bildspur() =>
Assert.That(Benennung.Bildspur("h264", 1040), Is.EqualTo("1080p · H.264"));
}
/// <summary>Nachtrag: Titel, die nichts hinzufügen.</summary>
public class SpurtitelTests
{
/// <summary>„Deutsch · AAC · Mono · ‚Deutsch'" sagt dasselbe zweimal.</summary>
[Test]
public void Ein_Titel_der_nur_die_Sprache_wiederholt_faellt_weg()
{
Assert.That(Benennung.Tonspur("deu", "aac", 1, "Deutsch"),
Is.EqualTo("Deutsch · AAC · Mono"));
Assert.That(Benennung.Tonspur("deu", "aac", 1, "deu"),
Is.EqualTo("Deutsch · AAC · Mono"));
}
[Test]
public void Ein_Titel_der_etwas_sagt_bleibt() =>
Assert.That(Benennung.Tonspur("deu", "aac", 1, "Audiodeskription"),
Is.EqualTo("Deutsch · AAC · Mono · „Audiodeskription“"));
}
+11 -2
View File
@@ -260,16 +260,25 @@ export function detailseite(art: Art, id: string, zurueck: () => void): HTMLElem
zeile('Datei', [datei.container?.toUpperCase(), groesse(datei.sizeBytes),
dauer(datei.durationSeconds)].filter(Boolean).join(' · '));
if (bild) zeile('Video', `${bild.height ? `${bild.height}p` : '—'} (${(bild.codec ?? '?').toUpperCase()})`);
// **Auch hier die Formulierung vom Server.** Vorher baute diese Zeile
// ihren Text selbst — „240p (H264)" statt „240p · H.264" —, und damit
// stand in derselben Tabelle zweierlei Schreibweise untereinander.
if (bild) {
const v = zeile('Video', spurname(bild));
// Die gemessene Höhe gehört in den Tooltip: 1040 ist keine Stufe,
// sondern ein beschnittenes Bild.
if (bild.width && bild.height) v.title = `${bild.width} × ${bild.height}`;
}
if (ton.length) zeile('Ton', ton.map(spurname).join(' · '));
if (text.length) zeile('Untertitel', text.map(spurname).join(' · '));
function zeile(name: string, wert: string): void {
function zeile(name: string, wert: string): HTMLElement {
const dt = document.createElement('dt');
dt.textContent = name;
const dd = document.createElement('dd');
dd.textContent = wert;
liste.append(dt, dd);
return dd;
}
return liste;