Fünf Punkte aus dem Praxistest
iPad meldete sich nie an Die Ursache ist unangenehm speziell: Wer im Browser schon bei Plex angemeldet ist, wird von app.plex.tv/auth sofort auf watch.plex.tv weitergeschickt — OHNE dass der Code verknüpft wird. Man sieht sich angemeldet, die App wartet vergeblich, und es gibt keinerlei Hinweis. Jetzt wird plex.tv/link mit eingetragenem Code geöffnet. Diese Seite tut nur eine Sache: den Code bestätigen. Die Gerätekennung steckt ohnehin schon im PIN. Dazu ein Ausweg: bleibt es nach fünfzehn Sekunden ohne Token, erscheint der Code im Anmeldebildschirm zum Abtippen. Schließt man das Fenster ohne Erfolg, bleibt er stehen statt abzumelden — er gilt weiter. Download fragte nicht nach der Qualität Jetzt Original, Full HD, HD oder Sparsam, jeweils mit geschätzter Größe. Die Größe ist das eigentliche Entscheidungskriterium — „Full HD" allein sagt nicht, ob es aufs Telefon passt. Die komprimierten Stufen laufen über den Universal-Transcoder und sind weiterhin NICHT am Server geprüft; steht so im Quelltext. Schwarzes Bild ohne Anzeige Der Player kannte nur „spielt" und „spielt nicht". Wartete er auf Daten, stand man vor einem Standbild ohne Hinweis. Es gibt jetzt einen eigenen Pufferzustand mit Anzeige. Aufmacher war beschnitten Er stand auf 3:4, Plex liefert als `art` aber 16:9 — mit scaledToFill ging links und rechts je ein Viertel verloren, ohne dass man es dem Bild ansah. Die Seitenverhältnisse liegen jetzt an einer Stelle in FlixyAspectRatio. Schwarze Leiste über dem Aufmacher .ultraThinMaterial statt undurchsichtigem Grund: das Bild läuft unscharf hinter der Leiste weiter, statt an einer harten Kante zu enden. Weichgezeichnet, nicht abgedunkelt. 139 Tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -972,6 +972,74 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noMedia": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Zu diesem Titel liegt keine Datei auf dem Server."
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "There's no file for this title on the server."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noPart": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Die Datei auf dem Server hat keinen abrufbaren Teil. Möglicherweise wurde sie noch nicht analysiert."
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "The file on the server has no retrievable part. It may not have been analyzed yet."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noServer": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Keine Verbindung zum Server."
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "No connection to the server."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noURL": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Die Download-Adresse ließ sich nicht bilden."
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "The download address couldn't be built."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.space %@ %@": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
@@ -1905,6 +1973,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"player.quality": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Qualität"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Quality"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"player.relayWarning": {
|
||||
"comment": "Warnung im Player, wenn die Verbindung über die Plex-Vermittlung läuft",
|
||||
"extractionState": "stale",
|
||||
@@ -2025,6 +2109,57 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.automatic": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Automatisch"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Automatic"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.fullHD": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Full HD · 1080p"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Full HD · 1080p"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.hd": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "HD · 720p"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "HD · 720p"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.high": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
@@ -2059,6 +2194,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.lowRes": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Sparsam · 480p"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Data saver · 480p"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.medium": {
|
||||
"extractionState": "stale",
|
||||
"localizations": {
|
||||
@@ -3432,146 +3584,68 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noServer": {
|
||||
"signIn.manualHint": {
|
||||
"comment": "Hinweis, wenn die Browser-Verknüpfung nicht greift",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Keine Verbindung zum Server."
|
||||
"value": "Hat das Fenster nicht verknüpft? Öffne plex.tv/link und gib diesen Code ein:"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "No connection to the server."
|
||||
"value": "Window didn't link? Open plex.tv/link and enter this code:"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noMedia": {
|
||||
"downloads.quality.title": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Zu diesem Titel liegt keine Datei auf dem Server."
|
||||
"value": "In welcher Qualität?"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "There's no file for this title on the server."
|
||||
"value": "Which quality?"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noPart": {
|
||||
"downloads.quality.hint": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Die Datei auf dem Server hat keinen abrufbaren Teil. Möglicherweise wurde sie noch nicht analysiert."
|
||||
"value": "Niedrigere Stufen rechnet der Server unterwegs herunter. Das dauert länger, spart aber deutlich Platz."
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "The file on the server has no retrievable part. It may not have been analyzed yet."
|
||||
"value": "Lower levels are transcoded by the server. That takes longer but saves a lot of space."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloads.refused.noURL": {
|
||||
"downloads.quality.approx %@ %@": {
|
||||
"comment": "Platzhalter: Stufenname, geschätzte Größe",
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Die Download-Adresse ließ sich nicht bilden."
|
||||
"value": "%@ · etwa %@"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "The download address couldn't be built."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"player.quality": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Qualität"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Quality"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.automatic": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Automatisch"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Automatic"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.fullHD": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Full HD · 1080p"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Full HD · 1080p"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.hd": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "HD · 720p"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "HD · 720p"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality.lowRes": {
|
||||
"localizations": {
|
||||
"de": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Sparsam · 480p"
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Data saver · 480p"
|
||||
"value": "%@ · about %@"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user