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:
parent
186a4f2a5d
commit
65976ae63a
1 changed files with 2580 additions and 282 deletions
|
|
@ -370,6 +370,18 @@ abstract class AppLocalizations {
|
|||
/// **'Options'**
|
||||
String get studysetOptions;
|
||||
|
||||
/// No description provided for @studysetBibliography.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bibliography'**
|
||||
String get studysetBibliography;
|
||||
|
||||
/// No description provided for @studysetBibliographyIntro.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Works cited across this studyset, in the citation style chosen in Settings.'**
|
||||
String get studysetBibliographyIntro;
|
||||
|
||||
/// No description provided for @studysetMenuEdit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -826,53 +838,197 @@ abstract class AppLocalizations {
|
|||
/// **'None'**
|
||||
String get stepFeedbackNone;
|
||||
|
||||
/// No description provided for @stepSources.
|
||||
/// No description provided for @sources.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Sources'**
|
||||
String get stepSources;
|
||||
String get sources;
|
||||
|
||||
/// No description provided for @stepAddSource.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add source'**
|
||||
String get stepAddSource;
|
||||
|
||||
/// No description provided for @stepRemoveSource.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Remove source'**
|
||||
String get stepRemoveSource;
|
||||
|
||||
/// No description provided for @stepSourceAuthors.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Authors'**
|
||||
String get stepSourceAuthors;
|
||||
|
||||
/// No description provided for @stepSourceYear.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Year'**
|
||||
String get stepSourceYear;
|
||||
|
||||
/// No description provided for @stepSourceTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Title'**
|
||||
String get stepSourceTitle;
|
||||
|
||||
/// No description provided for @stepSourceUrl.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Link'**
|
||||
String get stepSourceUrl;
|
||||
|
||||
/// No description provided for @stepSourcesCount.
|
||||
/// No description provided for @sourcesCount.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =1{1 source} other{{count} sources}}'**
|
||||
String stepSourcesCount(int count);
|
||||
String sourcesCount(int count);
|
||||
|
||||
/// No description provided for @sourcesNone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No sources cited yet.'**
|
||||
String get sourcesNone;
|
||||
|
||||
/// No description provided for @sourcesEdit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Edit sources'**
|
||||
String get sourcesEdit;
|
||||
|
||||
/// No description provided for @sourcesEditDone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Done editing'**
|
||||
String get sourcesEditDone;
|
||||
|
||||
/// No description provided for @sourceAdd.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add a source'**
|
||||
String get sourceAdd;
|
||||
|
||||
/// No description provided for @sourceEdit.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Edit source'**
|
||||
String get sourceEdit;
|
||||
|
||||
/// No description provided for @sourceRemove.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Remove source'**
|
||||
String get sourceRemove;
|
||||
|
||||
/// No description provided for @sourceRemoved.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Source removed'**
|
||||
String get sourceRemoved;
|
||||
|
||||
/// No description provided for @sourceSheetAdd.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add'**
|
||||
String get sourceSheetAdd;
|
||||
|
||||
/// No description provided for @sourceAuthors.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Authors'**
|
||||
String get sourceAuthors;
|
||||
|
||||
/// No description provided for @sourceAuthorsHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Full names, one per line, e.g. Mark A. McDaniel'**
|
||||
String get sourceAuthorsHint;
|
||||
|
||||
/// No description provided for @sourceYear.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Year'**
|
||||
String get sourceYear;
|
||||
|
||||
/// No description provided for @sourceYearHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'e.g. 2014'**
|
||||
String get sourceYearHint;
|
||||
|
||||
/// No description provided for @sourceTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Title'**
|
||||
String get sourceTitle;
|
||||
|
||||
/// No description provided for @sourceTitleHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Title of the work'**
|
||||
String get sourceTitleHint;
|
||||
|
||||
/// No description provided for @sourceContainer.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Published in'**
|
||||
String get sourceContainer;
|
||||
|
||||
/// No description provided for @sourceContainerHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Journal, book or website it is part of, with pages'**
|
||||
String get sourceContainerHint;
|
||||
|
||||
/// No description provided for @sourceContainerHelper.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Leave empty for a work of its own, such as a book.'**
|
||||
String get sourceContainerHelper;
|
||||
|
||||
/// No description provided for @sourcePublisher.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Publisher'**
|
||||
String get sourcePublisher;
|
||||
|
||||
/// No description provided for @sourcePublisherHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'e.g. Belknap Press'**
|
||||
String get sourcePublisherHint;
|
||||
|
||||
/// No description provided for @sourceIsbn.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'ISBN'**
|
||||
String get sourceIsbn;
|
||||
|
||||
/// No description provided for @sourceIsbnHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'e.g. 978-0-674-72901-8'**
|
||||
String get sourceIsbnHint;
|
||||
|
||||
/// No description provided for @sourceUrl.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Link'**
|
||||
String get sourceUrl;
|
||||
|
||||
/// No description provided for @sourceUrlHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'https://…'**
|
||||
String get sourceUrlHint;
|
||||
|
||||
/// No description provided for @sourceImportedAs.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Imported as: {citation}'**
|
||||
String sourceImportedAs(String citation);
|
||||
|
||||
/// No description provided for @sourceIsbnLine.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'ISBN: {isbn}'**
|
||||
String sourceIsbnLine(String isbn);
|
||||
|
||||
/// No description provided for @sourceAvailableAt.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Available at:'**
|
||||
String get sourceAvailableAt;
|
||||
|
||||
/// No description provided for @sourceEmpty.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Empty reference'**
|
||||
String get sourceEmpty;
|
||||
|
||||
/// No description provided for @sourceDiscardTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Discard changes?'**
|
||||
String get sourceDiscardTitle;
|
||||
|
||||
/// No description provided for @sourceDiscardMessage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'What you typed for this source will be lost.'**
|
||||
String get sourceDiscardMessage;
|
||||
|
||||
/// No description provided for @sourceDiscardConfirm.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Discard'**
|
||||
String get sourceDiscardConfirm;
|
||||
|
||||
/// No description provided for @stepConflict.
|
||||
///
|
||||
|
|
@ -1558,6 +1714,54 @@ abstract class AppLocalizations {
|
|||
/// **'Device language'**
|
||||
String get settingsLanguageDevice;
|
||||
|
||||
/// No description provided for @settingsCitations.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Citations'**
|
||||
String get settingsCitations;
|
||||
|
||||
/// No description provided for @settingsCitationsDescription.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'How sources and studysets\' bibliographies are cited on this device. Type authors\' full names: each style abbreviates and orders them itself.'**
|
||||
String get settingsCitationsDescription;
|
||||
|
||||
/// No description provided for @settingsCitationStyle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Style'**
|
||||
String get settingsCitationStyle;
|
||||
|
||||
/// No description provided for @settingsCitationStyleApa.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'APA (7th edition)'**
|
||||
String get settingsCitationStyleApa;
|
||||
|
||||
/// No description provided for @settingsCitationStyleMla.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'MLA (9th edition)'**
|
||||
String get settingsCitationStyleMla;
|
||||
|
||||
/// No description provided for @settingsCitationStyleChicago.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Chicago (18th edition)'**
|
||||
String get settingsCitationStyleChicago;
|
||||
|
||||
/// No description provided for @settingsCitationPreview.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Preview'**
|
||||
String get settingsCitationPreview;
|
||||
|
||||
/// No description provided for @settingsCitationGuide.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Official guide'**
|
||||
String get settingsCitationGuide;
|
||||
|
||||
/// No description provided for @settingsVersion.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -5151,6 +5355,12 @@ abstract class AppLocalizations {
|
|||
/// **'a title must be text.'**
|
||||
String get pathImportTitleNotText;
|
||||
|
||||
/// No description provided for @pathImportMalformedSource.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'a source must be an object or text, and its parts text.'**
|
||||
String get pathImportMalformedSource;
|
||||
|
||||
/// No description provided for @pomodoroTopBarHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
Loading…
Reference in a new issue