feat(citation): sources are books and articles, websites or YouTube videos

A source was a book's or an article's parts, however a website or a
video had to be squeezed into them. Adding one to a bibliography or a
step now asks what it is, and its form asks for what cites it: a book
or an article its parts as before; a website the page's link, title,
the site's name, authors and year; a YouTube video its link (checked to
be one), title, channel and year. Websites and videos need their link,
marked as required. A video is cited as APA cites one ("[Video]", a
part of YouTube) and plays in the app where it can, else on YouTube.

The kind is kept in the source's JSON, left out for a book or an
article; a kind this app doesn't know reads as a work. The studyset's
payload goes to schema 6 and a step's to schema 4 for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-12 23:55:39 +02:00
commit 61bf7b2fa0
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -788,6 +788,45 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get sourceDiscardConfirm => 'Verwerfen';
@override
String get sourceKind => 'Art der Quelle';
@override
String get sourceKindWork => 'Buch oder Artikel';
@override
String get sourceKindWebsite => 'Website';
@override
String get sourceKindVideo => 'YouTube-Video';
@override
String get sourceWebsiteName => 'Website';
@override
String get sourceWebsiteNameHint => 'Ihr Name, z. B. Wikipedia';
@override
String get sourcePageTitleHint => 'Titel der Seite';
@override
String get sourceChannel => 'Kanal';
@override
String get sourceChannelHint => 'Wer es auf YouTube veröffentlicht hat';
@override
String get sourceVideoTitleHint => 'Titel des Videos';
@override
String get sourceVideoLink => 'Link zum Video';
@override
String get sourceVideoLinkInvalid => 'Kein Link zu einem YouTube-Video';
@override
String get sourcePlay => 'Video abspielen';
@override
String get stepConflict =>
'Dieser Schritt wurde auf einem anderen Gerät anders geändert. Behalte eine Version, um weiterzuschreiben.';