Der zweite Server. Eigenes Target neben PlexKit, nicht darin — die beiden teilen die neutrale Schicht und sonst nichts. Die Anmeldung geht zuerst über **Quick Connect**: die App zeigt einen sechsstelligen Code, den man in einem bereits angemeldeten Client bestätigt. Damit gilt hier dieselbe Zusage wie bei Plex — das Passwort erreicht Flixy nie. Benutzername und Passwort bleiben als Rückfall, falls der Server Quick Connect abgeschaltet hat; dann hält die App das Passwort für die Dauer einer Anfrage und speichert es nirgends. Zwei Stellen, an denen sich eine Übersetzung verrechnet, und die deshalb Tests haben: Jellyfin zählt Zeiten in Ticks zu hundert Nanosekunden. Eine Null zu viel, und aus 44 Minuten werden siebeneinhalb Stunden. Und es meldet die **ungesehenen** Folgen, nicht die gesehenen. Ungeprüft übernommen stünde bei einer fast fertigen Serie „9 von 24" statt „15 von 24". Dass die Adressen den Token tragen, steht hier von Anfang an — bei Plex hat genau das tagelang gekostet, weil AVPlayer keine Kopfzeilen mitschickt. Zwei Fähigkeiten sind ausdrücklich nicht da: Sterne-Bewertungen kennt Jellyfin nicht, nur Daumen hoch und runter. Und die Adresse einer verkleinerten Fassung gibt es erst nach einer Anfrage — sie zu erfinden hieße, eine Adresse anzubieten, die nicht antwortet. Die Startseite ist nachsichtig gebaut: fällt „Als Nächstes" aus, bleibt deshalb nicht die ganze Seite leer. Die App bietet Jellyfin noch nicht an — das ist der nächste Schritt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
102 lines
2.0 KiB
Plaintext
102 lines
2.0 KiB
Plaintext
{
|
|
"sourceLanguage": "en",
|
|
"version": "1.0",
|
|
"strings": {
|
|
"row.continueWatching": {
|
|
"localizations": {
|
|
"de": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Weiterschauen"
|
|
}
|
|
},
|
|
"en": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Continue watching"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"row.nextUp": {
|
|
"localizations": {
|
|
"de": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Als Nächstes"
|
|
}
|
|
},
|
|
"en": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Next up"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"row.recentlyAdded": {
|
|
"localizations": {
|
|
"de": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Zuletzt hinzugefügt"
|
|
}
|
|
},
|
|
"en": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Recently added"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"search.movies": {
|
|
"localizations": {
|
|
"de": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Filme"
|
|
}
|
|
},
|
|
"en": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Movies"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"search.shows": {
|
|
"localizations": {
|
|
"de": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Serien"
|
|
}
|
|
},
|
|
"en": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Shows"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"search.episodes": {
|
|
"localizations": {
|
|
"de": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Folgen"
|
|
}
|
|
},
|
|
"en": {
|
|
"stringUnit": {
|
|
"state": "translated",
|
|
"value": "Episodes"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |