feat(explore): the Explore tab, and adding a published studyset as a copy
Explore lists what is published on the instance as the old app's feed: search over titles and authors, filters for languages and kinds of content, the newest release first, the next page only when asked for; each studyset opens a summary with all of it. Anonymous people explore too. Add to library makes a copy in the app, as an import: through the person's own repositories, the files among their own files, the tags by name among their own tags, everything read first, so a release in a schema this app doesn't know is refused whole. The server never writes into a learner's space. Every item of a copy names where it came from (publication, item, release: card schema 9, note 3, step 3, path 2, PDF 2, studyset 5), merged per side like the rest, for later releases to be taken from there. The Publish sheet takes a studyset off Explore again, after asking. 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:
parent
1f995d4dc6
commit
f4af6cfd3a
1 changed files with 3362 additions and 58 deletions
|
|
@ -5186,4 +5186,133 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
|
||||
@override
|
||||
String get publishLocationCopied => 'Adresse kopiert.';
|
||||
|
||||
@override
|
||||
String get publishedField => 'Veröffentlichung';
|
||||
|
||||
@override
|
||||
String publishedVersion(int version) {
|
||||
return 'v$version';
|
||||
}
|
||||
|
||||
@override
|
||||
String get exploreSearch => 'Titel und Namen durchsuchen';
|
||||
|
||||
@override
|
||||
String get exploreLanguages => 'Sprachen';
|
||||
|
||||
@override
|
||||
String get exploreAnyLanguage => 'Alle';
|
||||
|
||||
@override
|
||||
String exploreLanguagePair(String front, String back) {
|
||||
return '$front → $back';
|
||||
}
|
||||
|
||||
@override
|
||||
String get exploreKinds => 'Inhalt';
|
||||
|
||||
@override
|
||||
String exploreKindsChosen(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: '$count Arten Inhalt',
|
||||
one: '1 Art Inhalt',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get exploreKindCards => 'Karteikarten';
|
||||
|
||||
@override
|
||||
String get exploreKindNotes => 'Notizen';
|
||||
|
||||
@override
|
||||
String get exploreKindPaths => 'Lernpfade';
|
||||
|
||||
@override
|
||||
String get exploreKindPdfs => 'PDFs';
|
||||
|
||||
@override
|
||||
String get exploreKindsIntro => 'Nur Lernsets, die all das enthalten.';
|
||||
|
||||
@override
|
||||
String get exploreClearFilters => 'Filter zurücksetzen';
|
||||
|
||||
@override
|
||||
String get exploreNothingMatches => 'Nichts Veröffentlichtes passt dazu.';
|
||||
|
||||
@override
|
||||
String exploreBy(String author) {
|
||||
return 'von $author';
|
||||
}
|
||||
|
||||
@override
|
||||
String exploreRelease(int version, String date) {
|
||||
return 'v$version · $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String exploreLatestRelease(int version, String date) {
|
||||
return 'Neueste Veröffentlichung: v$version · $date';
|
||||
}
|
||||
|
||||
@override
|
||||
String get exploreAddToLibrary => 'Zur Bibliothek hinzufügen';
|
||||
|
||||
@override
|
||||
String get exploreInLibrary => 'In deiner Bibliothek';
|
||||
|
||||
@override
|
||||
String explorePercent(int percent) {
|
||||
return '$percent %';
|
||||
}
|
||||
|
||||
@override
|
||||
String get exploreAdded => 'Zu deiner Bibliothek hinzugefügt.';
|
||||
|
||||
@override
|
||||
String get exploreOpen => 'Öffnen';
|
||||
|
||||
@override
|
||||
String get exploreNeedsNewerApp =>
|
||||
'Dieses Lernset braucht eine neuere Version der App.';
|
||||
|
||||
@override
|
||||
String get exploreFailed =>
|
||||
'Deine Instanz war nicht erreichbar. Versuche es noch einmal.';
|
||||
|
||||
@override
|
||||
String get exploreUnreachable => 'Entdecken ist gerade nicht erreichbar.';
|
||||
|
||||
@override
|
||||
String get exploreRetry => 'Erneut versuchen';
|
||||
|
||||
@override
|
||||
String get exploreMore => 'Mehr anzeigen';
|
||||
|
||||
@override
|
||||
String get exploreNoDescription => 'Keine Beschreibung.';
|
||||
|
||||
@override
|
||||
String get exploreReadLicence => 'Lizenz lesen';
|
||||
|
||||
@override
|
||||
String get publishWithdraw => 'Aus Entdecken nehmen';
|
||||
|
||||
@override
|
||||
String get publishWithdrawTitle => 'Aus Entdecken nehmen?';
|
||||
|
||||
@override
|
||||
String get publishWithdrawMessage =>
|
||||
'Niemand kann es dann noch hinzufügen, und Kopien bekommen keine Aktualisierungen. Seine Veröffentlichungen bleiben, wie sie sind; veröffentlichst du es wieder, ist es zurück.';
|
||||
|
||||
@override
|
||||
String get publishWithdrawn =>
|
||||
'Zurückgezogen · Kopien bekommen keine Aktualisierungen';
|
||||
|
||||
@override
|
||||
String get publishWithdrawnDone => 'Aus Entdecken genommen.';
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue