Kratzplatz, Markenerkennung, Tonabdruck — erfundene Wörter für Fachbegriffe
„Scratch disk" wörtlich zu übersetzen ist derselbe Fehler wie „Wachhund"
für Watchdog und „Keks" für Cookie. Und „Marke" ist kein Fachbegriff für
das, was gemeint ist: Jellyfin nennt diese Abschnitte Media Segments, und
das ist auch das Wort, in dem sich darüber reden lässt.
Kratzplatz* → Transcode* (was es ist, steht in FLARO_TRANSCODE)
Marke, Marken → Segment, Segmente
Markenerkennung → Segmenterkennung
Markenart/-suche → Segmentart/-suche
Tonabdruck → Fingerprint (Chromaprint nennt es so)
Tonabgleich → Fingerprintabgleich
Schlüsselbild → Keyframe
Bildabtaster → Frameabtaster
Gewöhnliches Deutsch bleibt gewöhnliches Deutsch: Wartung, Freigabe,
Meldung, Abspann, Vorspann. Das war nie das Problem.
**Was sich nicht ändert, und zwar mit Absicht.** Die drei
Einstellungsschlüssel `wartung.kratzplatz.paket.*` bleiben, wie sie sind —
sie stehen in der Datenbank, und ein neuer Name hiesse, dass die Werte
des Nutzers stillschweigend auf die Vorgabe zurückfallen. Dasselbe für
die Endpunktpfade `/marken`: sie sind nicht sichtbar, und ein Umbenennen
wäre Diff ohne Gewinn.
**Die Migration ist von Hand geschrieben.** `dotnet ef` hat ein Gerüst
erzeugt, das beide Tabellen löscht und neu anlegt — es sieht eine
verschwundene und eine neue Tabelle, nicht eine umbenannte. Damit wäre
jedes erkannte Segment und jeder Vermerk „hier wurde schon gesucht" weg
gewesen. `RenameTable` und `RenameIndex` tun dasselbe, ohne eine Zeile
anzufassen; nachgemessen an einer echten SQLite-Datei: Zeilen vorher 1
und 1, nachher 1 und 1, Inhalt unverändert.
Nachgezogen: in `bilder.ts` und `main.ts` heisst „marke" ein Häkchen und
das Logo — die blieben unberührt. Und „Segment" ist sächlich, was eine
Blindersetzung nicht weiss: „eine Segment" stand danach an vierzehn
Stellen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
32f592b83e
commit
ed13d5fa43
@@ -333,12 +333,12 @@ public class StreamTests
|
||||
/// Strom fängt bei null an, der Film bei Minute 30.
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// <b>Und „echt" heisst: beim Schlüsselbild.</b> Dieser Test stand vorher
|
||||
/// <b>Und „echt" heisst: beim Keyframe.</b> Dieser Test stand vorher
|
||||
/// auf „genau zwei Sekunden" und hielt damit einen Fehler fest. Ein
|
||||
/// kopierter Bildstrom lässt sich nicht mitten in einer Bildgruppe
|
||||
/// aufschneiden: der Strom fängt beim Schlüsselbild davor an, und wer
|
||||
/// aufschneiden: der Strom fängt beim Keyframe davor an, und wer
|
||||
/// trotzdem „zwei" zurückmeldet, verschiebt die Uhr des Spielers um den
|
||||
/// Unterschied. Diese Testdatei hat genau ein Schlüsselbild, bei null —
|
||||
/// Unterschied. Diese Testdatei hat genau ein Keyframe, bei null —
|
||||
/// also ist null die richtige Antwort.
|
||||
/// </para>
|
||||
/// </remarks>
|
||||
@@ -353,10 +353,10 @@ public class StreamTests
|
||||
Assert.That(strom.StartSeconds, Is.LessThanOrEqualTo(2),
|
||||
"Weiter als gewünscht darf der Strom nie anfangen — das überspränge Film.");
|
||||
Assert.That(strom.StartSeconds, Is.EqualTo(0),
|
||||
"Diese Datei hat nur ein Schlüsselbild, bei null.");
|
||||
"Diese Datei hat nur ein Keyframe, bei null.");
|
||||
}
|
||||
|
||||
/// <summary>Schliessen räumt auf — sonst füllt sich der Kratzplatz.</summary>
|
||||
/// <summary>Schliessen räumt auf — sonst füllt sich der Transcode-Cache.</summary>
|
||||
[Test]
|
||||
public async Task Schliessen_raeumt_die_Sitzung_weg()
|
||||
{
|
||||
@@ -501,7 +501,7 @@ public class StreamTests
|
||||
/// <para>
|
||||
/// <b>Verglichen wird mit dem gemeldeten Vorlauf, nicht mit dem
|
||||
/// gewünschten</b> — und das ist keine Bequemlichkeit. Beim Kopieren
|
||||
/// beginnt ffmpeg am Schlüsselbild vor dem Wunsch; in einem Prüfclip von
|
||||
/// beginnt ffmpeg am Keyframe vor dem Wunsch; in einem Prüfclip von
|
||||
/// vier Sekunden ist das die Null. Der Untertitel muss zu dem passen, was
|
||||
/// wirklich läuft.
|
||||
/// </para>
|
||||
|
||||
Reference in New Issue
Block a user