feat(app): cite sources in APA, MLA or Chicago, and give studysets a bibliography

A source is now shared by learning paths and studysets (core/citation/):
authors as full names, year, title, what it is a part of, publisher,
ISBN, link, and a citation kept as a file brought it. formatCitation
cites it in APA 7, MLA 9 or Chicago 18: it inverts and abbreviates
names itself (particles, suffixes, names written as already cited stay),
sets a work of its own in italics and a part of something apart from
the whole, and writes a missing year as "n.d." in APA and Chicago.

- Settings: a Citations card per device, with a preview and a link to
  the style's own guide.
- Studysets: a Bibliography button opens the works cited, to read and,
  behind its pencil, to change (studyset schema 4).
- Steps: sources edited through the same sheet, opened from an
  "N sources" button in the runner (step schema 2; schema 1 reads on).
- Path import: steps' sources, text kept as written, the old format's
  "citation" read as what a source is part of.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-07 17:07:04 +02:00
commit 65976ae63a
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -52,6 +52,8 @@
"studysetStar": "Mit Stern markieren",
"studysetUnstar": "Markierung entfernen",
"studysetOptions": "Optionen",
"studysetBibliography": "Literaturverzeichnis",
"studysetBibliographyIntro": "Die in diesem Lernset zitierten Werke, im Zitierstil aus den Einstellungen.",
"studysetMenuEdit": "Bearbeiten",
"studysetMenuArchive": "Archivieren",
"studysetMenuUnarchive": "Aus Archiv holen",
@ -128,14 +130,38 @@
"stepFeedbackRight": "Feedback nach einer richtigen Antwort",
"stepFeedbackWrong": "Feedback nach einer falschen Antwort",
"stepFeedbackNone": "Keines",
"stepSources": "Quellen",
"stepAddSource": "Quelle hinzufügen",
"stepRemoveSource": "Quelle entfernen",
"stepSourceAuthors": "Autoren",
"stepSourceYear": "Jahr",
"stepSourceTitle": "Titel",
"stepSourceUrl": "Link",
"stepSourcesCount": "{count, plural, =1{1 Quelle} other{{count} Quellen}}",
"sources": "Quellen",
"sourcesCount": "{count, plural, =1{1 Quelle} other{{count} Quellen}}",
"sourcesNone": "Noch keine Quellen angegeben.",
"sourcesEdit": "Quellen bearbeiten",
"sourcesEditDone": "Bearbeiten beenden",
"sourceAdd": "Quelle hinzufügen",
"sourceEdit": "Quelle bearbeiten",
"sourceRemove": "Quelle entfernen",
"sourceRemoved": "Quelle entfernt",
"sourceSheetAdd": "Hinzufügen",
"sourceAuthors": "Autoren",
"sourceAuthorsHint": "Vollständige Namen, einer pro Zeile, z. B. Mark A. McDaniel",
"sourceYear": "Jahr",
"sourceYearHint": "z. B. 2014",
"sourceTitle": "Titel",
"sourceTitleHint": "Titel des Werks",
"sourceContainer": "Erschienen in",
"sourceContainerHint": "Zeitschrift, Buch oder Website, mit Seiten",
"sourceContainerHelper": "Leer lassen bei einem eigenständigen Werk wie einem Buch.",
"sourcePublisher": "Verlag",
"sourcePublisherHint": "z. B. Belknap Press",
"sourceIsbn": "ISBN",
"sourceIsbnHint": "z. B. 978-0-674-72901-8",
"sourceUrl": "Link",
"sourceUrlHint": "https://…",
"sourceImportedAs": "Importiert als: {citation}",
"sourceIsbnLine": "ISBN: {isbn}",
"sourceAvailableAt": "Verfügbar unter:",
"sourceEmpty": "Leere Quellenangabe",
"sourceDiscardTitle": "Änderungen verwerfen?",
"sourceDiscardMessage": "Was du für diese Quelle eingegeben hast, geht verloren.",
"sourceDiscardConfirm": "Verwerfen",
"stepConflict": "Dieser Schritt wurde auf einem anderen Gerät anders geändert. Behalte eine Version, um weiterzuschreiben.",
"stepFieldTitle": "Titel",
"stepFieldBody": "Text",
@ -253,6 +279,14 @@
"settingsAppearanceDark": "Dunkel",
"settingsLanguage": "Sprache",
"settingsLanguageDevice": "Gerätesprache",
"settingsCitations": "Quellenangaben",
"settingsCitationsDescription": "Wie Quellen und die Literaturverzeichnisse von Lernsets auf diesem Gerät zitiert werden. Gib die vollständigen Namen der Autoren ein: Jeder Stil kürzt und ordnet sie selbst.",
"settingsCitationStyle": "Stil",
"settingsCitationStyleApa": "APA (7. Auflage)",
"settingsCitationStyleMla": "MLA (9. Auflage)",
"settingsCitationStyleChicago": "Chicago (18. Auflage)",
"settingsCitationPreview": "Vorschau",
"settingsCitationGuide": "Offizieller Leitfaden",
"settingsVersion": "Version {version} (Build {build})",
"syncTitle": "Synchronisierung",
"syncStateSyncing": "Wird synchronisiert…",
@ -860,6 +894,7 @@
"pathImportTooFew": "es braucht mindestens zwei „{detail}“.",
"pathImportMalformedNumber": "eine fehlerhafte Zahl.",
"pathImportTitleNotText": "ein Titel muss Text sein.",
"pathImportMalformedSource": "eine Quelle muss ein Objekt oder Text sein und ihre Teile Text.",
"pomodoroTopBarHint": "Der Timer kann in der oberen Leiste von GNOME herunterzählen, mit seinen Knöpfen, sobald die Erweiterung „AppIndicator“ an ist.",
"pomodoroTopBarSetUp": "Einrichten",
"pomodoroTopBarDismiss": "Nicht mehr vorschlagen"